OmniFocus

Second in a series on task management. Read part 1 here

In my previous post I talked about how I use David Allen’s Getting Things Done system for task management. You can implement GTD in many different mediums, from pencil and paper to a wide variety of software. When I first started with GTD I ran my system on vertically ruled index cards. However, I discovered that I had enough complexity in my life that it quickly overwhelmed my index card based system. I moved over to OmniFocus and I’ve been there ever since.1

OmniFocus is specifically built for GTD and it implements all of GTD’s fundamental concepts: projects, contexts, weekly review, etc. One of the most important features for me is that it’s available on the Mac, iPhone, and iPad and syncs seamlessly between them.

Quick Entry

One of the things that’s important to me is making it as easy as possible to enter tasks. On the Mac OmniFocus does a great job of this right out of the box. It has a quick entry box feature that will pop up ready to receive a task when you press a particular key combination (mine is Ctrl + Option + Space), regardless of what app I’m in at the time. Sometimes I’ll enter all of the details of the task in the quick entry box (Context, Project, defer or due dates), but often I’ll just put enough in there to remind me what the task is supposed to be. OmniFocus will hold the task in it’s inbox until I get around to processing it and adding all of the details.

OmniFocus has a quick entry feature on iOS as well, but it’s nowhere near as useful. Rather than just a quick keyboard combo, I’ve got to open the app and hit the quick entry button before I can start typing. Entering additional details requires navigating through lists of projects and contexts and using the iOS date picker. It’s well designed and uses iOS interface elements well, but for a long time I wanted an experience more like what I could get on the Mac.

Recently I switched over to entering my tasks using the Drafts app. Launching Drafts automatically opens up a new document with a blinking cursor ready to type. It integrates with many different apps, including OmniFocus; allowing me to send whatever I type to OmniFocus as a new task. I actually have two actions set up to send to OmniFocus, one just adds the task, the other specifically adds it to my Work context..

It’s possible to include a due date with a task as well, by putting “@due(today)” after the task (the “today” can be replaced with a specific date or a number of days or weeks). The problem with doing this in Drafts is that the parenthesis and “@“ symbol are more difficult to access on the iOS keyboard. Thankfully, Drafts supports TextExpander snippets. I set up a snippet that replaces “xdue” (which can be typed without any special characters on the iOS keyboard) with “@due( 5pm)” and places the cursor right after the opening parenthesis. So I can type “xdue” and then enter a specific due date or the number of days.2

Defer Dates and Dependencies

One of the best features of OmniFocus is the ability to defer a task. By giving a task a start date sometime in the future it won’t show up in the task list until that date arrives. This is a great feature for keeping stuff that I can’t do anything about right now out of my main task list. I use it all the time when I need to follow up with somebody in a week, or when a task can’t be started until some future time.

OmniFocus also offers the ability to make all of the tasks in a project sequential, so the second task in the project won’t appear in your task list until the first task has been done. This is useful when you’ve got dependencies where a subsequent task can’t be started until you’ve done the previous one. I do wish they had a more flexible system for this, allowing me to make one task dependent on another, rather than having to make the entire project sequential.3

Triaging the Task List

One thing I’ve always struggled with is keeping my task list manageable. OmniFocus can hold huge numbers of tasks, but I can’t deal with that many at one time. When I get too many things on my task list it makes it hard to pick out what I need to be doing right now. I find my limit is about what OmniFocus can display without having to scroll the task list to see everything (15-20 tasks depending on screen size). Defer dates and sequential projects can help with this, but I still have more things that I could be doing right now than I can easily choose from.

The solution I’ve found is to prescreen my task list and create a subset of tasks that I’ll actively consider when deciding what to work on at any given moment. I’ve tried a bunch of different ways to implement this concept in OmniFocus and they’ve all had issues. As Churchill reputedly said, “Americans can always be counted on to do the right thing…after they have exhausted all other possibilities.”4 I can’t say I’ve gotten around to the right way of doing this, but here are some of the other possibilities that I’ve exhausted:

My first approach to this was to use defer dates. I would go into OmniFocus every morning and defer all of the tasks in my task list that weren’t in the subset that I wanted to work on that day. This was rather fiddly and time consuming. In particular, it was hard to implement on iOS, where you have to defer one task at a time (on the Mac you can select a bunch of tasks and defer them simultaneously).

After giving up on the mass defer option, I started using due dates to create the subset of tasks that I was going to pick from. I’d go into OmniFocus in the morning and set the tasks I was interested in to be due that day. This was a bit less fiddly because I only had to set dates for the smaller subset of tasks that I wanted to pick from, but it was still pretty fiddly. It also made it hard to distinguish stuff that had an actual hard deadline from stuff that I had given an arbitrary due date to.

My current method is to use OmniFocus’ flag feature to create my subset. It’s less fiddly since I only have to set the flag for a task once, rather than having to create the subset anew every day. The disadvantage is that since I’m not forced to actively curate the list every day it has a tendency to grow over time, which kind of defeats the purpose of having a small subset of my task list. I’ve recently taken to supplementing this by using a paper notebook to plan my day better, including both tasks and my schedule, but that’s a different article.

An Essential Tool

OmniFocus has really become an essential tool for me. Going back to grade school, things like remembering homework have always been a struggle for me. Since then my life has grown a lot more complex, and having a powerful task management tool is the only way I can keep thing from slipping through the cracks.

Next up in the task management series: analog task management with a notebook and a whiteboard.


  1. Nine years. 
  2. The “5pm” is in there because when you send OmniFocus a task from Drafts with a due date, the default time for the task to be due is 12am (unlike when you enter a task in the OmniFocus app and the default due time is 5pm). So I’ve set up the TextExpander snippet to pre-populate a 5pm due time. 
  3. Although you can set up a subproject inside of a project and make just the subproject sequential, it’s a bit clunky. 
  4. I was disappointed to find the attribution to Churchill is probably apocryphal. It seems like a very Churchillian thing to say.