Meeting notes, date math and TextExpander

You really save time and increase productivity if you identify those things you keep doing over and over again in the exact same way. ALso all of us have better things to pursue during on our time on earth than do monkey work.

I am currently looking at the way I take notes or produce minutes from meetings and calls I attend or host. It turns out that there are a few elements I type over and over again.

Dates, dates, dates

One thing that of course reoccurs in meeting notes all the time is dates. When the next meeting is, when that task is due, when we expect a response from the customer and so forth.

Capturing relative date information is not easy, particular if you are not always 100% sure of the resulting absolute date. I, for example, rarely know a 100% which what today’s date is without looking at the little Fantastical icon in my menu bar, on to my iPhone or my wrist watch.

Consequently if someone on a call says “in two days” or “next week Friday”, I have a few seconds worth of effort to express this in an absolute date for my meeting notes. It typically involves punching the Fantastical keyboard shortcut (mine is ⌘ + ⌥ + ^ + K) or quickly switch over to iCal.

An itch to scratch with TextExpander

Setting dates in OmniFocus really spoiled me. The way it accepts things like ‘tom’, ‘+3d’, ‘next friday’ or ‘today 4.30p’ in the start and due date fields is just natural, easy and magical. Same for Fantastical, which basically reads your mind when creating an event.

When capturing casual meeting notes for my own reference in nvALT or producing formal meeting minutes in OmniOutliner, I simply wanted something similar but working in free text so I can safe myself some time, pay more attention to the meeting and be done faster.

TextExpander’s own date & time math

TextExpander itself allows you to do some date and time math yourself since version 2.5. When looking for some documentation and examples for it I came across the post from Smile that announced the feature. Unfortunately the description wasn’t too straight forward, but Jonathan from Smile proactively provided an improved guide within a few hours after I tweeted about the subject.

The math that TextExpander allows you to do is pretty simple and somewhat limited. You can basically add or subtract everything from seconds to years from/to today’s date and display it in all date format variations you are used to from TextExpander.

While there are quite a number of cases where this is not only sufficient, but also extremely useful, there are some obvious limitations to it:

  • It is just subtraction or addition based on raw numbers
  • You need a snippet for every operation you want to do, e.g. one for addition 3 days from today, one for adding 4 days from today, …
  • No concept of natural language processing possible whatsoever (‘next Friday’)

Date and time math is not TextExpander’s primary purpose and given it extensibility through scripts, they may or may not see a need to improve this functionality in the future.

Talking about scripts: For my meeting minutes and notes I decided I needed something more powerful to deal with the use cases I had in mind.

Enter: Brett Terpstra’s TextExpander Tools

In my continued quest for the right solution it did not took too long to come across Brett Terpstra’s work extending TextExpander. The developer of recently so popular Marked application and scripting pro had faced the same problem and solved it.

As part of his ‘Tools’ TextExpander group, Brett provides a ‘Make a date’ snippet which employs a PHP script to do some more sophisticated, natural language date math.

Using the Fill-in functionality of TextExpander it queries you for a natural language date string which it will process into an absolute date to insert right where you called the snippet from.

Brett’s script-based snippet supports simple date terminology like

  • Monday, next Fri, tomorrow 4pm
  • +3, 7, -2 - which, without any additional info are assumed days
  • You can also do ‘+30 minutes’ if you like to be very precise

It perfectly does the job for the use cases I have. There are also other useful gems in Brett’s Tools TextExpander group, such as creating Markdown links or shortening of URLs, and it is also worthwhile checking out the other TextExpander groups he made available for download.

Easier workflow, time saved

Taking notes and producing meeting minutes with my new TextExpander snippet now makes it quite simple to capture statements like

  • We need the quote by Friday noon (‘fri 12am’)
  • The customer is supposed to provide feedback in 10 days (‘+10’)
  • Can we rehearse next week Thursday? (‘next thu’)

and turn them into absolute dates. It’s true that it only saves me a few seconds every time, but it sums up and I am not forced to do dull work.

In the recent weeks David Sparks, Michael Schechter and myself tried to share our workflows around TextExpander and OmniFocus via screen casts. Now Kourosh Dini, author of the ‘Creating Flow with OmniFocus’ ebook, jumped on the bandwagon and made David, Michael and me look like amateurs.

In his screencast Kourosh shares a very pragmatic and smart way how he uses TextExpander in his ‘Communications’ perspective in OmniFocus. Tracking calls we made, voice mails we left and particular the responses we are waiting for can be a tedious task. Kourosh found a very clever approach to this problem.

I am confident that it is not only myself who gets inspired by his screencast to tinker a bit with my approach to the same problem.

Kourosh also wins the price for the best voice over across the four screen casts mentioned and a personal recognition from me for pronouncing my name 100% correctly.

More on TextExpander and OmniFocus

David Sparks, a man of many trades and fellow blogger, picked up on my recent screencast about combining TextExpander and OmniFocus, and posted one himself. He definitely has some time-saving snippets for OmniFocus on the Mac, which he also made available for download in his original post.

In his post he also covers the use of iOS text shortcuts for similar applicaton in OmniFocus for iPhone and iPad. Something I haven’t got to use yet, but if David uses it, I better should as well.

Using TextExpander and OmniFocus for tracking actions & projects

In this short screencast I am demonstrating how I use TextExpander inside of OmniFocus to track projects, which I have delegated and where I don’t want to track individual actions.

Basically all these projects are tracked as individual entries in a Single Action List called ‘Delegated Projects’ and I use the note field and TextExpander to capture easy to read status updates. I get these updates either through weekly status calls or meetings I have with the project owners or via email.

Whenever I am asked to provide an update myself or meet anyone associated with the project, I can quickly and easily engage on the subject.

I also use TextExpander to capture single Waiting For actions I record during meetings or calls. TextExpander helps me to reduce the time and the typing required to capture these while I still want to follow and remain engaged in the conversation. Querying my Twitter followers that seems to be the most common use case amongst them as well.

Get more out of meetings with TextExpander

I am on a manager’s schedule as opposed to a maker’s schedule. Whether you think this is a bad or good thing, it certainly means that I have a lot of meetings each day. Given that I work in an international cooperation that has a complex, multi-dimensional and geographical distributed organisation, many of my meetings are either audio, web or video conferences. It comes as no surprise that many of these meetings are poorly prepared with no clear agenda or objective. If you have five of these on a day, you really look back and ask yourself what you have achieved other than burning valuable lifetime on the phone. But you either accept the status quo or the responsibility to change it. Changing it means you need to set an example, independent of where in the hierarchy you sit. For those meetings that I host or which I at least co-host or influence, I have changed my approach from the typical “let’s wing it” to more conscious preparation. It surprisingly doesn’t really take much more time, but delivers significantly improved results.

Spend a couple of minutes thinking about each meeting

As part of my morning routine (Daily Review) in OmniFocus I scan my calendar for meetings I host or co-host and spend about two minutes each thinking about the following questions:

  • What can I realistically get out of this meeting?
  • Which topics need to be discussed?
  • What do people, including myself, need to prepare?

The way I reflect on these questions has a very practical application: I actually send out reminder emails to the meeting participants as a result of this process.

Simplify the process to make it happen

However, if I would have to craft each email from scratch, I would likely find myself procrastinating on the task one morning. Consequently I wanted to make it as easy as possible to get these emails out every morning - and consequently reflect on the related meetings. The way I went about it was to employ TextExpander and it’s fill-in functionality to help me out. Since I have basically two meeting types I can prepare this way, I created two fill-in snippets in TextExpander that I use.

One-to-Many & Many-to-Many meetings

These are meetings I either host or co-host and involve at least two other people, very often much more. The snippet I use looks as follows:

%fill:recepient%,

We have a session planned for %fill:today-tomorrow% with regards to %fill:subject%. As part of the session, I'd like to discuss the following items:

* %fill:agenda-items-1%
* %fill:agenda-items-2%
* %fill:agenda-items-3%
%|

I hope this helps you prepare for the meeting. Looking forward talking to you.

Cheers, -Sven

Depending on the number of attendees I might use their names in the greeting, otherwise I use the universal “All”. I then remind people of when we have the meeting so they can make sure they still have it in their agenda and at the right time (you still see scheduling issues across multiple timezones, even though we live in the 21st century).

I then proceed to typically provide three agenda items, which also summarise objectives/desired outcomes and owners, if applicable. In the TextExpander snippet I position the cursor directly after the third agenda item in case I want to add more or reduce to two.

One-to-one meetings

When I have one-to-one meetings, be it with one of my staff, a peer or my management, the snippet I use is slightly different. Mainly because you use slightly different language. However, the idea of reminding people of the meeting and set out a few topics to be discussed (and prepared) remains the same.

%fill:recepient%,

We have a 1.1 session planned for %fill:today-tomorrow%. As part of the session, I'd like to discuss the following items:

* %fill:agenda-items-1%
* %fill:agenda-items-2%
* %fill:agenda-items-3%
%|

I hope this helps you prepare for the meeting. Looking forward talking to you.

Cheers, -Sven

My best practice again is to send the email in the morning, or the evening before, with a subject “[TODAY] Our 1.1”.

Using universal language

The single aspect I thought most about when developing the above snippets was the language I use. These mails go to very diverse audiences, very often involving my management up to Vice President levels, and consequently need to effectively address the meeting contents and preparation in a language appropriate for everyone. Instead of using “Please come prepared.”, which I would use with my staff and peers, I choose “I hope this helps you to prepare.”, which should resonate with every level. Considering a universally applicable language is quite important in order to make any canned emails work.

Add it to your routine

So when I go through my morning routine, I will find the below entry in OmniFocus

Which causes me to fire up my calendar and go through all my meetings for the day or early the next day. I then open an email for each meeting I host or co-host, add all meeting attendees, chose a suitable subject (typically I use “[TODAY] Meeting subject”), and invoke one of my TextExpander Snippets. I decided to label them ’smeeting’, for standard meetings, and ’11meeting’ for the one-to-ones. Fill the fields, which automatically forces me to think about the meeting and it’s best possible outcome, hit send and done. It takes two minutes per meeting and you will find people becoming more prepared, at least mentally, and with the agenda in mind. Makes all these conference call a bit more useful.