How I Use OmniFocus

OmniFocus is a first-rate task manager. It's so flexible and powerful, however, that coming up with a workflow and a set of contexts that efficiently aid the management of one's tasks can be difficult. I've fiddled with my setup for several months, completely overhauling my contexts three times--should they be time-based (Today/Tomorrow/Soon/Next Week), resource-based (Laptop/Grocery store/Printer), state-based (Home/Work/Errands/Spare time)? I've tried out several perspectives, seeing which fit into my workflow and which are disruptive or merely unhelpful. And I've experimented with the various levels of containment--folders, projects, action groups--in order to determine where they mesh with the natural hierarchy of my own tasks.

Most helpfully, I've perused the OmniFocus forums, hoping to glean insight from the practices of other users. While much of that time was spent navigating around outbursts from orthodox GTDists, I managed to find and appropriate several ideas. In an effort to ease others' OmniFocus learning curve, here's how I have things set up.


My first act upon installing OF was to set up a large, complete hierarchy of contexts describing many aspects of my life. It didn't take me long to realize this in no way helped me. My difficulty lay in not having a clear idea of the identity of contexts in general. Nearly everything for which I need OmniFocus involves my job, which is basically a single large context, as I'm a programmer on one project on which I work from home. Having a single context seemed like a misuse to me, but artificial distinctions between contexts was equally ridiculous. For example, there's no reason to have a "Laptop:Photoshop" context, since there's no situation in which I'll have my laptop but /not/ Photoshop.

Eventually I decided to drop all my contexts and allowed them to be created when needed, to try to figure out the contexts in which I naturally think of tasks. This led to a pretty good set -- only a few, but each had real meaning. They ended up describing a mix of states and resources:

  • Errands
    • Grocery Store

    • Home Depot

    • ...

  • Exercise

  • Computer

    • Blog

    • Zenoss

    • Internet

    • Printer

  • People

    • Gillian

    • Jason

    • ...

  • Home

  • Waiting

    • Code Review

    • Chad

    • Gillian

    • ...

  • Spare Time

These are fairly run-of-the-mill, except the "Waiting" context. I set the status of that context to "On Hold", which means that when I apply it to an action, the project is similarly on hold. It took me some time to realize that I could change the context of an action as it moved through various states; there's no need to create actions, for example, like "Send email about X", "Read response about X," and "Apply response to X", merely to use the contexts "Email", "Waiting" and "Computer"--instead, just have "X" as a task, and change its context to match the state it's in. But don't go overboard; use as few contexts as necessary. I generally just move things in and out of "Waiting" as needed, which lets me know if I can work on it at the moment or not.

Due Dates

Due dates are apparently Not Used in GTD unless a task actually has a hard date by which it must be completed. I shied away from them for that reason, attempting to use contexts, flags, then folders to indicate relative priority of tasks. Eventually I gave that up, since it seemed silly to ignore a perfectly good mechanism for recording when I planned to work on a task merely because of its connotation. Now I use due dates to indicate the time I intend to have finished a project or action; this allows me to set up perspectives sorted by due date. The thing at the top of the list is what I work on next. If priorities shift, I alter due dates accordingly.


Note: I've left off Duration and Flag filters from these perspectives, because I don't currently have a use for them; all perspectives use the default.

View Mode: Planning
Focus: Work
Filter: Remaining
Grouping: Due
Sorting: Due
Action Filter: Available

My projects for work, grouped by due date, showing available actions only--thus, if a project is stalled by the "Waiting" context, its actions won't be visible (though the project will). Answers the question: "What will I be working on today/tomorrow/this week?"

View Mode: Context
Focus: Work
Filter: Active
Grouping: Ungrouped
Sorting: Due
Action Filter: Next Action

A flat list of available next actions, sorted by due date. Answers the question: "What should I do next?"

View Mode: Context
Focus: Work
Filter: All Contexts
Grouping: Completed
Sorting: Project
Action Filter: Completed

Actions I've completed, grouped by completion date. Answers the question: "What did I do yesterday/this week/last week?"

View Mode: Context
Focus: Work
Filter: On Hold
Grouping: Context
Sorting: Due
Action Filter: Remaining

Projects on which I'm stuck because I'm waiting for something from someone. Answers the question, "What's blocking me from finishing my tasks?"

View Mode: Context
Focus: No Focus
Filter: Remaining
Grouping: Context
Sorting: Project
Action Filter: Available

My errands, grouped by context; this gives me a nice list of what I need from each store.

During our morning standup meeting, I reference "Completed" for what I did yesterday, "Work" for what I plan to do today, and "Waiting" for what's blocking me. Then when I start work, I live in the "Now" perspective. Weekends I'll reference "Errands" (and a "Spare Time" perspective I have yet to perfect).

Template Projects

This is one I got from the forums. If you have a project with several actions that occurs every so often, but not at regular times, make yourself a template project that you can duplicate. For example, I have a "Travel to Austin" template that reminds me to pack a toothbrush, make hotel reservations, fill out an expense report, etc.; when it's time to make a new trip, I duplicate the project and set the due dates accordingly.

Another great use of this technique I found on the forums was for grocery shopping. Create template projects for recipes with actions for all the ingredients. When you plan your meals for the week, make copies of the appropriate recipes, and your "Errands : Grocery Store" context will have a grocery list all ready. Sync to your iPhone and go.

Set the start date of the template project far in the future and put it in a folder at the bottom of your projects tree, so it doesn't get in the way of your active projects. You can apply the appropriate contexts to the actions, because they'll all be pending.

Hopefully, these examples will help newcomers over the hump presented by the very, very large blank sheet of paper OmniFocus provides. As my OF configuration has evolved, I've found myself using it more frequently. When you manage to the find the groove, you'll never leave.


  • maasum  
    May 12, 2009 at 2:49 PM

    i agree...i absolutely love it!! :)

  • Anonymous  
    June 5, 2010 at 2:52 PM

    Hi Ian, you may be interested in the feature I just requested regarding adding a formal 'Waiting For' state to OmniFocus as well as appropriate Project Filter(s).

Post a Comment