[![](https://p24.f4.n0.cdn.getcloudapp.com/items/jkuK7x4R/TD-lockup-standard-64.png?v=1177403d33870d89aa26111aca3d99ea)](https://doist.grsm.io/leightonprice1199) # Todoist Filters **Last updated:** 29 Dec 2021 --- ## Overview To be totally transparent, I've used the [official Todoist help page](https://todoist.com/help/articles/introduction-to-filters) for Filters, as the backbone for this guide. I've streamlined it a bit, made it easier to read and I've also ***added quite a few tips and tricks*** to make things a little clearer for some of the [Free Todoist users](https://todoist.com/pricing) that may be using Filters for the first time, now that up to 3 Filter queries are included within that plan. If you copy and paste the code block below into a new task in your Todoist Inbox, the [uncompletable task](https://todoist.com/help/articles/how-to-create-an-uncompletable-task) will act as a handy [Markdown link](https://todoist.com/help/articles/text-formatting) to this page which is then available from all your devices for quick reference. `* __[Reference Sheet - Todoist Filters](https://www.leightonprice.com/todoist/filters.html)__` It will then look like this in Todoist.... ![Todoist Inbox](https://user.fm/files/v2-8c104ddc1619b3abe984d9c1ce4e35cd/Todoist_Inbox_Filters.png) In addition to Filters, my expanded take on [Todoist Due Dates & Times: Natural Language Syntax](https://www.leightonprice.com/todoist/dates.html#) is also well worth checking out if you haven't done so already. Finally, at the bottom of [my homepage](https://www.leightonprice.com), you'll find a section listing some of the tools I've produced to enhance the Todoist experience which may also be of interest. Cheers. Buy Me A Coffee --- ## The key operators powering Filters Constructing Todoist's Filters can seem quite intimidating, even when following the official Support guides. There is no UI to create them, or any live-feedback when constructing them. However, once you get a grip on the syntax/operators/logic used to build the text strings, things tend to fall into place. Eventually! You'll see the specific operator symbols, detailed below, featuring throughout the examples that follow. **|** The 'pipe' symbol acts as **OR** **&** The ampersand symbol acts as **AND** **!** The exclamation mark acts as **NOT**. As you'll see below, this comes in extremely handy when used in conjunction with some of the filter commands, thus creating the opposite effect **()** Parentheses are used to create more complex/conditional queries. See the first General example below **,** The comma is used to 'chain,' multiple filter queries together. This has the effect of creating clear 'sections,' to your filter outputs **#** This is not an operator per se, but is the means of indicating a project i.e., #Work **##** By extension, the double hashtag is used to show all tasks in a parent project **AND** any sub-projects that may be listed within it i.e., ##Work *** ## General examples **(today | overdue) & #Work** Shows all tasks that are overdue or due today that are in the "Work" project. Open this filter first thing when you get to work to get a clear overview of what you need to get done **7 days & @waiting** Shows all tasks that are due in the next 7 days and are labelled **@waiting**. Good for proactively identifying roadblocks in your week **created before: -365 days** Shows all tasks created more than 365 days ago. Use this filter to find the tasks that have been gathering dust on your to-do list **assigned by: me** Shows all tasks you assigned to others. Handy for following up on delegated tasks **assigned to: Leighton Price** Shows all tasks assigned to Leighton Price. A quick way to see what Leighton's working on **added by: me** Shows all tasks created by you **added by: Leighton Price** Shows all tasks created by Leighton Price **shared & !assigned** Shows all tasks in shared projects that haven't been assigned to anyone. Another good filter to make sure every task is accounted for **subtask** Shows all sub-tasks **!subtask** Shows all parent tasks ***Note*** - It's not possible to filter for parent tasks that have subtasks associated with them. So you can isolate only subtasks with **subtask** or tasks that are not subtasks with **!subtask**. There is currently no other logic over and above that **view all** Shows all tasks. An easy way to get a list of all tasks in every project **due before: +8 hours & !overdue** Shows all tasks due within the next 8 hours, but excludes all tasks that are overdue. A handy filter to see what's planned for the next 8 hours *** ## Filtering based on due dates **Jan 3** Shows all tasks due on that date. For example: *May 5*, *05/16*, *August 8, tomorrow, tod, in 10 days, Sunday, Feb 10 2020* **due before: May 5** Shows all tasks that are due before that date. Examples: *due before: August 10*, *due before: 08/13, due before: 6pm* **due before: next week** Shows all tasks that are due this week, up to and including Sunday **due before: sat** Shows all tasks with a due date in the current working week **due after: sunday & due before: next monday** Shows all tasks due next week ***Note*** - This comes with a rather big caveat in that it will work on every day of the week ***EXCEPT if it happens to be Monday!*** This illustrates how convoluted creating filters in Todoist can sometimes be. Hopefully, Todoist will introduce a simple **due: next week** type of instruction that works consistently. I'm not aware of any other way of achieving this at present. To further confuse things, **due: next week** will be accepted in a filter, but it will just return tasks due for the single day you have configured for "Week start" in settings. **due before: first day** Will return all tasks due within the **current** calendar month **due after: June 20** Shows all tasks that are due after that date. Examples: *due after: May 16*, due after*: 09/23, **due after: in 3 days* **due: yesterday, today** This will give you a filter view, restricting those tasks appearing in the overdue "section," to just those that were due yesterday but you didn't complete, along with today's task listed below. **no date** Shows all tasks that have no due date associated with them. Alternative: *no due date* **!no date** All tasks with a due date assigned to them **!no date & !no time** All tasks with a due date ***AND*** time assigned to them **overdue** Shows all tasks that are overdue. Alternatives: *over due*, *od* **overdue & !no time, today & !no time** Focus on all tasks that are overdue and have had a specific time assigned to them along with all tasks due today, but only with times **5 days** Shows all tasks due within the next 5 days. Alternative: *next 5 days* **recurring** Shows all tasks that have a recurring due date **!recurring** All tasks that either have a non-recurring due date or no due date at all assigned to them **no time & !recurring** All tasks with a due date (no time assigned) and are not recurring **due before: +4 hours** Shows all tasks due within the next four hours and all overdue tasks ***Quick tip*** You can write the date in any of these ways: - Specific date: 10/5/2017, Oct 5th 2017 - Specific date and time: 10/5/2017 5pm, Oct 5th 5pm - Relative date: today, tomorrow, yesterday, 3 days (due in the next 3 days), -3 days (due in the past 3 days) - Days of the week: Monday, Tuesday, Sunday *** ## Filtering based on priority level **p1** Shows all tasks with the priority level 1 **No priority** Shows all tasks with no priority level (a.k.a. p4) **!No priority** Shows all tasks with a priority level of either p1, p2 or p3 assigned **@email** Shows all tasks with the label **@email** **no labels** Shows all tasks that don't have any labels **!no labels** Shows all tasks with labels assigned --- ## Filtering based on project, sub-project and section **##Work** Shows all the tasks in the #Work project and its sub-projects **##School & !#Science** Shows all the tasks in the #School project and its sub-projects but excludes the #Science project **/Meetings** Shows all tasks belonging to sections titled "Meetings", across all projects **!/*** All tasks in your Todoist account that are not assigned to sections **!/* & !#Inbox** As above, but don't include your Inbox in the results, giving you sectionless tasks only in the projects you've created *** ## Filtering based on when a task was created **created: today** This is handy for quickly checking on everything you've added to Todoist today that's not yet completed. If you add this filter to your [favorites](https://todoist.com/help/articles/add-a-project,-label-or-filter-to-favorites) it's easy to get to for a quick review **created: Jan 3** Shows all tasks created on Jan 3 **created before: -365 days** Shows all tasks created more than 365 days ago **created after: -365 days** Shows all tasks created within the last 365 days *** ## Filtering based on keyword(s) **search: email** Shows all tasks that contain the word email **search: research** Shows all tasks that contain the word research **search: http** Find all tasks that contain web links **!search:*** If you use [uncompletable tasks](https://todoist.com/help/articles/how-to-create-an-uncompletable-task) and use asterisks exclusively for this purpose in your task details, it's possible to discount these "information only" tasks from your filter results. For example, **#Work & !search:*** will give you only completable tasks in your Work project. You can use double underscores instead of asterisks when [Markdown formatting for bold](https://todoist.com/help/articles/text-formatting) to avoid the search returning these tasks too. **search: http & search:*** List all uncompletable tasks that contain web links. Handy for any identifying any reference links you may have added at the top of your projects *** ## Combining queries to create even more powerful filters **Today & @email** Shows all tasks that are due today and are also labeled **@email** (& can be read as "and") **@work | @office** Shows all tasks that are labelled either **@work** or **@office** ( | can be read as "or") **(today | overdue) & #Work** Shows all tasks that are either due today or are overdue and are also in the "Work" project (enclose parts of your query with "()" to create more complex filters) **!assigned** Shows all tasks that are not assigned to anyone (! can be read as "not") **Today & !#Work** Shows all tasks that are due today but excludes tasks in the "Work" project **#Homework & tomorrow & !@science** Shows all tasks that are due tomorrow in the "Homework" project but excludes tasks with the **@science** label *** ## Using wildcards in filters To filter for several items with similar characters, you can use a wildcard by placing an asterisk "*" in your search term. For example, the filter query *@*ball* will pull up a list of all tasks that have a label which ends with the word "ball", like *@baseball* and *@football* **@home*** Shows all tasks with any label that starts with "home". For example, *@homework* and *@home* **assigned to: m* smith** Shows all tasks assigned to anyone whose first name starts with an M and last name is Smith **#*Work** Shows all tasks from projects which name ends with "work". For example, *#Artwork*, *#Network, and #Work* **/Work*** Shows all tasks from sections that have the word "Work" in the title. For example, */Work Meetings*, */Work Admin*, and */Work Calls* *** ## Run multiple filters at the same time Todoist filters also let you combine searches to create multiple task lists at once. To combine 2 or more searches into one filter, separate each with a comma: “,” For example, p1 & overdue , p4 & today will show two task lists, one for the query p1 & overdue and another for p4 & today *** **[Go to www.leightonprice.com](https://www.leightonprice.com)** Ambassador