Setting up GTD Filters in Todoist

“Find a system that works with you, not against you.”

At the end of my latest review of ‘Getting Things Done’ I referenced the new set-up I made for Todoist, in accordance with GTD. As Todoist has a lot of functionality and using it all in unison is hard, I humbly present my personal GTD synthesis.
It relies pretty heavily on basic functionalities such as labels and filters, so you may have to read up on those to get up to speed.

Design Decisions

I should probably start with the particular design decisions that constrain my implementation. There are a few:

  • GTD recommends to create a single system that contains both your work and non-work tasks. Nevertheless, my day-to-day activites are currently nicely split between my work/PhD on one hand, and everything else on the other. I have thus found it useful to insert a basic distinction between what I want to do during work hours, versus my spare time.
  • I use Todoist not only as a task management system, but also as a general idea capturing and drafting tool -which is in line with GTD, actually. The particular way I’ve chosen to implement this in Todoist, is with the tag system. As long as something is untagged, it is treated as a placeholder/draft/idea that may need further refinement. Only when I give it a tag, does it show up in any concrete to-do list.

Example1Look away, this is classified!

Above you see an example of a folder in my Todoist. There are a lot of ideas and notes drifting about still. As long as these are not tagged, they don’t show up anywhere in my productivity pipeline; they’re ideas, not tasks.
Only tagging them under their specific area (@Blog, @PhD, etc.) makes them candidates for action.

From there, this is the detailed filter set-up I came up with:

Da Filters

Here you’ll see the set of filters that I currently use (actively) and the queries that make them work.


Projects PhD
@Project & (@PhD | @Work) & !@SD

Work-oriented project filter. It takes all my current (non-Someday) projects that are tagged with either of my work-specific tags: @PhD or @Work.

Projects Life
@Project  & !@PhD  & !@Work  & !@SD

Project filter for anything but work. It takes all current projects minus the one tagged for work.
This also means that I have freedom to create a variety of non-work tags, since I generally have quite some running: @Blog, @Perso, @Reading, @Shopping, and so on. Any project with a non-work tag will be assumed to be a Life Project, and show up in that list.

Actions PhD
(no due date | Today | Overdue)  & (@PhD | @Work) & !@Project & !@SD & !@WF

This one is more of a beauty 🙂
This should more accurately be called Next Actions PhD – but this is shorter. It is meant to find all work-related actions that are on the Next Actions list -i.e. have to be worked on imminently.
The filter selects: anything either due today, overdue, or without due date + with a work-related tag + NOT a project, someday, or waiting for.

Actions Life
(no due date | Today | Overdue) & !@PhD  & !@Work  & !@Project  & !@WF  & !@SD  & !no labels

The Next Actions for all the non-work projects: similar to the previous filter, but once again this is meant to catch all tags except @PhD or @Work.
The filter selects: anything either due today, overdue, or without due date + without a work-related tag + NOT a project, someday, or waiting for + EXCEPT anything that is not labeled.

The last point is important, because tagging is what transforms something from a note into a clear element of the productivity vortex. As above: I consider an untagged task as a “draft” task or idea, which may or may not be elaborated or cancelled -I don’t want these things showing up in my Next Actions list as if they’re fixed.

Actions Scheduled
(!no due date & !Today & !Overdue) & !@Project & !@WF & !p:Birthdays

Finally there’s a list of all scheduled actions. This list provides a good overview of what I have coming up, indefinitely into the future. It’s not split up into work and non-work, since for analysing your time horizon I find it’s better to have… well, overview.

Note that I keep everything in my “Birthdays” folder out of this list, just because I find that seeing all birthdays really clutters things up (and I’m not nice enough to use that information for anything).

Waiting for

Simple filter that keeps track of all actions for which you’re waiting on the input of others. Flagging something as @WF automatically removes it from any actions list.


Dave Allen advocates having not just a list of everything you have to do, but also actions that you don’t have time for now, but want to get around to at some point.
These actions are tagged with @SD, which also removes them from any next actions list.

Projects Someday
@project & @sd

I created this filter to separate the someday actions (generally small, chore-like tasks; clean out my clothing drawer, catch up with high school friend) from the larger someday projects (which may be vacation trips or career decisions).
This distinction is not strictly necessary, but I like this distinction between macro-Someday and micro-Someday.


Adapt whatever you need, but don’t forget to try it out before theorizing too much.

Making it work for you.

With regards to adding tasks, there are not many much changes compared to traditional Todoist: choose a task title, and choose a specific due date (or not). The only extra decision with this system is: deciding (which) tag to add.
If you add neither tag tag or due date, the item is treated as a note/draft.
If you add a tag but no due date, it goes directly to your Next Action list.
And if you add a scheduled date, then it will simply show up in your Next Actions on the specified date (regardless of tag).

So that’s pretty similar. The real difference of this kind of system, is that instead of spending most of your time on the Today/Overdue screen, you’ll spend it in the filters area: cycling through projects and action lists, and periodically reviewing the others.

Your workflow:

  1. Spend most of your time in the Next Actions list – it will feature your most urgent tasks (things scheduled today or overdue) as well as your next actions on each particular project.
  2. Frequently go through the projects lists, and check that each project has a next action under it (particularly if some projects are urgent).
  3. During your weekly review (yes, that’s still a crucial component of any productivity system) you can go over all lists, and put things “into your pipeline” by tagging them and making them show up in one of the actions-lists.

Possible Extensions

1) Time-specific and context-specific lists

Purists will have noticed the lack of these right away 🙂

Time-specific lists are a way of distinguishing the expected length of your next actions. Some tasks take only 5 minutes, others 30 minutes, others take 2 hours. It can be useful to create a seperate filter category so you can pick actions appropriate to the working time you have left.
Context-specific lists are meant to seperate different types of tasks: all tasks you have to do online in @Online, all phone calls under @Calls, errands under @Shopping, and so on.

Personally, I haven’t found that much use for these extensions yet. I do anticipate adding a few of them in the future, but in general I think you’re better off splitting off work in contexts on a needs-basis only.
If I settle on some choices that really work for me, I’ll let you know.

2) Specified tag list

Note also that the no-labels command used in Life Actions is a rather ugly method of coding queries, and it can lead to problems if you try building other label-based extensions (such as time-specific lists) onto the model.

In this case it’s definitely better to agree on a set of tags you’re going to use and simply set Projects Life and Actions Life to filter on these specifically; rather than filtering anything that’s not a specific label.
As long as you’re playing around with different tags though, give this implementation a shot.

The above system has been working pretty well for me over the last weeks. It’s exhaustive enough to feel safe, fun enough to be engaging, and most importantly: easy and relatively friction-less to use.

Did you get it to work? Do you use a better system?
Let me know in the comments!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s