High Variance

Getting Things Done With Remember the Milk (i.e., GTD With RTM)

Every year or so I get cranky about my task management system and switch to something new. This year it’s particularly bad because I’ve been hearing the Siren Song of OmniFocus. I swear every nerd blogger I read uses it: e.g.,

I even believe John Gruber (Daring Fireball) uses it though he’s a little cagy since they are often a sponsor of his.

BUT, I strongly believe you shouldn’t switch systems unless you’re solving specific problems. That is, I invest in my systems and don’t want to switch just for fun. Hearing that some other piece of software is “really good” or even “better” than what you’re currently using isn’t good enough for me.

Last year when I made the switch from Google Tasks to Remember The Milk (RTM), I had some clear requirements:

  • Cross-platform: I was spending time on Mac, Windows, iPad, and iPhone and I needed to be able to access my tasks from all of them.
  • Rock solid invisible sync: I never wanted to think about which version of my task list I was working with. There should be just one master copy (preferably in the cloud) that gets seemlessly accessed and updated from various clients.
  • Power and flexibility: Google Tasks met the first two criteria, but it was just too simple. I wanted more than due dates and separate lists. I wanted to be able to attach priorities, contexts, durations, and other arbitrary tags. I wanted to dynamically create lists based on these characteristics that showed me just what I wanted (and was able) to do at any particular moment.

At the time, RTM was the best solution, but the world has changed since then. Omnifocus now provides highly regarded Sync Services. And I’ve shed my need for Windows now that I carry a MacBook Air with me everywhere i go.

Stepping up a level for a moment, the overall task management system you use is far more important than the particular tool you use to implement it. I’m a GTD (Getting Things Done) guy, though I’m not the most orthodox devotee you’ll meet. There are two things I love about GTD:

  1. You get the mental to do list out of your head. Since you’re not constantly worrying that you’ll forget something, your mind is freed up for more interesting creative work. And you’re not forgetting things!

  2. Once your tasks are organized, GTD provides a way to quickly see what you can and should be doing in any given context. This is exactly what I couldn’t do with Google Tasks.

After a year of experience (and tweeking), I’ve got an implementation of my GTD system in Remember The Milk that works pretty well. Before casting it aside for a new pretty young thing, I’m going to describe my system and what works and doesn’t work for me. It’s almost certainly not a perfect match for anyone else, but it might give you ideas for things to try or think about.

RTM is a simple system that lets you build complex systems on top of it. Basically, you just define a bunch of lists of tasks with characteristics. These characteristics include priorities, due dates, durations, locations, and arbitrary tags–exactly what I want. The power comes from defining Smart Lists that are basically saved searches based on these characteristics.


Even though RTM supports multiple lists, I keep almost all my tasks in the Inbox list and use other lists only for storing things like books I’d like to read or ideas for upcoming posts. I define my projects with tags. Home-related projects have tags starting with “ph-“ (e.g., “ph-basement”) and work-related projects have tags starting with “pw-“. Most tasks that go into the system have either a project assigned or a simple “work” tag. If it’s a single task home project, I don’t take the time to assign a project tag at all.


I assign each task a single location tag: at-desk, at-phone, at-home, at-econoffice, at-errand, or at-wife. The last one is special: tasks that require consultation with my wife. Someone else that runs a lot of errands might find it worth their time to set up several locations that cause tasks to pop up when they go somewhere, but generally I go somewhere because I need to do something and so don’t need to get reminded.


Coming up with the right set of contexts is critical to the system and it’s the hardest part. In The GTD Book, David Allen talks a lot about home, office, and phone. With smart phones, the set of things you can do “on the phone” is far larger than it used to be. Since I usually have my laptop with me and most of my resources are online, home office, work office, and even cafe are almost the same.

Right now I have four smart lists that define my contexts:


due:today or dueBefore:today or (list:Inbox and (tagContains:pw- or
tag:work or tag:weekday) and (dueWithin:"5 days of today" or
priority:1 or priority:2 or priority:3))</tt>

This is the context I look at during the work day or at night when I’m working. It includes everything due today or that’s overdue so I don’t miss deadlines. It also includes any tasks associated with work-related projects or that can only be done during the week (tag:weekday). The most interesting piece is where I drop all tasks that are due more than five days from now that have no priority assigned. These are the tasks I don’t even want to think about until it gets closer to their due date.


due:today or dueBefore:today or (not tag:work and not
tagContains:pw- and not tag:weekday and list:Inbox and (dueWithin:"5
days of today" or priority:1 or priority:2 or priority:3))</tt>

On weekends and any time I want to focus on the non-work part of my life I check this list. It’s almost the inverse of my work context except that it also includes anything that’s due or past due.


tag:at-errand or tag:at-phone

This is what I should and can do when I’m out and about.


tag:fun or tag:easy or timeEstimate:"< 1 hour"

When I’m tired or just have a few minutes, I look at this list. It’s my newest context, and I might eventually break it into a tired list and a separate quick-task list.

All four of these Smart Lists are sorted first by due date and then by priority. I often use high priority to mark that a task is the next action for a project. This way it’s always listed before other actions that I want to record but might not be ready to do. A while back I read another article about implementing GTD in RTM and it suggested using an na tag. My system allows me to complete a task for a project and have the other tasks still show up on the list. The last thing I want to do is to constantly be tagging new tasks as na as I complete other tasks.

There are plenty of times when I want to focus on a particular project and in those cases I simply look at the Tag view for the project and see all the tasks associated with the project no matter when they are due or what their priority.

Weekly Review:

Just as David Allen says, I’ve found that if I don’t do a weekly review, the information in the system drifts away from the information in my brain and loses its value. That’s when most folks fall off the wagon. So support for the weekly review process is super-important. Here’s what I do every week:

  • Look at my untagged Smart List (not isTagged:true list:Inbox) and assign project (if necessary) or location tags
  • Look at the tasks for each project:
    • Are any upcoming tasks missing?
    • Are priorities and due dates right?
    • Can I delete any tasks that are no longer needed?
  • Add any new projects that didn’t make it into the system during the week
  • Quickly look at all the tasks in the system (usually between 100 and 150)
    • Do I need to lower / raise any priorities?
  • Look at what I accomplished in last week (completedWithin:”1 week of today”)–good for setting feasible future expectations

One nice thing about this way of doing weekly reviews is that it can be done in chunks here and there –I don’t have to set aside the traditional 2-3 hour block.

Room for Improvement

On the whole, I’m pretty happy with my system, but that doesn’t mean there’s not lots of room for improvement.

First, my system isn’t that great for capturing or doing long range planning. I can’t specify task dependencies and I can’t even specify start dates for tasks. If I could, that would let me filter out tasks that I know I’m not starting for a while. I try to follow orthodox GTD practice and only use due dates for when things are really due. That way I don’t miss these things in a sea of stuff that I’d like to be done on that day.

Second, while the iOS apps are very good, I’m getting tired of the clunky RTM web interface. It’s functional, but pretty ugly. I use Fluid to make RTM a pop down menubar app, but I can’t get it to play well with multiple Spaces. That is, when I pop down the app, it pulls me back to the Space I first started it. And when RTM automatically logs me out of the website (more often than I’d like), I can’t use 1Password to log back bin. I’m still totally dumbfounded that no one has built a decent native Mac app for the service.

Third, entering new tasks requires me to click on the menubar app and then put the cursor in the new task text entry box. It sure would be nice to have a global hot key for this.

Bottom Line

Remember The Milk bugs me, but it also works for me. And maybe Omnifocus wouldn’t be uniformly better. I’m worried that it would try to force me into new ways of doing things that just don’t match my work flow. Maybe instead I need to check out Things…. Or maybe I just need to get back to work!