Roam Research for Getting Things Done (GTD)

Roam Research for Getting Things Done (GTD) Cover Image

This is a GTD guide I wrote for the Roam Research team in 2019. I’ve since developed a much smoother workflow, so I’ll update it soon. In the meantime, this should give you a decent intro to both GTD and Roam.


Looking for workflow inspiration?

We’re finding that some new users who struggled when faced with a blank page instantly ‘clicked’ once they saw a mature Roam database in action. With that in mind, we’re going to send out some tips and example use cases.

This week’s demo is David Allen’s Getting Things Done (GTD), which is one of the most popular and venerable productivity systems ever created.

The central idea of GDT is to capture and close ‘open loops’—to get stray thoughts, to-dos, and concerns out of your head, and pin them to the page for future processing.

This frees up mental bandwidth so you’re not feeling guilty or overwhelmed, and means you don’t have to rely on the memory of your leaky meat-computer.

As David Allen says: “Your mind is for having ideas, not holding them.”

There are dozens of approaches to implementing GTD, each tailored to a different set of tools and preferences.

Here’s how you can set up a simple GTD-style system in Roam.

(If you can’t see the gifs, select ‘display external images’ in your webmail client)

Stage 1: Capture

The first thing we need is a bucket or in-tray to capture all our ideas and to-dos in one place. In this example, we have a page named ‘GTD’ pinned to the sidebar for easy access.

Everything from mundane household chores to wild speculative ideas gets dumped in the all-purpose Bucket at the top of the page:

GTD bucket in roam research

Stage 2: Processing

Next, we have to choose a frequency to clean out the bucket—say, at the end of each workday, or every Mon/Wed/Fri.

While processing the contents of the bucket, we ask ourselves: what is this thing, and what should I do with it next?

This gives us three broad courses of action:

1. Ignore it

Some items in the bucket may have already resolved themselves, or no longer seem like they’re worth holding onto. Go ahead and delete them.

If an item isn’t associated with an actionable task, but is a valuable note, idea, or piece of information, you can add it to your Zettelkasten or other note-taking system (we’ll explore this in future emails).

2. Do it now

David Allen’s rule of thumb is that if you can process an item in 2 minutes, you might as well do it right now. Otherwise, you’re spending more time storing and tracking it than it would take to deal with on the spot.

Two minutes is only a guideline: if you have a longer window to empty your bucket, you could extend it to 5 or 10 minutes.

In this example, we delete our 3am thought, which no longer seems so brilliant in the cold light of day.
We also buy The Gervais Principle book and send the expense tracker template to Cso, both of which take less than 2 minutes, and check them off right away:

Processing GTD bucket items in Roam Research

3. Defer it

The tasks that can’t be deleted or completed on the spot need to be assigned to a project, and scheduled if necessary.

Beneath our catch-all bucket on the GTD page, we have containers for all our ongoing projects: Personal, Financial, Notes and Reviews, etc.

In this example, we make ‘Import Deep Dish changelog into Roam’ into a to-do, and then drag it into the #CURRENT section of the relevant project container.

(Tip: You can make to-dos with the slash autocomplete, hitting Cmd+Enter, or by right-clicking on a bullet)

Next, we move ‘Apply for AMEX card on next trip home’ into the Financial container, but we don’t make it into a to-do. It’s not actionable any time soon, so we nest it under the #LATER-SOMEDAY subheading instead:

Getting Things Done for Roam demonstration of buckets

Make it atomic

While emptying the bucket, it’s important to make sure each of our tasks has a clearly defined next actionable step.

‘Caribbean coast planning’ is too vague, so we break it down into its component tasks and convert them into individual to-dos:

GTD: Roam's outliner structure helps to make tasks as atomic as possible

(There’s no need to get atomic for the hazy ideas we’re dumping in the #LATER-SOMEDAY section: the key distinction is that we only assign a to-do checkbox to a clearly defined action.)


In this simple example, we divide each project container into two sections: one for #CURRENT tasks, and #LATER-SOMEDAY, for ideas and projects we want to incubate for a while.

We can then simply drag and drop the nested to-dos into order of priority.

A second approach is to add tags, like #urgent or #this week, so we can see all our high-priority tasks one one page (and pin it to the sidebar).

And a third approach is to use the Datepicker in the slash autocomplete menu to assign a due date or reminder, which creates a backlink to the relevant daily log page:

Using the Roam Datepicker tool for scheduling tasks

Stage 3: Reflection

This is the time we set aside to clear our heads, and look at the big-picture overview of all our current and future projects.

David Allen calls it the Weekly Review, but you can do it twice weekly, or fortnightly, or whatever is the right frequency for you.

It starts with an empty bucket, so clear any items that haven’t been processed yet. Now we can go through each of our project containers, check off any completed to-dos, and assign the tasks we’re going to tackle this week (again, using tags or the datepicker).

This is also our opportunity to look over anything we’ve dumped in the #LATER-SOMEDAY section, and see if it’s ripe for action yet. If so, we might give it its own project container, break it down into component tasks, or assign a to-do checkbox to the next actionable step:

Weekly review in Roam implementation of GTD

Why use Roam for GTD?

Bringing your task management system into Roam lets you integrate workflows with all your ongoing writing projects, research, contacts, and Zettelkasten practice.

Any to-do you assign is bidirectionally linked to the people, dates, and projects involved, so you can see it in the mentions of each relevant page. You can then filter your list of to-dos by project, person, date, urgency, and any other attribute you care to add.

You can also filter out ‘DONE’ tasks without having to delete them, so the history of your accomplishments is only ever a couple of clicks away:

Filtering completed GTD tasks in Roam

David Allen’s mission was to get help us get open loops out of our heads, and break down vague intentions into atomic ‘next actionable steps’.

We’re finding that Roam works as a collection bucket for just about anything—to-dos, conversations, notes, half-baked ideas—while the outliner structure of nested bullets naturally encourages atomic thinking.

We’re aiming to send out some more use cases and tips in the coming weeks, so let us know if there’s something you’d especially like to see, or if you have a workflow you want to show off.


Conor and Josh

Inline Feedbacks
View all comments
1 month ago


Anyways so is this a recommendation for David Allen’s system?

What was the productivity system you used in your journalism days?