Yggdrasil is self-hosting too, so labelling only the Docker page "Self-hosting" was misleading and put it above the Rune it was built for. Reorder "As a Rune" above the Docker page, rename that page "With Docker", and make the landing hero's primary call to action the Rune, with Docker beside it. Also drop the "the grammar is Todoist's" line from the filters page — the factual import/export interoperability keeps naming Todoist, but the positioning and soft comparisons do not. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Saved filters
A filter is a small expression describing a slice of your tasks. The grammar will feel familiar if you have used query-based filters in other task apps.
today & p1
#Firma & @regnskab
overdue | (today & assigned to: me)
7 days & !@venter
What you can write
| Term | Matches |
|---|---|
today, i dag |
Due today. |
tomorrow, i morgen |
Due tomorrow. |
overdue, forsinket |
Due before today. |
7 days, 14 dage, 2 weeks |
Due between now and then. A window, not a single day. |
no date, ingen dato |
No due date at all. |
p1 … p4 |
That priority. |
#Firma |
In that project. |
@regnskab |
Carrying that label. |
assigned to: me, tildelt: mig |
Assigned to you. |
assigned to: anders@example.dk |
Assigned to that person. |
assigned to: none |
Assigned to nobody. |
recurring, gentagen |
Repeats. |
completed, færdig |
Already done. |
subtask, underopgave |
Has a parent. |
2026-12-24 |
Due on that exact day. |
| anything else | Searched for in the title and description. |
Combining them
| Operator | Means |
|---|---|
& |
Both. |
| ` | or,` |
! |
Not. |
( ) |
Grouping. |
& binds tighter than |, so overdue | today & p1 means
overdue | (today & p1). Use brackets when you mean otherwise.
Some that are worth saving
today & p1 What has to happen today
overdue What slipped
7 days & !@venter The week, minus what you are blocked on
#Firma & assigned to: me Your part of a shared project
p1 & no date Important, unscheduled — usually a mistake
recurring & overdue Habits you have stopped doing
Why an expression is refused
A filter is compiled before it is saved. A filter that cannot run is worse than none: you would find out later, from a list that is empty for a reason nobody can see. If you get an error, it names the part it could not read.
!!! note "Labels are personal"
@regnskab matches your label of that name. Somebody else using the same
word on their own tasks is a different label, and your filter will not find it.