Skip to main content
TaskForge 3.0: your AI can read your tasks.

Obsidian task format cheat sheet

Obsidian has no built-in task syntax beyond the checkbox. Plugins add the rest, and they do it in four different ways. This page lists every field in each way, with the exact characters to type.

Checked against Obsidian Tasks 8.6, Task Genius 9.13, TaskNotes 4.14 and the Dataview documentation in October 2026. Each plugin's own docs are linked at the bottom and win if they disagree with this page.

Printing this page gives a compact reference without the site navigation.

Anatomy of a task line

A task is a list item with a checkbox. After the description come the fields, each one a symbol followed by a value. Obsidian Tasks reads the line from the right, so fields belong at the end, after the text, and any unrecognized text between two fields stops the reading at that point.

The same task in each inline format:

Obsidian Tasks emoji
- [ ] Pay rent ⏫ 🔁 every month ➕ 2026-01-02 ⏳ 2026-01-14 📅 2026-01-15
Dataview inline fields
- [ ] Pay rent  [priority:: high]  [repeat:: every month]  [created:: 2026-01-02]  [scheduled:: 2026-01-14]  [due:: 2026-01-15]
Task Genius (emoji and brackets can share a line)
- [ ] Pay rent #project/Home @bank ⏫ 📅 2026-01-15 09:00 [repeat:: every month]
TaskNotes (a whole file instead of a line)

A task file keeps the same facts in YAML frontmatter. See the task files section below.

Fields, side by side

Dates are always YYYY-MM-DD. The Dataview column uses square brackets. Obsidian Tasks and Dataview also read parentheses, (due:: 2026-01-15); Task Genius reads square brackets only. Task Genius reads the emoji and the bracket form, so its column only lists what it adds or spells differently.

Scroll sideways on a narrow screen.

Field Obsidian Tasks emoji Dataview style Task Genius
Due date The deadline. Obsidian Tasks also reads 📆 and 🗓 as due. 📅 2026-01-15 [due:: 2026-01-15] Same as the other two
Scheduled date The day you plan to work on it. Obsidian Tasks also reads ⌛. ⏳ 2026-01-14 [scheduled:: 2026-01-14] Same as the other two
Start date The task is not actionable before this day. 🛫 2026-01-10 [start:: 2026-01-10] Same as the other two
Created date Added when the task is created, if the plugin is set to do it. ➕ 2026-01-02 [created:: 2026-01-02] Same as the other two
Done date Added when you check the task. In Dataview style the key is completion, not done. ✅ 2026-01-15 [completion:: 2026-01-15] Same as the other two
Cancelled date Pairs with a cancelled status such as [-]. ❌ 2026-01-15 [cancelled:: 2026-01-15] Same as the other two
Priority Five levels, highest to lowest. Normal priority is written as nothing at all. 🔺 highest ⏫ high 🔼 medium 🔽 low ⏬ lowest [priority:: highest] [priority:: high] [priority:: medium] [priority:: low] [priority:: lowest] [#A]
Recurrence Obsidian Tasks and Dataview style use plain words that start with every. Task Genius reads those and iCalendar rules. See the recurrence section. 🔁 every week on Sunday when done [repeat:: every week on Sunday when done] [recurrence:: FREQ=WEEKLY;BYDAY=SU]
On completion What to do with a task when it is done. Obsidian Tasks supports keep and delete. 🏁 delete 🏁 keep [onCompletion:: delete] Same as the other two
Task ID Letters, digits, hyphen and underscore only. 🆔 abc123 [id:: abc123] Same as the other two
Depends on One or more task IDs, separated by commas. ⛔ abc123,def456 [dependsOn:: abc123,def456] Same as the other two
Time of day Obsidian Tasks has no time field. Task Genius reads a time after the date. Not available Not available 📅 2026-01-15 14:30 [due:: 2026-01-15 14:30]
Project and context Obsidian Tasks has no project or context field; use tags there. Task Genius reads these. Not available Not available #project/Website @phone [project:: Website] [context:: phone]

Order Obsidian Tasks writes fields in

When Obsidian Tasks writes a line it puts the ID, dependencies, priority, recurrence and on-completion first, then created, start, scheduled and due dates, then cancelled and done dates. Writing by hand in a different order works as long as every field sits at the end of the line.

Status characters

The character inside the brackets is the status. Only the space and x are universal. Everything else is a convention that a plugin, a theme or a status collection gives meaning to.

Character Usual meaning Who understands it
[ ] To do Everything, including Obsidian itself
[x] Done (x or X) Everything, including Obsidian itself
[/] In progress Task Genius by default, Obsidian Tasks as a custom status
[-] Cancelled or abandoned Task Genius by default, Obsidian Tasks as a custom status
[>] In progress (Task Genius) or forwarded Task Genius by default, a convention elsewhere
[<] Scheduled A convention from status collections and themes, not a Task Genius default; a custom status in Obsidian Tasks
[?] Planned Task Genius by default, often read as a question elsewhere
[!] Important A convention from status collections and themes, not a Task Genius default; a custom status in Obsidian Tasks

In Obsidian Tasks, a character you have not configured shows up as an Unknown status. Add it in the plugin's Custom Statuses settings, or load a ready-made status collection.

Task Genius treats only x and X as completed. TaskNotes files do not use checkbox characters at all; they have a status property, covered below.

Recurrence

Recurrence is where the formats differ most. The same weekly task, written four ways:

Obsidian Tasks emoji
- [ ] Water plants 🔁 every week on Sunday when done 📅 2026-01-18
Dataview style
- [ ] Water plants  [repeat:: every week on Sunday when done]  [due:: 2026-01-18]
Task Genius
- [ ] Water plants [recurrence:: FREQ=WEEKLY;BYDAY=SU] [due:: 2026-01-18]
TaskNotes file
recurrence: "DTSTART:20260118;FREQ=WEEKLY;BYDAY=SU"
recurrence_anchor: completion

Rules Obsidian Tasks understands

Every rule starts with the word every. Add when done to count from the day you finish rather than the original date.

every 3 days
every 10 days when done
every weekday
every week on Sunday
every week on Tuesday, Friday
every 2 weeks
every 3 weeks on Friday
every 2 months
every month on the 1st
every month on the last
every month on the last Friday
every month on the 2nd last Friday
every January on the 15th
every April and December on the 1st and 24th
every year

How completion behaves

  • Obsidian Tasks: checking a recurring task marks that line done and adds a new line, above it by default, with the dates moved forward. A setting puts the new line below instead.
  • Obsidian Tasks: a recurring task needs at least one of a due, scheduled or start date. Without one, the rule has nothing to move.
  • Obsidian Tasks: with a monthly rule, a date that does not exist (the 31st in April) moves earlier to the last valid day. A rule that names the 31st instead skips months without one.
  • Obsidian Tasks: the new line drops any ID and depends-on field, so a dependency does not block forever.
  • TaskNotes: the file stays one task. Completed and skipped dates go into complete_instances and skipped_instances, and the schedule advances.
  • Task Genius: the next date comes from an iCalendar rule or a simple phrase such as every 2 weeks. Richer Obsidian Tasks phrases, like every weekday or the last Friday of the month, are not read the same way, so test a few before you rely on them.
  • Keep recurring tasks out of daily notes. A recurring line in a daily note is copied into every day's note.

Task files: TaskNotes frontmatter

TaskNotes stores one task per note. The facts live in YAML frontmatter and the body is free text. A file counts as a task when it carries the tag or property you set in the plugin settings, by default the task tag.

A TaskNotes task file
---
tags:
  - task
title: Review quarterly report
status: in-progress
priority: high
due: 2026-01-15
scheduled: 2026-01-14
contexts:
  - office
projects:
  - "[[Q1 Planning]]"
timeEstimate: 90
recurrence: "DTSTART:20260115;FREQ=MONTHLY;BYMONTHDAY=15"
recurrence_anchor: scheduled
---

Notes, links and a checklist go in the body.

Properties

Property Example Meaning
title
title: Review quarterly report
The task name.
status
status: in-progress
A value from your status list. Defaults are open, in-progress and done.
priority
priority: high
A value from your priority list. Defaults are low, normal and high.
due
due: 2026-01-15
Deadline, as a date or a date and time.
scheduled
scheduled: 2026-01-14T09:00
The day you plan to work on it.
completedDate
completedDate: 2026-01-15
Set when the task is completed.
dateCreated
dateCreated: 2026-01-02T08:00:00Z
Creation time as an ISO timestamp.
dateModified
dateModified: 2026-01-15T10:30:00Z
Last change as an ISO timestamp.
tags
tags: [task, finance]
A YAML list, written without the hash.
contexts
contexts: [office]
A YAML list of places or modes.
projects
projects: ["[[Q1 Planning]]"]
A YAML list of links to project notes.
timeEstimate
timeEstimate: 90
A number of minutes.
recurrence
recurrence: "FREQ=WEEKLY;BYDAY=MO,WE,FR"
An iCalendar rule. DTSTART sets the anchor date.
recurrence_anchor
recurrence_anchor: completion
scheduled or completion: where the next date counts from.
complete_instances
complete_instances: ["2026-01-08"]
Dates of finished occurrences of a recurring task.
skipped_instances
skipped_instances: ["2026-01-22"]
Dates of skipped occurrences.
blockedBy
- uid: "Tasks/Draft report.md"
  reltype: FINISHTOSTART
Tasks that must finish first, as objects with a uid, a relation type and an optional gap.

Property names are settings. If you rename due to deadline in the plugin, the file must use deadline.

Lists must be lists, even with one item. A scalar where a list is expected is the most common reason a task file does not show up in a view.

Gotchas that cost people an evening

  • Obsidian Tasks reads and writes one format at a time. If its setting is Dataview, its own emoji stop being read until you switch back.
  • Dataview needs a double colon, [due:: 2026-01-15]. A single colon is not a field.
  • Brackets must match. [due:: 2026-01-15) is not read.
  • Obsidian Tasks keys are case sensitive in Dataview style: repeat, dependsOn and onCompletion work, Repeat and dependson do not. Task Genius matches keys without regard to case.
  • The done key is completion. [done:: 2026-01-15] is just an unknown field.
  • Dataview documents 🗓️ as its due shorthand, while Obsidian Tasks writes 📅. If you query emoji dates with Dataview, test your own version first. Bracketed fields avoid the question.
  • Pasted text can carry non-breaking spaces or a variation selector after an emoji. Obsidian Tasks does not read those, and the line looks fine on screen.
  • Dataview has shorthands for five dates only. Priority and recurrence have no shorthand and need the bracket form.
  • A global filter such as #task in Obsidian Tasks makes it ignore every checkbox without that tag. Tasks that vanish from queries are often this.
  • Checkbox lines inside a fenced code block are not tasks in any of these plugins.

Using these on a phone

TaskForge, a separate app for iPhone, iPad, Mac, Android and Windows, reads the emoji, Dataview and Task Genius forms above and TaskNotes-style task files from the same folder. It is not an Obsidian plugin and has no tie to Obsidian. You do not need it to use anything on this page.

Questions people ask

What is the Obsidian Tasks syntax for a due date?

Type the calendar emoji, a space and the date: - [ ] Pay rent 📅 2026-01-15. In Dataview style it is [due:: 2026-01-15]. Both use YYYY-MM-DD.

What are the Obsidian Tasks priority emojis?

🔺 highest, ⏫ high, 🔼 medium, 🔽 low and ⏬ lowest. Normal priority has no symbol. In Dataview style the field is priority and the values are highest, high, medium, low and lowest.

Can I use Dataview inline fields instead of emoji for Obsidian Tasks?

Yes. Set the task format in Obsidian Tasks settings to Dataview and it reads and writes [due:: 2026-01-15] style fields. It reads only the format you choose, so existing emoji lines need converting. See the conversion page for recipes.

How do I write a recurring task in Obsidian?

With Obsidian Tasks, add 🔁 and a rule that starts with every, plus at least one date: - [ ] Water plants 🔁 every week on Sunday 📅 2026-01-18. With TaskNotes, set a recurrence property to an iCalendar rule such as FREQ=WEEKLY;BYDAY=SU.

What status characters can an Obsidian task have?

Any single character fits between the brackets. The space and x are standard. Characters such as /, - and > only mean something once a plugin or theme defines them.

Does Task Genius use the same syntax as Obsidian Tasks?

It reads the same emoji and the Dataview bracket form on one line, so a vault written for Obsidian Tasks works. It adds a time after the date, project and context fields, and iCalendar recurrence rules. Which format it writes is a setting.