in applescript

All OmniFocus scripts updated for a “Start-based” workflow

Like many OmniFocus users, I used to plan my days using Due dates. Planning to pick up supplies a the hardware store today? Set Due Date==Today. Need to call a friend back to catch up? Set Due Date==Today.

This behavior makes sense, on one level level: just sort everything by Due date and you can see when things are planned. But every time a date isn’t met, it has to be pushed back, creating the need for most of my date-related scripts.

Worse, indiscriminate use of Due dates dilutes their value and undermines any task-planning system.

Need to pay a credit card bill today? It’s lost in the mess of other things that are artificially “due” today, and that red Due badge is no longer a respected indication that something needs to happen today.1

But there’s a better way.2 Just use Start Dates to plan what you think you should do, and reserve Due Dates for things that actually have to get done. (To keep this straight, I use a “Due” perspective to show what’s actually due, and a “Do” perspective to show what I’m planning to do.3)

The benefits of this approach are enormous. Things that actually need to happen don’t get lost in the shuffle, and (using time estimates) you can work with more realistic expectations of what can/should happen in a a day.

But switching to this workflow also required re-tooling my scripts, many of which focused on Due dates.

So, as of today, all my OmniFocus scripts default to a Start-based workflow. Here are some of the major changes:

  • Today, Tomorrow, and This Weekend all set the Start date of selected tasks by default.

  • In addition to pushing back due dates of tasks, Defer now has the option to act on un-timed tasks by pushing their start date back by the given number of days. (This option is on by default.)

  • All scripts now work when launched from the OmniFocus toolbar.

  • Scripts no longer fail when an OmniFocus grouping header is selected.

  • All scripts reorganized for performance and clarity.

You can continue these scripts with a Due-based workflow, of course: this is a matter of changing a single setting in each script.4 But if you’re successful with a Due-based workflow, you have much more discipline than me.

Download the lot of them here. (And as always, let me know if you have any problems with them.)



  1. Lest anyone complain of the cost of OmniFocus: I’m sure I’ve paid more money to my credit card company in day-of-due-date payment penalties than I have to the OmniGroup.

  2. Thanks to David Sparks and Benjamin Brooks for the insights that led to this realization. I mentioned this in a little more detail here.

  3. Here are the settings for my Do perspective:

    Do Perspective.jpg
    … and here are the settings for my “Due” perspective:

    Due Perspective.jpg
    Both live in my toolbar for easy access.

  4. For example, in the Defer script, there is a line: “property snoozeUnscheduledItems : true. Simply open the script in AppleScript Editor and change ”true“ to ”false" to switch this setting. If you have any problems, feel free to email me.

For those with something to say:


  1. Thank you thank you thank you for these scripts! They are exactly what I’ve been missing in OmniFocus. “Things” has a “Today” feature which I had formally been using OmniFocus’s “Flagged” setting to reproduce but it really wasn’t complete. If I have tasks left over from the day, often I simply want to move them to tomorrow or a few days down the line and it was painful to have to click on the calendar, set a new date, hit return, go to next task, and onward. This is really great, thank you!

  2. Thanks, glad you’re enjoying them! That’s exactly the functionality I wanted to reproduce: the list of things I intend to do today (but don’t necessarily have to complete).

  3. By the way, get new perspectives in OmniFocus on the Mac synced to OmniFocus on iOS devices if you use Omni Sync?

  4. Martin — yes, perspectives are synchronized across your devices (regardless of what sync method you use).

  5. I’m afraid I can’t get these to work under Mountain Lion. I created the scripts folder–applications–omnifocus. Omnifocus DOES recognize that they’re there; they’re in my task bar. However, when pressed, I get a message saying, “One Item Due tomorrow” or something like that, but with no result. Works perfectly on my other computer. Not sure what’s going on.

  6. Figured it out. Looks like I couldn’t save any of the scripts (“This script could not be saved”), so I duplicated them and used the duplication. Works great now. Had to do this on all the scripts.

  7. Hey Jonathan, sorry about the delay! Sounds like you’ve got everything sorted out though. Sometimes the AppleScript Editor can be funny about that stuff… no idea why.