My Other Work

Better than WordPress

Get Your Fix

Automate OmniFocus Tasks from Basecamp To-Dos

November 10, 2008

I’m sure that I am one of many people who rely on both OmniFocus and Basecamp in their day-to-day work and task management. One of the things missing for me was a fairly automated way of getting To-dos out of Basecamp and into OmniFocus as tasks.

There is a built-in way to funnel emails from Apple Mail to OmniFocus as tasks, but the script sets the email subject as the task name. Unfortunately, Basecamp uses a generic subject line ([ABC Project] To-do item assigned to you) and therefore the task name that is created in OmniFocus is useless. I created this AppleScript so that we could get new tasks with proper names based on to-dos in Basecamp.

Getting the Script

Screen grab of script code

It’s as easy as downloading the file, unzipping it and placing it in your user’s scripts directory (~/Library/Scripts).

Setting up the Mail Rule

Now we need to create the rule in Apple Mail so it filters email messages based on the subject line and then processes matches using the AppleScript we just downloaded.

Go to Preferences in Mail and choose Rules. Add a new rule called “Send Basecamp To-dos to OmniFocus.”

There is only one condition and it should be if the email subject contains “To-do item assigned to you.” There are two actions that need to be set. The first is “Run AppleScript” and then input the path to the script (mine is ~/Library/Scripts/Mail Scripts/BasecampTodosToOmniFocus) and then set the last action to be “Stop Evaluating Rules.” This lets Mail know that it shouldn’t use any other rules to process matching messages.

Setting up Mail rule for OmniFocus To-dos

Testing, testing 123

The final step is test to make sure the script is working properly. You can do this by creating a to-do in Basecamp and sending the email. However, I don’t believe you’re able to send emails to yourself if you create a to-do and assign it to yourself. So, you may want to ask someone else on your team to create a to-do assigned to you. You can also test by right-clicking on an existing Basecamp to-do message and choosing “Apply Rules.” Whichever method you use, it should result in a new task appearing in your OmniFocus inbox. The task name should be the name of the to-do item.

Sample Item added to OmniFocus inbox

And that’s it! The upside of this method is that it’s simple. The downside is that if someone assigns you a to-do in Basecamp and does not opt to send an email this solution never has a chance to be implemented.

Show and Tell

Want to follow along as I set this script up, step-by-step? Watch the 4m30s long screencast:

screenshot of screencast on installing applescript

  1. Lars SteigerNovember 24, 2008 at 1:12:09

    gravatar of Lars Steiger

    Hi Ryan,

    Great Script!
    Just if you are interested: I put a little service called Spootnik ( together. It synchronizes Basecamp with OmniFocus and it’s currently in private beta. Tell me if you would like to test-drive it.


  2. Dave BullockDecember 01, 2008 at 3:15:54

    gravatar of Dave Bullock

    You so rule for this post man, kudos to you.

  3. Brandon Calloway — December 10, 2008 at 7:53:12

    gravatar of Brandon Calloway

    Thanks!!!!  This works great.

    Any chance you could show me how to modify the script so that it could include the Basecamp project name in the notes area of the Omnifocus task?  Sorry, but I know nothing about Applescript, and your example is really helpful.

  4. Tibor HolodaFebruary 12, 2009 at 1:05:47

    gravatar of Tibor Holoda

    Awesome! Thanks!

  5. Shawn Callahan — February 25, 2009 at 12:47:13

    gravatar of Shawn Callahan

    Do you have any suggestions for how to automate all the to-dos I set for myself in Basecamp?

  6. Ryan IrelanFebruary 25, 2009 at 12:52:37

    gravatar of Ryan Irelan

    Shawn, unfortunately I don’t right now. Basecamp doesn’t send emails for the to-dos you assign yourself and there’s no preference to enable it.

  7. Tibor HolodaFebruary 26, 2009 at 12:52:52

    gravatar of Tibor Holoda

    Just a thought, isn’t there a way to extract the to-do’s from my basecamp account RSS feed? In order to include the to-do’s i have set to myself?