1501 East Hennepin Avenue | Minneapolis, MN 55414
| posted on 6/27/11 by Jachin Rupe
The following technique should be useful to anyone who keeps track of an outline or a to-do list and wants to email the current state of that to someone else easily.
One of the things we do at Clockwork to keep everyone on the same page is send out a daily 'snapshot' email that lists:
Our project managers use snapshots to help manage work load and maintain an ambient awareness about whether we're working on their stuff on a given day or not.
I'm a big fan of "Getting Things Done" (GTD), and the stuff in these snapshot emails is exactly the reminder system I need so I can think more about writing software and less about what I have to do today.
However, while email is a great way to communicate this information it sucks-diddly-ucks as a working to-do list. When new tasks come in, I want to capture them in my to-do list and get them out of my email inbox. Fortunately, there are lots of really good to-do applications out there, but they present a new hassle: I don't want to spend tedious minutes every day copying and pasting information out of my to-do application and into an email. I would much rather spend that time doing something more interesting. Not to mention, I find tedious tasks much harder to motivate myself to do well.
For a long time I used OmniOutliner as a to-do application; recently, I switched to a different (slightly less expensive) application called TaskPaper. My license of OmniOutliner outdated, and the project managers wanted to standardize the way the snapshot email looked. The way OmniOutliner organized to-do lists just did not mesh well with the new format.
First, I setup my snapshot file in TaskPaper, so it looks something like this:

TaskPaper has lots of nice features so you can add tasks, mark tasks as done, archive tasks, and a whole bunch of other stuff, all without ever taking your hands off the keyboard.
So, now the question is, how to get this information in an email.
I could just "Select all", copy, Alt-Tab over to Mail, new message, paste, then spend a minute or so formatting the message. And that's not too bad.
I'm a software engineer, though. If I do the same thing on my computer every day—even if it just takes a minute or two—I start thinking "I'll bet I could automate this." Enter: AppleScript.
If you've got a Mac, you find yourself repeating the same task over and over again. Stop, write an AppleScript or make an Automator task to do it for you (or even better, find one on the internet that someone else wrote for you). Life is short, automate.
A big part of why I decided to give TaskPaper a try was because of this wiki page. If you are ever trying to decide between two similar OS X Application, put the "Name of Application AppleScript" into Google. If you see lots of people writing AppleScripts for it, that good. If you don't, look for a better option (this is especially important for any GTD related software).
Here's the AppleScript I wrote, at GitHub.
Look through it carefully. You need to replace:
You may also have noticed some calls to sed. Sed is an old unix tool for formatting strings. AppleScript is good at a lot of things, but if you want to format text, AppleScript is pretty clumsy. Sed uses regular expressions and if you want to see it in action this introduction and tutorial is a good place to start.
Once you have your AppleScript ready put it in ~/Library/Scripts/Applications/TaskPaper. You will probably need to create the TaskPaper directory. Then make sure your script menu is visible by opening AppleScript Editor's preferences and checking "Show Script menu in menu bar" and "Show Computer scripts". That will but the script menu in the upper right, near the clock.
When you have TaskPaper open go to the Script menu and run your script.
Look at that, I just made a snapshot email in about 2 seconds and the formatting is perfect.
Tips:

We're constantly talking to each other about what's new: a project we're working on, a new site we're obsessed with, or some other geekery. We figured, why not share those conversations with you?
Welcome to our collective mind.