Using Todoist: Labels and Filters

Using Todoist: Labels and Filters

(Justin DiRose) #1

This week comes the really fun stuff with Todoist that has made it unique among its competitors: Labels and Filters.


Labels are just what you think — metadata about the task labeling what it is. What stood labels apart from other task managers initially is the ability to add multiple labels to a task.

Instead of having your usually minimal list of contexts and forced to choose just one, now you can have a context, and any other identifying information you desire using multiple labels.

For example, you might have a task to “call Jim about his paper sales quota.” While your context is the phone, your labels may be more extensive, such as:

  • Phone - items requiring a call
  • Jim - agenda items pertaining to Jim
  • Personnel - items pertaining to the personnel management part of your job
  • Low Energy - items that do not take a lot of energy to complete

Multiple labels create the potential to slice and dice your tasks in a much more meaningful way.

Additionally, labels can be color coded in Todoist, so your context type labels could be green, your energy labels in red, and your work mode labels in blue.

Labels show up in a line on each task and can be clicked on to see all other tasks with that label for easy batch task processing.

Some downsides to labels are you cannot label a project in Todoist. You could label a parent task instead, but the actual project is really just a folder.

Additionally, labels cannot be nested like OmniFocus tags can. As a result, if you use a lot of labels, the list can get unruly.

Lastly, if someone shares projects with you, the labels on the tasks in that project show up in your list, adding to an already potentially cluttered labels list.

The good thing, though, is labels are so powerful to use and frictionless to create that the downsides often aren’t as big of a deal.

It’s important to understand the impact of labels, as they are a huge piece of what builds the foundation for probably the most powerful component in Todoist: search.

Search and Filters

In some regards, Todoist is a search engine for your tasks. There are specific search terms and operators which allow you to find nearly any combination of tasks you may want. The more metadata (read: labels, scheduled dates, projects), the easier search gets.

While Todoist’s search feature is fast and flexible for performing searches, its terms and operators may get cumbersome to use manually typing in every day. That’s where filters come into play.

Filters are essentially saved searches in Todoist. Create a string of operators and search terms, add them to a filter, and boom — a saved search view.

But enough with the high level stuff already — how does it work?

Search Terms

According to Todoist’s support page, you can create filter queries based on:

Due date
Priority level
Project & sub-projects
Date a task was created
Shared project & task assignees/assigners

What’s amazing is the breakdown under each of those categories. For example, filtering by due date allows you to search by today’s date using today, all tasks due after May 1st using due after: May 1, overdue tasks using overdue, and all tasks due in the next 3 days using 3 days, among others. Dates have flexible formats, too.

When searching in projects, you can delineate filters to show tasks in a single project using a single pound sign (#Home), or all tasks in all sub-projects using a double pound sign(##Home).

Every piece of metadata can be searched via filter, as well as the actual content of the task itself via keywords.

These options alone are great, but adding operators on top of them makes search terms even more powerful.


Operators allow you to join multiple search term queries together into one filter. Here’s a quick overview of the operators:

  • & - AND
  • | - OR
  • ! - NOT
  • () - joins set of search terms together
  • , - allows multiple filters to show on the same filter


Here are some examples of search terms and operators joined together for some complex filters.

Dashboard — (overdue | today), (p1 | p2)
Shows all overdue tasks and tasks scheduled for today in the top section, and all priority 1 or 2 tasks in the bottom section.

Modes - Admin — @admin & ##Work & ((today & !@deferred) | (@deferred & today) | (no due date))
Shows all tasks labeled @admin in the Work project or sub-projects AND are scheduled for today or do not have a @deferred label, OR all with a @deferred label and scheduled for today, OR don’t have a due date. (It’s a lot more complex to try to write that convincingly in English! I created this one to show all tasks in a particular mode to help with batching, and also as a way to hack a deferred date into Todoist.)

90 Days — created before: -90 days
Shows all task that were created more than 90 days ago. It’s a quick filter to help show potentially stale tasks that need to be deleted, scheduled, or acted upon during a review.

Downsides of Filtering

Todoist offers a lot of options for filtering lists, but they do come at a bit of a price: complexity of structuring the queries.

You can see above with the Modes - Admin query that it’s not exactly easy to tell what the query does by looking at it. Honestly, you almost need to have some background in programming or math to get it fully without studying it.

OmniFocus ultimately does filtering better because a GUI makes it easier to play around with. In Todoist, the text box for creating filters is extremely short, so more complex queries requires writing them within a text editor, pasting the filter in, testing, and making modifications in the text editor if there are any issues.

However, if you end up choosing to use Todoist and can wade through the semi-complicated filtering language, you’ll find it has a powerful yet flexible ability to see your lists in many different ways.

Let's Talk Business
(Wilson Ng) #2

I’m glad todoist has filters. I’m kinda stunned that Things 3 doesn’t have this feature.

Tags and labels are a popular feature in task managers. But their power is magnified with the use of filters or custom perspectives.

The problem that I had with filters was trying to find the right ones that worked for me. It took me years of experimenting to finally get the filters I wanted to use for my task manager.

But I’ve finally settled on my group of filters that I use on a consistent basis.

Curation is always important. I would suggest a quarterly review to eliminate expired labels and filters that are no longer relevant. Keeping outdated filters and labels is one way to creat friction and mistrust in our task manager.