From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Egli Subject: Org mode for meeting minutes Date: Thu, 31 Oct 2019 15:03:47 +0100 Message-ID: <87imo5j9ks.fsf@sbs.ch> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:43638) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iQB3Q-0007Xq-4W for emacs-orgmode@gnu.org; Thu, 31 Oct 2019 10:04:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iQB3O-0000xI-KA for emacs-orgmode@gnu.org; Thu, 31 Oct 2019 10:03:59 -0400 Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:58294 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iQB3O-0000rf-CS for emacs-orgmode@gnu.org; Thu, 31 Oct 2019 10:03:58 -0400 Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1iQB3L-000K01-PR for emacs-orgmode@gnu.org; Thu, 31 Oct 2019 15:03:55 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org 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