Filters
A Filter is a saved search over your Tasks, written in a small query language: a few terms, and a few operators to combine them.
Check a query
Type a Filter query below. The checker colors each term, says where the syntax goes wrong and how to fix it, and explains every part in words.
The syntax is valid. The Filter has 1 section.
In words Tasks that are due today, or overdue.
todayTasks due today|or: either side may matchoverdueTasks due before today
This checks syntax only; the API runs a Filter against your Tasks. The suggestions use the demo's Projects, Launch, Home, Garden, Reading list, and Labels, errands, waiting, deep work.
The checker runs the same parser the app uses to check a query. It checks syntax and nothing else. It does not run the query: matching Tasks is the API’s job, and this page has no Tasks to match against.
Terms
A term describes one thing about a Task. Terms are not case sensitive. A word that is no other term searches Task names.
Due date
| Write | Matches |
|---|---|
todayalso tod | Due today |
tomorrowalso tom | Due tomorrow |
yesterday | Due yesterday |
overduealso over due, od | Past due |
7 days | Due within 7 days |
no datealso no due date, nodate | No due date |
recurring | Has recurrence |
before: May 5 | Due before a date |
after: today | Due after a date |
before: and after: take a date written in words or digits.
| Write | Read as |
|---|---|
today | 2026-10-14 (Wed) |
tomorrow | 2026-10-15 (Thu) |
yesterday | 2026-10-13 (Tue) |
in 3 days | 2026-10-17 (Sat) |
friday | 2026-10-16 (Fri) |
2026-11-02 | 2026-11-02 (Mon) |
oct 28 | 2026-10-28 (Wed) |
28 oct | 2026-10-28 (Wed) |
A weekday means its next turn after today. A date that cannot be read matches nothing, and the Filter editor warns you about it.
Priority
| Write | Matches |
|---|---|
p1 … p4 | Priority 1 (urgent) to 4 (none) |
no priority | Same as p4 |
Projects and Labels
| Write | Matches |
|---|---|
#Launch | In a Project whose name contains the text |
#"Reading list" | Quote a name that has spaces |
@waiting | Has the Label, spelled exactly |
@"deep work" | Quote a Label that has spaces |
no labelsalso no label | Unlabeled |
# matches a Project whose name contains the text, or whose ID is the text. @ matches a Label by its whole name, ignoring case.
Text
| Write | Matches |
|---|---|
search: invoice | Name contains text |
invoice | A bare word that is no other term searches Task names too |
Completion
| Write | Matches |
|---|---|
completedalso done | Completed Tasks only |
all | Active + completed Tasks |
A Filter shows only Tasks that are not completed. Add completed or all to a Filter section to see completed Tasks in it.
Combining terms
| Write | Matches |
|---|---|
p1 & today | And: both terms must match |
p1 | p2 | Or: either term may match |
!@waiting | Not: leaves out what follows |
(p1 | p2) & !#Home | Parentheses group terms |
today, overdue | A comma starts a new Filter section |
Terms written one after another with no operator mean &, so p1 #Launch is p1 & #Launch.
Operators bind in this order: ! first, then &, then |. Use parentheses when you want a different order. p1 | p2 & #Home means p1, or p2 in Home. (p1 | p2) & #Home means P1 or P2, in Home.
Filter sections
A comma at the top level, outside any parentheses, splits a Filter into Filter sections. Each section is its own group of results, and the Filter shows them one after another.
overdue, today, 7 days gives three groups. A Filter can have up to 10 sections. Every section follows the completion rule on its own.
An empty query matches every active Task.
Saving a Filter
Open the Command palette with ⌘K and run New Filter, or go to Filters & Labels with gl and add one there.
A Filter has a name, a color and a query. The query field suggests terms, Projects and Labels as you type, and the editor tells you how many Tasks match as you go. The Builder tab adds terms for you, and the Cheatsheet tab lists them.
Star a Filter to make it a Favorite, which pins it to the sidebar. Filters & Labels lists your Filters and Labels together, and each list can be reordered.