Skip to content

OmniFocus Defer Script

OmniFocus rocks. I can’t really imagine managing myself personally or professionally without this tool. Nevertheless, despite thousands of hours of development and beta testing, it has its share of quirks. Notably, in my work I have a few daily-type tasks I set to repeat every day. Unfortunately, there’s no “workday” option in the repeat choices, so every weekend I end up with a Saturday and Sunday repetition. I could either:

  • Mark them complete (ignoring the fact that I’ve just claimed to have done nonexistent work);
  • Mark them complete and delete the “done” items before they disappear (solving the first issue)
  • Change the start/due dates in the Inspector (cumbersome)
AppleScript to the rescue.

My Defer script allows you to defer, or ’snooze’, selected projects or tasks by a given number of days. (Disclaimer for GTD pedants: my use of the word “defer” here is sanctioned by the New Oxford American Dictionary, not David Allen.)

Usage: Select the task(s) and/or project(s) you wish to defer. Invoke the script from the toolbar or script menu:

OFDS_1

Enter the number of days to defer the items in the resulting dialog box and select “OK” (default is 1, so feel free to just hit Return to ’snooze for a day’).

OFDS_2

The script will then prompt you whether to defer both start and end dates of the items. “Due [date] only” is the default option, so again, feel free to hit return to snooze your due date only.

OFDS_3

Finally: a Growl notification to signify your success. (If desired, you can use a standard OS alert dialog or no alert at all. See the script for details.)

OFDS_4

Download here: Defer.zip

19 Feb 2009: version 0.2 is now available. Release notes here; direct download here.

Bookmark and Share

5 Comments

  1. Christopher

    This is terrific. Thanks for sharing it.

    Posted on 06-Sep-08 at 5:12 pm | Permalink
  2. Fantastic! I have been looking into something like this for a long time, having requested it from the Omni people as a toolbar option. Well here it is! However I am getting an error wnen selecting several actions and trying to snooze one day.

    AppleScript reported the following error: OmniFocus got an error: Can’t get tree 15 of tree 1 of content of document window id 448 of document id “oeJ-vPFksgV”. Invalid index.

    Do you know how to fix this?

    Thanks

    Manuel

    Posted on 27-Oct-08 at 12:27 pm | Permalink
  3. Manuel—glad you enjoy the script! And I’m sorry for my delayed response.

    I’ve encountered the same issue and haven’t had any success debugging. I may contact OmniGroup for support.

    Posted on 25-Nov-08 at 10:53 am | Permalink
  4. Big Cloits

    Just a heads up that this script did some light damage to my due dates, nothing serious but not exactly harmless either. I selected several items, deferred them en mass for 1 day, some worked but most did not and I got the error noted by Manuel. I continued selecting and attempting to defer, getting a couple more to defer each time. But after a few iterations, I realized that the script was somehow still acting on previously deferred items, resulting in a real mess of incorrect start and due dates. Arg. This script is most definitely not rock solid. It’s been working fine for me on one or two deferrals at a time, but it really choked on multiple items.

    Posted on 19-Jan-09 at 9:10 am | Permalink
  5. Big Cloits—I’m sorry to hear you had trouble with it. Others have reported unexpected behavior when dealing with large lists. Because I primarily use the script on a couple items at once, this issue hasn’t been a big deal for me. I keep hoping Omni will add this functionality built-in, but in the meantime an updated script might be in order…

    Posted on 17-Feb-09 at 7:56 am | Permalink

3 Trackbacks/Pingbacks

  1. Ryan Irelan » OmniFocus Defer Script on 10-Apr-08 at 10:49 pm

    [...] OmniFocus Defer Script - Very handy way to push due dates back or forward; a snooze for OmniFocus. [...]

  2. [...] OmniFocus Defer Script [...]

  3. [...] with improving my OmniFocus setup. I make heavy (and unfortunate) use of a neat AppleScript called Defer, which is a button I press when I don’t get something done when [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*
FireStats icon Powered by FireStats