emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Christian Egli <christian.egli@sbs.ch>
To: emacs-orgmode@gnu.org
Subject: Org mode for meeting minutes
Date: Thu, 31 Oct 2019 15:03:47 +0100	[thread overview]
Message-ID: <87imo5j9ks.fsf@sbs.ch> (raw)

Hi all

I'd like to revisit a very old thread[1] where Adam Spiers asks if there
is support in Org mode for

1. Allow *fast* production of meeting agendas and minutes, exportable in
   a good-looking legible format which non-org readers can digest.

2. Allow minutes to be taken as the meeting progresses, minimising the
   amount of work required after the meeting.

3. Allow actions to be captured and then automatically extracted into a
   simple tabulated report which clearly shows actions grouped by owner.

4. Track progress of actions *after* the minutes have been issued.

He goes on to say that org mode handles (1) and (2) just fine, but he
wasn't sure about (3) and (4).

His mail is from 2008 and a lot has happened in the mean time. I would
suggest that today (1) and (2) can be handled with normal org export or
even pandoc. Inline tasks[2] help a lot to add, well inline tasks. For (3)
and (4) he mentions a dynamic block that could collect all action items.

I never found that dynamic block he mentions, so I hacked one up (which
was suprisingly easy). I haven't packaged it but the gist of it is
below:

``` elisp
(require 'org)
(require 'dash)

(defun org-actionitems-extract-entry ()
  (-let* ((entries (org-entry-properties))
	  ((&alist "ITEM" "TODO" "DEADLINE") entries))
    (list ITEM TODO DEADLINE)))

(defun org-dblock-write:actionitems (params)
  (let ((match (or (plist-get params :match) "/+TODO")))
    (insert-before-markers "| What | Who | When |\n")
    (insert-before-markers "|-\n")
    (let* ((tasks (org-map-entries 'org-actionitems-extract-entry match))
	   (rows (-map (lambda (task)
			 (->> task
			      (-map (lambda (item) (or item "")))
			      (apply 'format "| %s | %s | %s |")))
		       tasks))
	   (table (string-join rows "\n")))
      (insert-before-markers table))
    (org-table-align)))
```
    
The idea is that you use type todos using the people involved at the
meeting. Below is an example how this could look:

``` org
#+title: Meeting minutes

#+TYP_TODO: Fred Sara Lucy Mike | DONE

** Present at meeting
- [X] Fred
- [X] Sara
- [X] Lucy

** Agenda
- Reports from the sub teams
- Discussion

** Notes
*** Reports from the sub teams
- The order has arrived
*************** Fred Check if the order is complete
DEADLINE: <2019-11-04 Mo>
*************** END
- The next talk is scheduled
*************** Mike Organize a speaker
DEADLINE: <2019-11-12 Di>
*************** END

* Actions
#+BEGIN: actionitems :match "/Fred|Sara|Lucy|Mike"
| What                           | Who  | When            |
|--------------------------------+------+-----------------|
| Check if the order is complete | Fred | <2019-11-04 Mo> |
| Organize a speaker             | Mike | <2019-11-12 Di> |
#+END:
```

Before I go on with this I'd like to know

1. Is the worg page[3] the state of the art in taking meeting minutes
   with org mode?
2. Is it worth packaging this code snippet or should I try to submit it
   to org mode proper?

Any thoughts on this or other ideas very welcome!

Thanks,
Christian

Footnotes: 
[1]  https://lists.gnu.org/archive/html/emacs-orgmode/2008-02/msg00117.html
[2]  https://code.orgmode.org/bzg/org-mode/src/master/lisp/org-inlinetask.el
[3]  https://orgmode.org/worg/org-tutorials/org-meeting-tasks.html

             reply	other threads:[~2019-10-31 14:04 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-31 14:03 Christian Egli [this message]
2019-10-31 15:49 ` Fraga, Eric
2019-10-31 17:11   ` Ken Mankoff
2020-03-23  9:36   ` Christian Egli
2020-03-23 11:39     ` Eric S Fraga
2020-03-23 13:33     ` Axel Kielhorn
2020-03-23 13:47     ` Carsten Dominik
2020-03-23 18:09     ` Pankaj Jangid
2020-03-23 22:00       ` Nick Dokos
2020-03-24 10:09         ` Pankaj Jangid
2020-03-23 20:03     ` Timm Lichte
2020-03-24 10:04       ` Christian Egli
2020-03-25 22:39         ` Timm Lichte
2020-03-26  8:28           ` Christian Egli
2020-03-24 11:19       ` Eric S Fraga
2020-03-24 12:00         ` Eric S Fraga
2020-03-25 17:55     ` Bob Newell
2020-03-25 19:02       ` Diego Zamboni
2019-11-01 12:49 ` John Kitchin
2019-11-03 20:49 ` @name-tags instead of TODO keywords to assign people (was: Org mode for meeting minutes) Karl Voit
2019-11-03 21:03   ` Tim Cross
2020-02-12  9:12 ` Org mode for meeting minutes Bastien
2020-07-07 11:44 ` Adam Spiers
2020-07-07 16:21   ` Alexander Adolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87imo5j9ks.fsf@sbs.ch \
    --to=christian.egli@sbs.ch \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: Org mode for meeting minutes' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).