How Todoist Filter works
What Is a Todoist Filter?
A filter is a custom search expression you enter into the Filter input field in your action.
It tells Todoist which tasks you want the action to process (like add a tag, update priority, etc.).
What Works in This Action Step
You can use any filter string that is supported by the Todoist REST API, including:
Logic Operators You Can Use:
Symbol | Meaning | Example |
---|---|---|
& | AND | today & @email |
` | ` | OR |
! | NOT | !subtask |
() | Grouping | `(today |
✅ These work exactly like they do in the Todoist UI.
What Doesn't Work in This Action
Not Supported | Why |
---|---|
, comma-separated filters like p1 & overdue, today | Not supported by Todoist REST API. Use only one filter at a time. |
Completed task filters | REST API only returns active (incomplete) tasks. |
Combining filter with project_id or label in the same request | The filter parameter takes priority — other parameters will be ignored. |
Examples You Can Use
📅 Date & Time
Goal | Filter |
---|---|
Tasks due today | today |
Tasks overdue | overdue |
Due in next 7 days | 7 days |
No due date | no date |
Due today after 2pm | due after: today at 2pm |
🏷 Labels
Goal | Filter |
---|---|
Tasks with label “email” | |
Without any labels | no labels |
Labels starting with "home" | @home* |
With multiple labels | @email & @followup |
⚡ Priority
Goal | Filter |
---|---|
Priority 1 tasks | p1 |
Priority 2 or 3 | `p2 |
Tasks without priority | p4 |
🧩 Subtasks
Goal | Filter |
---|---|
Show only subtasks | subtask |
Show only parent tasks | !subtask |
📁 Projects & Sections
Goal | Filter |
---|---|
Tasks in “Work” | #Work |
Tasks in sub-projects of “School” | ##School |
Tasks not in any section | !/* |
Tasks in “Work” & section “Calls” | #Work & /Calls |
👥 Assigned Tasks
Goal | Filter |
---|---|
Assigned to me | assigned to: me |
Assigned to others | assigned to: others |
Assigned to Steve | assigned to: Steve |
🔍 Keyword Search
Goal | Filter |
---|---|
Tasks containing “Meeting” | search: Meeting |
Tasks with links | search: http |
🧠 Advanced Examples That Work
Filter | Explanation |
---|---|
today & @email | Tasks due today AND labeled @email |
`(today | overdue) & p1` |
#Work & !@Subtask | Tasks in Work project without @Subtask label |
@email & !subtask | Email tasks that are not subtasks |
assigned to: Steve & #Work & today | Steve's work tasks due today |
❗ Unsupported Example (Will Not Work)
Filter | Why it fails |
---|---|
p1 & overdue, p3 & today | Comma-separated filters not supported by Todoist API |
overdue, today | Can't run multiple filters in one request |
p1, p2, p3 | Use `p1 |
Pro Tips
• Use only one filter per action run
• Use () for combining logic:
✅ (today | overdue) & #Work
• Use wildcards:
✅ @home* → matches @homeoffice, @homework
• You can use natural language for due dates:
✅ due before: Friday, due after: next week
Final Reminder
✅ This field supports all filters you would use in Todoist UI, except comma-separated multiple filters.
🚫 Do not use commas in filters — use logical operators like &, |, ! instead.