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% 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.

textexpander-date-math-plus2dThe 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.

textepander-make-a-dateUsing 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.