Cocktails and Coffee Logo |||

Automating Meeting Notes With iOS14 Shortcuts

With no-confirm automations, iOS14 is a powerful beast

Automating Meeting Notes With iOS14 Shortcuts Banner Image

I take a lot of meeting notes. Like a LOT. This Shortcut grabs the data out of a calendar event in Outlook, and spits out a Markdown file that can be edited in any standard text editor. And now, it does it automatically.

If you’ve ever used time-of-day Shortcuts in the past, it was a bit of a letdown. You’d get a notification to tap at the time you set up, and tapping that notification would open the Shortcuts app and start the automation. In the current beta of iOS14, Shortcut automations can be run by a time-of-day trigger without confirmation. This makes Shortcuts a much more powerful tool for automations, and I’m pretty pumped about it.

For example, I have a Shortcut I run every morning. It looks at my work calendar, and for every meeting that is not all day”, it pulls the meeting title, date, calculates the duration, gathers the attendees, grabs the notes from the calendar event, and creates a Markdown document in iCloud drive.

Side note: I take plain text notes in Obsidian on Mac and 1Writer on iOS. These apps use a wiki-linking style of markup, similar to Roam1. Wiki-links use double brackets around a phrase to automatically create transclusion” links (basically, 2-way crosslinking). So, you’ll see in my shortcut that I surround every attendee with double brackets. This allows me to simply click on the person’s name and jump to their page”, which will show me all the backlinks to other meetings I’ve been in with them. There will be a whole series of posts on my note taking in the future…

How does it work? Here’s the Shortcut, step by step

Note: This shortcut requires Data Jar and a helper shortcut, but can easily be modified to just save a variable and do the text replacement as part of this shortcut. I use Data Jar as a pseudo-clipboard-manager, and keep a lot of helper Shortcuts that do one thing (this one strips out special characters) so they can be re-used in other automations.

Action Steps
Steps 1-7Steps 1-7
  1. Grab a bunch of calendar events from Today
  2. Repeat block, looping over each calendar event
  3. If statement - if event == all day, do nothing. Otherwise
  4. Get title of event
  5. Send to Data Jar (can also just save to clipboard for next action, or set as a variable, but I prefer Data Jar)
  6. This helper Shortcut (linked below) replaces all the characters that cause Obsidian to choke in a file name.
  7. Step 6 dumps the modified text back into Data Jar. We’re getting it back here.
Steps 8-10Steps 8-10
  1. Grab the start date
  2. And end date
  3. This calculation action gets the minutes between the start and end dates
Steps 11-14Steps 11-14
  1. This If block determines what to display as duration. It’s not needed for this Shortcut, since I filter out All Day events at the beginning. But this Shortcut is the basis for other manual shortcuts so I leave the block in.
  2. If the number of minutes is over 1200, it’s All Day”
  3. Otherwise, set the text to how many minutes
  4. Save this as a duration variable
Steps 15-19Steps 15-19
  • Grab the Organizer from the event
  • Get the Attendees
  • Set Attendees as text, so we can manipulate the output
  • Use a RegEx Replace Text block to replace new lines with brackets and commas. (the previous step puts each attendee on a new line in the text action)
  • Get the notes from the event
  • Steps 20-22Steps 20-22
    1. It’s not technically necessary to build a Dictionary, but I find it easier. If something changes above, I can just edit the dictionary entry and wherever it is used below doesn’t need to be edited.
    1. filename is a combo of the date and title, followed by .md (date uses Zettle format) Outputs: 2020-07-08T1830-This Is A Meeting.md
    2. summary is the start date in long format, and the duration. Outputs: July 8, 2020 6:30PM (30 mins)
    3. attendees is the text from above, surrounded by opening and closing brackets. Step 18 only added the brackets between attendees, so this completes the block.
    4. notes
    5. organizer
    1. This builds out the actual document text, using the values from the dictionary
    2. This sets the filename to the value of the filename key in the dictionary
    Step 23Step 23
    1. Finally, the file is saved to iCloud Drive.

    Because of a limitation in Shortcuts, it can only save to it’s own folder (if you want to do it without confirmation). So I save the documents to a folder that Hazel is watching. Hazel has a rule to move the files into a different iCloud Drive folder that Obsidian is pointing to.

    This Shortcut took me about an hour to build several months ago. I’ve been using it every work morning since then, and it’s saved me tons of time. Now that I can run it on a schedule without touching it, it’s even more convenient. When I get to my desk in the morning, all my notes templates are in Obsidian and ready to roll.

    Get the Shortcuts

    Meeting Notes Shortcut

    Regex Replacer Shortcut


    1. Also, Roam seems to have a pretty unreliable backend right now, and it’s a web app, so that’s bad. Obsidian is all local Markdown files.

    🗓️ July 8, 2020 🏷️ Shortcuts🏷️ iOS14 Support me on Ko-fi
    ⇦ Previous Zoom Adds Standard End-to-End Encryption
    Next ⇨ Are Distributed Systems Really Distributed?
    © 2007-2020 Jimmy Little