You might see if there is functionality in org-secretary https://github.com/yyr/org-mode/blob/master/contrib/lisp/org-secretary.el (http://juanreyero.com/article/emacs/org-teams.html) that could help with this.
It would be nice to integrate org-contacts in with something like this. Christian Egli <christian.e...@sbs.ch> writes: > 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 -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu