The filter language
Filters are queries over your tasks. The grammar is Todoist's, so its docs and your habits carry over. Every word works in English and in Danish, whatever language your app is in.
The basics
A filter is made of words joined by operators. Words are not case sensitive, and extra spaces do not matter.
| Syntax | Meaning |
|---|---|
& | Both sides must match |
| | Either side matches |
! | Turns the next part around |
( ) | Groups a part, so it is worked out first |
, | Splits the results into sections, one per part |
Without parentheses, ! binds tightest, then &, then |. So today | tomorrow & p1 means today | (tomorrow & p1).
Words
Both columns always work. Your app's language only decides which ones the app suggests.
| English | Danish | Matches tasks that |
|---|---|---|
today | i dag | are due today |
tomorrow | i morgen | are due tomorrow |
yesterday | i går | were due yesterday |
overdue | forfaldneforsinket | are due before today, or today at a time that has passed |
N daysnext N days | N dagenæste N dage | are due from today through the next N days, so “7 days” is today and the 6 days after |
no date | ingen dato | have no due date |
no time | ingen tid | have a due date without a time |
recurring | gentagne | repeat |
date:due: | dato: | are due on that date |
date before:due before: | dato før: | are due before that date (or time) |
date after:due after: | dato efter: | are due after that date (or time) |
created: | oprettet: | were created on that date |
created before: | oprettet før: | were created before that date |
created after: | oprettet efter: | were created after that date |
deadline before: | deadline før: | have a deadline before that date |
deadline after: | deadline efter: | have a deadline after that date |
no deadline | ingen deadline | have no deadline |
no priority | ingen prioritet | have priority 4 (no priority) |
subtask | underopgave | are subtasks |
assigned | tildelt | are assigned to someone |
no assignee | ikke tildelt | are assigned to no one |
assigned to: | tildelt til: | are assigned to that person: me, others, a name or an email |
assigned by: | tildelt af: | were assigned by that person (not supported yet) |
no labels | ingen etiketter | have no labels |
search: | søg: | contain that text in the title or description |
view allall | vis allealle | are open (every task) |
Priorities
p1, p2, p3 and p4 match tasks with that priority. p1 is the most urgent; p4 is the same as no priority.
Projects, sections, labels and people
| Syntax | Meaning |
|---|---|
#Work | Tasks in that project |
##Work | Tasks in that project and every project inside it |
/Meetings | Tasks in a section with that name, in any project |
@call | Tasks with that label |
#Client* | A star stands for any run of characters, anywhere in a name |
Names match the whole name, not part of it, and ignore case. Names may contain spaces. #Inbox and #Indbakke always mean your Inbox, whatever it is called.
Dates in filters
The words after date:, due before:, due after:, created and deadline take a date. These always work:
2026-10-202026-10-20 14:00a date, with or without a time+3 days-2 daysin 3 days3 days agorelative days, forwards and backtodaytomorrowyesterdaynext weektoday, tomorrow, yesterday and next week (the start of next week)- Anything else goes through the same date parser as quick add, so “next friday” and “på fredag” work too.
- before and after are strict. When both sides have a time, the time counts too.
- A date nobody understands matches nothing, so a typo shows an empty list rather than the wrong tasks.
Examples
| Filter | Shows |
|---|---|
today | overdue | Everything due today, and everything overdue |
##Work & p1 | Priority 1 tasks in Work or any project inside it |
@call & 7 days | Tasks labelled call that are due in the next 7 days |
no date & !#Inbox | Undated tasks outside the Inbox |
assigned to: me & overdue | Tasks assigned to you that are overdue |
#Work & /Meetings | Tasks in a Meetings section of the Work project |
overdue, today, 7 days & !today | Three sections: overdue, today, and the rest of the week |
search: email | Tasks that mention email |
deadline before: next week | Tasks with a deadline before next week |
no date & created before: -30 days | Undated tasks created more than 30 days ago |
(today | tomorrow) & p1 & !#Home | Today or tomorrow, and priority 1, outside the Home project |
#Client* | Tasks in any project whose name starts with Client |
How results look
- Only open tasks match. Completed and deleted tasks never show up, so !today will not list what you finished.
- Results are sorted by due date (undated last), then all-day before timed, then priority, then your own order.
- A comma at the top level makes one section per part, in the order you wrote them.
When a filter does not parse
The app says what went wrong and where. The usual suspects:
| Example | Meaning |
|---|---|
today tomorrow | Two words with nothing between them, like “today tomorrow”. Add & or |. |
(today | overdue | A parenthesis that is never closed, or closed once too often. |
(today, tomorrow) | A comma inside parentheses. Commas only split the whole filter. |
todays | A word the language does not know, like “todays” or “p5”. |
today & @ | A # / or @ with no name after it. |