Filters
Filter tasks by due date, priority, labels, assignees, and more using Vikunja's query syntax.
Filters let you narrow down your task list so you only see what matters right now. Instead of scrolling through everything, you write a short query and Vikunja shows only the matching tasks.
Common examples#
Copy any of these into a filter field to try it out:
done = false | All undone tasks |
dueDate < now | Overdue tasks |
dueDate > now && dueDate < now+7d | Tasks due in the next 7 days |
done = false && priority >= 3 | Undone tasks with high priority (3+) |
assignees in currentUser | Tasks assigned to you |
labels in urgent | Tasks with the “urgent” label |
labels in urgent, logistics | Tasks labeled “urgent” or “logistics” |
done = false && dueDate < now | Undone overdue tasks |
You can combine any of these patterns. For example, undone high-priority tasks due this week:
done = false && priority >= 3 && dueDate > now && dueDate < now+7d
Where to use filters#
- Views: Add a filter to any view so it only shows matching tasks.
- Saved filters: Create a reusable filter that appears in your sidebar and works across all your projects.
- Dashboard: Set a saved filter to control which tasks appear on your home screen.
“Include Tasks which don’t have a value set” is on by default. A filter like assignees in sarah will also return tasks with no assignee. Disable this toggle in the filter settings if you only want tasks that have a value.
How to write a filter#
A filter query has three parts: a field, an operator, and a value.
priority >= 3
priorityis the field (what you are checking)>=is the operator (how to compare)3is the value (what to compare against)
To combine conditions, use && (and) or || (or):
done = false && priority >= 3
Use parentheses to group conditions:
(priority = 1 || priority = 2) && dueDate <= now
The filter editor offers autocomplete for field names, label names, usernames, and project names as you type.
Fields#
done | Whether the task is completed (true or false) |
priority | Priority level (1 to 5) |
percentDone | Completion percentage (0 to 100) |
dueDate | The due date |
startDate | The start date |
endDate | The end date |
doneAt | When the task was completed |
assignees | The assignees |
labels | The labels on the task |
project | The project (only in saved filters) |
reminders | The reminders set on the task |
created | When the task was created |
updated | When the task was last updated |
Strings with spaces or special characters must be wrapped in quotes: "2024-03-11", "waiting on others".
Operators#
= | Equal to |
!= | Not equal to |
> | Greater than |
>= | Greater than or equal to |
< | Less than |
<= | Less than or equal to |
like | Matches a pattern (use % as wildcard) |
in | Matches any value in a comma-separated list |
not in | Does not match any value in a comma-separated list |
Relative dates#
Instead of typing a fixed date, use now so your filter stays current automatically.
Add or subtract time from now using units like d (days), w (weeks), or M (months):
now | Right now |
now+1d | Tomorrow |
now-1d | Yesterday |
now+7d | One week from now |
now+1M | One month from now |
Use /d to round down to the start of the day, which is useful for “today” or “this week” filters:
now/d | Start of today |
now+7d/d | Start of the day, 7 days from now |
now | Right now (Oct 30, 2024, 14:26:12) |
now+24h | In 24h (Oct 31, 2024, 14:26:12) |
now/d | Today at 00:00 (Oct 30, 2024, 00:00:00) |
now/w | The beginning of this week at 00:00 (Oct 27, 2024, 00:00:00) |
now/w+1w | The end of this week (Nov 3, 2024, 00:00:00) |
now+30d | In 30 days (Nov 29, 2024, 00:00:00) |
Oct 30, 2024, 14:26:12||+1M/d | Oct 30, 2024, 14:26:12 plus one month at 00:00 of that day (Nov 30, 2024, 00:00:00) |
All time units#
s | Seconds |
m | Minutes |
h | Hours |
d | Days |
w | Weeks |
M | Months |
y | Years |
API reference#
If you use filters through the Vikunja API rather than the web UI, see the Filter API Reference for field names, query parameters, and other differences.