A todo’s properties live in its own text, so everything about a task is something you type. The catch — and the thing worth getting straight before anything else — is that the same prefixes mean two different things depending on where you type them.
This page is the lookup table. For how the feature works and what it’s for, see Todos & Task Properties.
Typed into a task line. Values are absolute: a date is frozen the moment you pick it, because a date that re-evaluates every morning is a lie in a document.
- [ ] send the deck @sarah from:@omar due:@@2026-09-01T17:00 #work
In the Todo panel — asking a question
Typed into the panel’s search box. Values are relative and comparative: buckets, ranges and states that only mean anything against today.
Four tokens you type, plus one the app writes for you. They’re read in HTML and Markdown alike (except the created time, which only HTML can store — and chips and menus are HTML-only), and only inside a task line — @sarah in an ordinary paragraph stays a name in a sentence.
Token
Property
Notes
@name
Assigned to
Name several if you like; all of them stick. Case is folded, so @Sarah and @sarah are one person. A token ends at a space, so two-word names join with a hyphen.
from:@name
Assigned by
Who handed you this. Singular — “who gave me this” has one answer, so a second one is ignored.
due:@@date
Due
due:@@2026-09-01 for a day, due:@@2026-09-01T17:00 for a time. First one wins.
start:@@date
Start
Same shape as due:. Nothing enforces start ≤ due; they’re two independent facts.
#tag
Tag
The ordinary hashtag you already have everywhere else — it just also filters here.
(nothing)
Created
Written automatically, invisible in the text, never typed. HTML only: Markdown can’t carry it, so .md tasks have none.
Type @ inside a task and a menu offers every name already used anywhere in your vault, plus whatever you’re typing as a new one. It opens after from:@ too.
Type due: or start: and you get Today · Tomorrow, then timed rows — This morning, This afternoon and This evening (each only while it’s still ahead) and Tomorrow morning — then In 3 days · Next week · Next Monday, plus Pick a date & time… for anything else. Type a 2026-09-01 yourself and it’s offered first, as typed. Whatever you choose, the absolute date is what lands in your note.
In a .md note the same menus open, with a shorter date list — Today · Tomorrow · In 3 days · Next week, plus whatever you type (due:@@friday 5pm still resolves) — and no date picker.
A bigger grammar, because this one asks questions. Plain words still just search, and anything the box doesn’t recognise stays plain text rather than quietly narrowing to something you didn’t mean.
Assigned to sarah — to:sarah, assignee:sarah and assigned:sarah are the same
from:@omar
Assigned by omar — by:omar is the same
with:sarah
Either field — sarah is involved somehow. person:sarah is the same
#work
Carries that tag
is:unassigned
Nobody named in an @. is:assigned is the inverse
no:assignee
Same as is:unassigned. has:assignee (or has:person) is is:assigned
The @ after a colon is optional: from:omar and from:@omar match the same tasks.
due:, start: and created: all take the same values.
Value
Means
Best for
overdue
Before today, and still open. late is the same
due:
today
Exactly today
any
week
Within 7 days — including what already slipped. A bare 7d is the same
due:start:
upcoming
Later than today; for start:, “not started yet”. later and future are the same
due:start:
started
Today or earlier
start:
last7last30older
Backward-looking windows
created:
none
Has no such date at all. never is the same
any
any
No date filter — all is the same
any
2026-09-01
That exact day
any
<today>=2026-09-01
Before / after — <<=>>=
any
+7d-3d
That many days from today. The + is optional: 5d is +5d
any
2026-09-01..2026-09-30
A range, both ends included
any
today, tomorrow and yesterday work anywhere a date does, so due:<tomorrow reads exactly as it looks.
7d on its own is the week window, not the single day a week out — write +7d for that day. Inside a comparison or a range it’s a day again, so the box’s placeholder example due:<7d means due before the day a week from today: everything due in the next six days, plus anything overdue.
Filter
Matches
is:openis:done
Unchecked / checked — overrides the Active·Done·All pills. is:active and is:todo mean is:open; is:checked means is:done
-is:open-is:done
The other state — -is:open is is:done, and the reverse
status:openstatus:done
Same as is:open and is:done. Any other status: value is the property filter under Properties
is:overdue
Short for due:overdue
has:duehas:starthas:createdhas:assignee
Has that property at all, whatever its value
no:dueno:startno:createdno:assignee
The inverse of has:
deck
Plain text, matched against the task’s words and its file path
"send the deck"
That exact phrase
-draft
Excludes — works on tokens too: -@sarah, -#work, -from:@omar
key:value matches a property stored on the todo — the ones in its properties window — against the whole value, ignoring case. These keys are recognised:
Key
Example
status
status:blocked
priority
priority:high
ownersourceestimatereview-by
estimate:2h
-priority:high excludes. Any other name:value isn’t a filter and stays plain text — that includes type:, section:, level:, language: and origin:, which describe a block’s place in a note rather than anything stored on a todo. A todo’s stored properties exist only in HTML notes, so a .md task never matches one of these.
Everything here is also clickable: the Filters fold-out builds the same query with buttons, and whatever is active shows as a row of chips under the box. Each chip’s ✕ removes exactly its own clause — including deleting just that token out of what you typed.
Tokens are stored as plain text inside the task itself, so they survive copy-paste, sync, and any other editor. Nothing here is a separate database — which is also why a property can never detach from the task it belongs to.