emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Org mode for meeting minutes


From: Christian Egli
Subject: Org mode for meeting minutes
Date: Thu, 31 Oct 2019 15:03:47 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

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 via email to

[Prev in Thread] Current Thread [Next in Thread]