Filters are the heart of a view: they determine which tasks appear. Each filter rule checks a field with an operator against a value—you can combine as many rules as you like.
How a Filter Rule Is Built
Field Operator Value
──────────── ────────── ────────────
Due Date on or before @today+3d
Status is Active
Overdue is Yes
Read each line as a sentence: “Due date on or before three days from
today.” You choose the field, operator, and value in the filter editor
(Advanced mode). In the view file, the same rules use
technical names, such as due_date · lte ·
@today+3d; the tables below list both.
Field Reference
The field menu is split into three groups: Fields, Virtual Fields, and—if you’ve created any—Custom Attributes.
Fields
| Field | Key | Meaning |
|---|---|---|
| Title | title |
The task’s title |
| Status | status |
Active, Waiting, On Hold, Completed, Dropped, Someday, as well as For Review and Question (handback from the AI agent) |
| Assigned To | assigned_to |
Human or AI |
| Delegation | delegation |
Do, Draft, Ask |
| Spec | spec_status |
Draft or Ready for AI Agent |
| Handback Reply | handback_reply |
Your latest response to a handback: Accepted, Changes Requested, Replied, Taken Over, Dropped |
| Due Date | due_date |
Due date |
| Do Date | do_date |
The day you want to work on the task |
| Milestone | milestone |
The task’s milestone |
| Waiting For | waiting_for |
Free text: who or what the task is waiting for |
| Tags | tags |
Effective tags—including tags inherited from the project and milestone (see below) |
| Created By / Completed By | created_by / completed_by |
Human or AI |
| Completed On | completed_date |
Completion date |
| Created / Modified | created / modified |
The file’s timestamps |
| Order | sequence_order |
The task’s position in its list |
Virtual Fields (Calculated)
These fields aren’t stored in the file but are calculated from other
fields. Their keys start with @.
| Field | Key | Meaning |
|---|---|---|
| Available | @is_available |
The task is active, not deferred, and the project is active; in sequential projects, only the first active task |
| Next Action (Project) | @is_project_next |
The project’s next action, across milestones (see Only Next Action) |
| Next Action (Milestone) | @is_milestone_next |
The next action per milestone |
| Overdue | @is_overdue |
The task is active and its due date has passed—with a time, from that minute on; otherwise, from the following day |
| Due Today | @is_due_today |
The due date is today |
| Due This Week | @is_due_this_week |
The due date is in the current week |
| Back from Agent | @is_handback |
The AI agent has handed the task back (for review or with a question) |
| Waiting | @is_waiting |
Status is Waiting |
| Recurring | @is_recurring |
The task repeats |
| In Inbox | @is_inbox |
The task is in the Inbox |
| Standalone Task | @is_single |
The task is in an area or folder without a project |
| Has Due Date / Has Do Date | @has_due_date / @has_do_date |
The date is set |
| Has Spec | @has_spec |
The task has a spec |
| Has Milestone | @has_milestone |
The task is in a milestone |
| Days Until Due | @days_until_due |
Days until the due date (negative = overdue, empty = no date) |
| Project / Milestone / Area / Folder | @project_title / @milestone_title /
@area_name / @folder_name |
Name of the respective location |
| Task Tags | @task_tags |
Only the tags set directly on the task |
Tags vs. Task Tags: The Tags field checks the effective tags (task + project + milestone) and also takes the tag hierarchy into account: A parent tag also finds all tasks with its child tags. If you want to check only the tags set directly on the task, use Task Tags.
In the view file, the view engine also understands
project, area, folder,
defer_date (defer date), and
@effective_tags—useful when an AI agent writes views
directly.
Custom Attributes
If you’ve defined custom attributes in Settings, they appear in the
field menu under Custom Attributes. In the view YAML
they’re called attributes.key—for example,
attributes.client (operator is, value
ACME) or attributes.acceptance with a date
expression such as @today. Sorting and grouping offer the
attributes as well.
Operators
Which operators are offered depends on the field. Every field also offers is empty and is not empty (without a value).
| Field kind | Operators in the editor | Key |
|---|---|---|
| Text | is, is not, contains, doesn’t contain (not case-sensitive) | eq, neq, contains,
not_contains |
| Date | is, is not, after, on or after, before, on or before | eq, neq, gt,
gte, lt, lte |
| Number | is, is not, greater than, greater than or equal to, less than, less than or equal to | eq, neq, gt,
gte, lt, lte |
| Choice (Status, Assigned To, and so on) | is, is not | eq, neq |
| Yes/No (for example, Overdue) | is with the value Yes or No | eq |
| Tags, Task Tags | contains any of, contains all, contains none of | any_of, all_of, none_of |
| Empty check | is empty, is not empty | is_empty, is_not_empty |
In the view file, starts_with (starts with, not
case-sensitive) is also available.
Date Expressions
As the value in date filters, you can type a dynamic expression
instead of a fixed date (2026-03-01). The expression is
recalculated every time the view runs.
Single Points in Time
| Expression | Meaning |
|---|---|
@today |
Today |
@tomorrow |
Tomorrow |
@yesterday |
Yesterday |
@today+Nd / @today-Nd |
Today plus or minus N days (for example,
@today+3d) |
@today+Nw / @today-Nw |
Today plus or minus N weeks |
@today+Nm / @today-Nm |
Today plus or minus N months |
Date Ranges
| Expression | Meaning |
|---|---|
@this_week |
The current week |
@next_week |
Next week |
@this_month |
The current calendar month |
@next_7d |
Today through 7 days from now |
@next_30d |
Today through 30 days from now |
@past_7d |
7 days ago through today |
You use date ranges with the operator is—the app then checks whether the date falls within the range (including start and end). When a week starts depends on your device’s region (in the US, on Sunday).
Example—tasks due in the next three days: Field
Due Date, operator on or before, value
@today+3d. This shows you everything due in the next three
days—including overdue tasks.
Combining Rules
Each filter group starts with a choice of how its rules are combined:
| Combination | Key | Meaning |
|---|---|---|
| All conditions are met | all |
AND—all rules must apply |
| At least one condition is met | any |
OR—at least one rule must apply |
| None of the conditions are met | none |
NOT—none of the rules may apply |
With Rule, you add a condition; with Subgroup, a nested group—for example, an OR group inside an AND group.
Example—important tasks for today: All conditions are met: - Available is Yes - Subgroup—at least one condition is met: - Due Today is Yes - Overdue is Yes
Result: Only available tasks that are due today or already overdue.
Simple Mode vs. Advanced Mode
Simple—Under Quick Setup, the buttons Today, Overdue, Waiting, and Active set the filter, grouping, and sorting in one step. Below that, you choose individually:
- Tasks: All, Active, Due Today, Overdue, Waiting, Inbox
- Grouping: None, Project, Area, Folder, Status
- Sorting: Due Date, Do Date (each ascending), Created, Modified (each descending), or Manual
Advanced—You build the filter tree yourself and split the view into sections: named sections with their own filter, sorting, and grouping. To add another, use Add Section. Each section also has:
| Option | Effect |
|---|---|
| Icon | Symbol next to the section name |
| Max Tasks per Project | Shows at most this many tasks per project |
| Hide when empty | The section disappears as long as it has no matches |
| Collapsed by default | The section starts collapsed |
If a section’s filter checks exactly one tag, you can drag tasks between such sections and thereby retag them (see Reorganizing with Drag and Drop).
Sections and Board: Board, Multi-View, and Dashboard don’t use sections or the advanced filter; when you switch to one of these layouts, the sections are removed.