How I Remember the Milk (or don’t)

GTD with RTM and Relax!Let’s face it. My record at getting things done is not exemplary. If you looked up procrastinator in the dictionary, you would most certainly not find my picture, because I never managed to send it in. On the other hand, I desperately want to be productive. There are so many things I want to do, that I can’t find the time to do them, and when I can, I can’t think of what to do!

A few years ago, I was introduced—mostly through this dude—to the GTD phenomenon. As seems to be the case with a lot of GTD’ers, I’ve flirted with a few different implementations of the system. I was obsessed for a while, also, with ubiquitous access to my crucial data—email and calendaring—so this would be a crucial part of any GTD system for me as well.

When I first found Remember the Milk, I dismissed it as a limited, web-based to-do list. Over time I heard and saw more positive mentions in GTD circles, and eventually, after attempting to setup my own linux command-line-and-text-file based system (more on that later), decided to give RTM a shot. A couple of items (I think the first and fourth) in the list at the bottom of this post set me on the path of a workable, personalized GTD implementation. I’ve continued to tweak it a bit, and feel like I’ve arrived at a system that works well for me (when I remember to use it—funny how that works, eh?). Anyway, enough setup, let’s get started.

The Basics

At it’s core, RTM is a to-do list—you enter a task on your list, and cross it off when you’ve completed it—but there’s so much more to it than that.

Each task you create can be given: a due date, an estimated time to complete, a defined location, a URL, and even some supporting notes. You can also set the task to repeat at just about any interval, “tag” it, share it with another RTM user, or place it on a list with other related tasks.

You can create as many named lists as you’d like, and place any tasks on them that you’d like, but each task can only be on a single list. Inbox and Sent lists are pre-defined, and not removable.

All these things seem fairly straightforward—tasks themselves have some neat features, but the lists are nothing to write home about, eh? Well, where RTM really shines is in it’s “SmartLists” (similar to iTunes’ “Smart Playlists”), which allow you to perform a search using complex criteria, and save that search as a named SmartList.

SmartLists are at the heart of implementing GTD on RTM.

Some Conventions

Simple and well-understood naming, filing, and labeling conventions are crucial to any well-oiled organizational system, especially one that relies on any form of automation. That being the case, this implementation utilizes a few:

Tags: (tags are critical to this implementation—if SmartLists are the heart, tags are the DNA.)

  • project—the “project” tag is only used on the project “meta” or definition task.
  • p-dash—the “p-” indicates a common project named tag, e.g. p-projectname, which would be used on any task belonging to that project.
  • @context—the “standard” GTD context, such as @home, @computer, @work, @errands, etc.
  • +person—the “+” indicates a task that requires input from or interaction with another person, such as +sara
  • na—placed on a known Next Action—I tend to only use this for non-dated actions
  • wf—indicates the task is “Waiting For” someone’s input or the outcome of another task or event

Tasks: (the task naming conventions are pretty much exclusively for list-sorting purposes)

  • pname :—each project “meta” task gets a short project-specific prefix, followed by a colon.
  • pname |—each task, that’s part of a project, uses the project prefix, but followed by a “pipe” or vertical-bar character.
  • pname | subproj :—subproject “meta” tasks get their own specific prefix, after the parent’s task prefix
  • pname | subproj |—each task, that’s part of a subproject, gets both prefixes, and uses the “pipe” character.

Here’s a glimpse at some of my “chores.”

This is a decent example of naming conventions, in use.

A good example of naming conventions, in use.

Establishing The System

Ok, so now that we have some basics down, we’re ready to setup the system—starting with the Lists.


We know that we will have an Inbox, and a Sent list. For some, that may be all you need, just throw your tasks into your inbox, tag them, and do everything else with Smart Lists. The other option, is to create a few very broad lists, so we can keep our Inbox clean (new, untagged tasks are in Inbox, and we move tasks into our other Lists as we tag them). You might start with Personal and Work lists, the purpose of which should be clear enough. You may have other lists, as I do, for things like “Home,” “Websites,” “Writing,” etc. Again, as many or as few (well, two) as you like. Things specifically relating to the house (chores, handyman, party planning) could go in “Home.” Whereas my maintenance tasks and long-term Web projects go on the “Websites” list.


Generally, tasks entered offsite (email, twitter, quicksilver) will go into your Inbox, though there are ways to specify a different list. When you’re onsite, if you’re currently viewing a list, any task you create will automatically be assigned to that list.

But now, we get into the good stuff. If you have entered some tasks, tagged them, and given them all the relevant data (due dates, repeat timeframes, locations, notes, etc.) then we’re ready to start building Smart Lists.


Building a SmartList

Building a SmartList

We want to have a list, showing us an overview of all our projects (helpful for GTD’s weekly review, or so I’m told.) In the search box, type (or just copy and paste, lazybones) the following, and hit enter.

status:incomplete and tag:project

You should see a list of your tasks that are tagged with “project” (and that haven’t been marked as complete). To the right, you’ll see the box… to the right… which has the all-important “Save” tab. Click the Save tab, type a name (like “Projects”) into the box you see, et voila—you’ve just created a “Projects” SmartList.

You can also initiate a search for a specific tag by clicking the tag name in the task details panel in the right column. You’ll get a search details panel similar to the above, but without the “status:incomplete” portion. Frequently, I’ll use this feature to get a list of tasks for a named project (i.e. I’ll click a “p-projectname” tag).

Other Smart Lists

Now, this post is already about a mile long, so I’m not going to go into great detail about the rest of the lists. You have the basics, and should be able to wreak quite a bit of havok with what follows.

Simple @context lists

status:incomplete and (tag:@calls and tag:na)

Next Actions list

status:incomplete and (tag:na or due:today or dueBefore:today)

Waiting For list

status:incomplete and (tag:wf)

Complex @context lists

This one takes a bit more explanation, but you should see what’s going on, based on the above searches, and the goal (which I’ll cover after the code).

status:incomplete and (((tag:@home or tag:@any or tag:@calls or tag:@computer or tag:@errands) and (tag:na or dueBefore:"now" or dueWithin:"4 days of today")) or (tag:chores and (due:today or dueBefore:"now")))

For my @home context list, since I have a phone and a computer at home, and since I’m usually home before I go out to run errands, I also like to see those tasks in my @home list. You might also notice that I have a special context called @any, which basically just means something I can do anywhere—so those tasks go on my home list as well.

Typically, GTD context lists intended to contain identified “Next Actions,” or tasks that we’ve tagged with na. However, I also have some repeating tasks (like chores), and some things that I want to give myself an actual deadline for. These tasks are given due dates and/or repeat intervals. And, since they’re not necessarily “Next Actions,” I don’t tag them as na. So, I use the dueBefore and dueWithin search keywords to pull in my upcoming (or overdue) tasks.

Finally, since I have lots of chores to keep up with, I also want those in my @home list, especially those that are due or overdue.

My @work list is almost identical to my @home list, but doesn’t include the chores.

Agenda Lists

The last list type, and one I rarely use in practice, is the agenda. These are for tasks that are tagged with the “+person” convention. Here’s my +sara agenda search code:

status:incomplete and (tag:+sara)

Simple enough, eh?

In the end, here’s what we’ve got:

All Set Up

There ya have it. Simple, straightforward, and oh-so-GTD.

If you’re using RTM for GTD, what kind of fancy SmartLists do you have setup? See any way I could make mine better? Don’t hold back, share—leave a comment!

Some Other Posts That Might Help

2 Responses

  1. Review 777 says:

    So has RTM been useful in getting you to do the things you wanted to do? Or is it something you’re still testing out?

    BTW, what do you think of Merlin Mann’s new direction? I think it’s great he’s frustrated with the ratio of reading tips to actual doing stuff, but I don’t think he has a solution to getting away from tips and getting people to actually do stuff.

  2. matt says:

    RTM and I have our ups and downs. I tend to be a project obsessive–working on one project to the exclusion or detriment of others. So, in that way my usage of RTM has not been what I’d like it to be. Still, i have it open all day, and i have referred to it, on occasion, from my Treo when out and about. (I think mobile usage will be much easier, and my usage will go up dramatically once I get an iPhone in the next few months).

    I think that it *has* helped me, in as much as it’s an easily accessible system that I didn’t have to build from the ground-up, but I can still fiddle with and tweak as I see room for improvement. And I feel that I have gotten some things done that might have slipped through the cracks otherwise.

    As for Merlin’s new direction… in a lot of ways, i think his self reinvention kind of pushed me in the direction i’ve been heading since last year (see the first post on this site, which links to another post on my other blog if you’re interested).

    I kind of see your point, but I think that that’s kind of his point… I feel like he’s transitioning from being a teller (teacher) to a do-er (inspirer). In that regard, it very much worked for me. I learned a lot from him during his teacher phase, and am enjoying his creative phase from afar, though i don’t pay a lot of attention anymore… i’m too busy working on my own stuff!

    (Merlin is still my #1 favorite’ed twitterer, however.)