Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Task Token Reference

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.

HTML · Markdown

In a note — recording a fact

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.

@sarah due:overdue #work is:open

HTML · Markdown (limited)

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.

TokenPropertyNotes
@nameAssigned toName 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:@nameAssigned byWho handed you this. Singular — “who gave me this” has one answer, so a second one is ignored.
due:@@dateDuedue:@@2026-09-01 for a day, due:@@2026-09-01T17:00 for a time. First one wins.
start:@@dateStartSame shape as due:. Nothing enforces start ≤ due; they’re two independent facts.
#tagTagThe ordinary hashtag you already have everywhere else — it just also filters here.
(nothing)CreatedWritten automatically, invisible in the text, never typed. HTML only: Markdown can’t carry it, so .md tasks have none.

HTML · Markdown (limited)

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.

WrittenResult
ask @sarah.Assignee sarah — the full stop stays punctuation.
mail user@example.comNothing. A token must start a word.
the @@decoratorNothing. @@ is the date sigil, never a name.
met @sarah @@2026-08-20Assignee only. A bare date is a mention, not an implicit due date.
`@sarah` in codeNothing. Code spans, fences and link text are all skipped.
due:@@soonNothing — it isn’t a date. Your text stays exactly as written.

HTML · Markdown

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.

FilterMatches
@sarahAssigned to sarah — to:sarah, assignee:sarah and assigned:sarah are the same
from:@omarAssigned by omar — by:omar is the same
with:sarahEither field — sarah is involved somehow. person:sarah is the same
#workCarries that tag
is:unassignedNobody named in an @. is:assigned is the inverse
no:assigneeSame 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.

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.

You wantWhereWhat to type
Give a task to Sarah, due next MondayNote@sarah due: then pick Next Monday
Record that Omar asked you for itNotefrom:@omar
Everything you owe Sarah that has slippedPanel@sarah is:overdue
Everything Omar gave you, still openPanelfrom:@omar is:open
This week’s work, oldest deadline firstPaneldue:week + sort by Due date
Tasks nobody ownsPanelis:unassigned
Things sitting around since before JulyPanelcreated:<2026-07-01
Work that hasn’t begun yetPanelstart:upcoming
A filter you’ll want every morningPanelSet it up, then bookmark → name it

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.