Using the Obsidian Tasks plugin comes down to four things: install and configure it, write a task with the right syntax, pull your tasks into a query, and complete them so recurrence and dates behave. Get those four right and you have a working task system in about ten minutes, without touching anything advanced. This walkthrough covers each step in order, with the small configuration choices that trip people up, and it stays deliberately minimal, because the most common mistake with the Tasks plugin is building an elaborate setup you stop maintaining a week later.
The Tasks plugin is the foundation almost every Obsidian task setup starts from, and it fits inside the broader Obsidian task management stack. Here is how to actually drive it.
Step 1: install and make one configuration choice
Install the plugin from Obsidian’s community plugins browser, search for Tasks, install and enable it. That part is unremarkable. The one real decision is the global filter.
By default, the Tasks plugin treats every Markdown checkbox in your vault as a task. That is fine if your checkboxes are all tasks, but if you also use checklists for things like shopping lists or reading progress, you will want to separate them. In the plugin settings you can set a global filter, commonly #task, so that only lines carrying that tag are treated as tasks. The plugin documentation notes its own examples assume a #task filter that is not enabled by default. Decide this now: no filter is simpler, a filter is cleaner if your vault mixes tasks and other checklists. Changing it later means editing existing tasks, so it is worth a moment’s thought up front.
Step 2: write a task with dates and priority
A task is a normal checkbox line, and you enrich it with the plugin’s signifiers. The plain version is just - [ ] call the accountant. To make it a real task, add a due date and, if useful, a priority.
Rather than memorising the emoji, use the command palette: run “Tasks: Create or edit task” on any checkbox line and a dialog lets you set due, scheduled and start dates, priority, and recurrence with plain fields, then writes the correct syntax for you. This is the single most useful habit for a newcomer, because it removes the need to remember signifiers. Under the hood a dated, high-priority task looks like a checkbox followed by a priority marker and a due date, but you rarely type that by hand.
Priority has six levels: highest, high, medium, a default normal with no marker, low, and lowest, as covered in the priority reference. Use them sparingly. If everything is high, nothing is; reserve the top markers for the genuine few.
Step 3: pull your tasks into a query
This is where the plugin earns its keep. Anywhere in your vault, create a code block of type tasks and give it filter and sort instructions, and the plugin gathers every matching task from across the vault into a live list. A first, genuinely useful query shows what is due: filter to tasks that are not done and due on or before today, group them by their note, and sort by priority within each group.
You do not need to master the query language to start. Two or three lines, not done, due before tomorrow, sort by priority, cover the everyday “what is due” view, and you expand from there only when a real need appears. Put this query in a note you open each morning, your daily note is the natural home, and you have a working today list. The queries update themselves as you add and complete tasks, so the note never goes stale.
Step 4: complete tasks the right way
Completing a task is clicking its checkbox in any view, and the plugin writes the change back to the source note, adding a done date and, for recurring tasks, generating the next occurrence. This is the part where the safe habit matters most.
If you also run Dataview and view tasks through a Dataview query, do not complete recurring tasks there. Dataview does not understand recurrence, so ticking a recurring task off in a Dataview view records a done date without creating the next instance, and the recurrence silently stops. Complete recurring tasks from a Tasks query or from the source note. The full picture of how the two plugins interact is in Obsidian Tasks vs Dataview; for now, the rule is enough: recurring completions belong to Tasks.
Three queries worth knowing
Once the single due-today query feels natural, three small variations cover almost everything most people need, and none requires deep query-language knowledge. A “due today or overdue” query, not done and due on or before today, is your morning list. A “this week” query, not done and due within the next seven days, gives a short horizon for planning. And a per-note query with no date filter, showing every open task in the current file, is useful at the top of a project note so the project’s own tasks sit with its material. Group by note and sort by priority in each, and you have covered the everyday cases. The community Obsidian forum is full of more elaborate queries, but reaching for them before you need them is the fast path to an abandoned setup; add complexity only when a simple query visibly falls short.
| Query | Shows | Where to put it |
|---|---|---|
| not done, due before tomorrow | today and overdue | your daily note |
| not done, due in next 7 days | the week ahead | a weekly planning note |
| not done (no date filter) | every open task in this file | top of a project note |
A minimal setup that works
Putting the steps together, a complete beginner setup is small on purpose. Enable the plugin, decide on a global filter, and in your daily note keep one query that shows tasks due today or overdue, grouped by note and sorted by priority. Write tasks with the create-or-edit command so the syntax is always correct, use priority markers only for the genuine few, and complete tasks from a Tasks view so dates and recurrence behave. That is the whole thing, and for most people it is enough for a long time before any additional plugin or query is worth adding.
Resist the urge to build more before you feel a need. The pattern that fails is a weekend spent assembling a dozen queries and a tag taxonomy you never use; the pattern that lasts is one query you read every morning, extended only when something specific is missing.
Understanding what a query returns
It helps to know what is happening when a query runs, because it removes the sense that the plugin is doing something magic you cannot predict. A tasks code block is not a saved search or a separate database; every time the note renders, the plugin scans your vault for checkbox lines matching the filter and builds the list fresh. That is why the list is always current and why completing a task anywhere updates it everywhere: there is no stored copy to fall out of sync. It also explains the one performance note worth having, that on a very large vault a page stuffed with many complex queries can take a moment to render, since each one re-scans. For the single morning query this is imperceptible, and the self-updating behaviour is exactly what makes a daily-note query trustworthy: you never maintain it, you just read it.
The four steps at a glance
| Step | What you do | Why it matters |
|---|---|---|
| Install and configure | enable the plugin, decide on a global filter | keeps checklists separate from real tasks |
| Write a task | use the create-or-edit command | writes correct dates and priority syntax |
| Query your tasks | one due-today block in the daily note | one live list you read each morning |
| Complete safely | tick it off in a Tasks view | recurrence generates the next instance |
Common mistakes to avoid
A few missteps account for most of the frustration people report. Marking too many tasks high priority defeats the purpose, since the sort then groups almost everything at the top; keep the highest markers rare. Skipping the global-filter decision means shopping-list checkboxes show up among project tasks later, which is annoying to untangle after the fact. Completing recurring tasks in Dataview breaks them, as covered above. And over-building queries before you have enough tasks to justify them produces a system that looks impressive and gets abandoned. Each of these is easy to avoid if you know it is coming, which is most of the value of a walkthrough.
When a query stops being enough
There is a natural ceiling to this setup, and it is useful to recognise it rather than fight it. As your vault grows, your “due today” query starts returning more tasks than you can meaningfully rank by eye, and the morning shifts from reading a short list to re-deciding a long one. The Tasks plugin has done its job at that point, it surfaced the right candidates, but sorting by due date or priority is not the same as deciding which of forty due tasks actually matters most given everything around it. The stakes are not trivial: with attention already fragmenting, the American Psychological Association puts the cost of switching between tasks at up to 40% of productive time, and a morning spent re-reading a long list to pick a start is that switching, paid up front. That deciding step is where a ranking layer, weighing context the plugin does not collect, becomes useful on top of the setup you already have.
Key takeaways: using the Tasks plugin well
Keep it minimal and get four things right. Install the plugin and decide your global filter up front. Write tasks with the create-or-edit command so the syntax is always correct, and use the six priority levels sparingly. Put one query, due today or overdue, sorted by priority, in the note you open each morning, and extend your queries only when you feel a real gap. Complete tasks from a Tasks view, and never complete recurring tasks in Dataview. Do that and you have a durable task system in minutes; add more only when a specific need makes the extra machinery worth its upkeep.
Quick answers
How do I set up the Obsidian Tasks plugin?
Install it from the community plugins browser and enable it, then make one decision: whether to set a global filter like #task so only tagged lines count as tasks, which keeps checklists separate. After that, write a task with the “Tasks: Create or edit task” command so the dates and priority syntax are correct, add one query in your daily note showing tasks due today or overdue, and you have a working setup. Keep it minimal to start.
How do I write a task with a due date?
The easiest way is the command palette. On any checkbox line, run “Tasks: Create or edit task” and a dialog lets you set due, scheduled and start dates, priority and recurrence with plain fields, then writes the correct emoji syntax for you. This avoids memorising signifiers. You can type the syntax by hand once you know it, but the create-or-edit command is the reliable habit for beginners and keeps every task well-formed.
How do I show all my tasks in one place?
Create a code block of type tasks anywhere in your vault and give it filter and sort lines. A useful first query shows tasks that are not done and due on or before today, grouped by note and sorted by priority. The plugin gathers every matching task across the vault into a live list that updates as you add and complete tasks. Put it in your daily note and you have a today view you read each morning.
Why did my recurring task stop repeating?
Almost always because you completed it from a Dataview view rather than from the Tasks plugin. Dataview does not understand recurrence, so it records a done date without generating the next occurrence, and the repetition silently ends. Complete recurring tasks from a Tasks query or from the source note, where the plugin creates the next instance. If a recurrence has already broken, reopen the task and complete it properly to restart the cycle.
Do I need to learn the whole query language?
No. Two or three lines cover the everyday view: not done, due before tomorrow, and sort by priority. That gives you a working today list without touching the advanced syntax. The Tasks query language has a lot of depth for grouping, filtering and custom displays, but you should add it only when you hit a specific thing the simple query cannot show. Starting minimal and extending on demand is far more sustainable than learning it all up front.


