The View System

Understanding Filter Rules

Contents

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.