Property Types Reference
This reference documents the expected data types for each frontmatter property that TaskNotes uses.
Quick Reference
| Property | Type | Example |
|---|---|---|
| title | text | "My Task" |
| status | text | "open", "in-progress", "done" |
| priority | text | "low", "normal", "high" |
| due | text (date) | "2025-01-15" |
| scheduled | text (date) | "2025-01-10" |
| completedDate | text (date) | "2025-01-20" |
| dateCreated | text (datetime) | "2025-01-01T08:00:00Z" |
| dateModified | text (datetime) | "2025-01-15T10:30:00Z" |
| tags | list | ["work", "urgent"] |
| contexts | list | ["@office", "@home"] |
| projects | list | ["[[Project A]]"] |
| timeEstimate | number | 120 (minutes) |
| recurrence | text | "FREQ=WEEKLY;BYDAY=MO" |
| recurrence_anchor | text | "scheduled" or "completion" |
| timeEntries | list (objects) | See Time Entries |
| blockedBy | list (objects) | See Dependencies |
| reminders | list (objects) | See Reminders |
| complete_instances | list | ["2025-01-08", "2025-01-15"] |
| skipped_instances | list | ["2025-01-22"] |
| icsEventId | list | ["event-abc123"] |
Use this table for fast validation when a field is not behaving as expected in views or API calls. Most parsing issues come from shape mismatches (for example scalar vs list) rather than missing values.
Property Details
The sections below describe storage formats, but there is flexibility in authoring style. TaskNotes normalizes many equivalent YAML representations as long as the resulting data type is correct.
Text Properties
title
- Type: text (string)
- Description: The task's title or name
- Example:
title: "Complete project documentation"
status
- Type: text (string)
- Description: The task's current status. Must match one of the status values configured in your settings.
- Default values:
"open","in-progress","done" - Example:
status: "in-progress" - Note: Also supports boolean values (
true/false) for Obsidian checkbox compatibility. See Boolean Status Values.
priority
- Type: text (string)
- Description: The task's priority level. Must match one of the priority values configured in your settings.
- Default values:
"low","normal","high" - Example:
priority: "high"
Date Properties
All date properties are stored as text strings in your frontmatter. TaskNotes expects specific formats: When in doubt, prefer ISO-style values. They sort correctly as text, travel well through APIs, and are easiest to parse consistently.
due
Type: text (date string)
Format:
YYYY-MM-DDor ISO 8601 timestampDescription: The task's due date
Examples:
due: "2025-01-15" due: "2025-01-15T17:00:00"
scheduled
Type: text (date string)
Format:
YYYY-MM-DDor ISO 8601 timestampDescription: When the task is scheduled to be worked on
Examples:
scheduled: "2025-01-10" scheduled: "2025-01-10T09:00:00"
completedDate
- Type: text (date string)
- Format:
YYYY-MM-DD - Description: The date when the task was completed
- Example:
completedDate: "2025-01-20"
dateCreated
- Type: text (datetime string)
- Format: ISO 8601 timestamp
- Description: When the task was created
- Example:
dateCreated: "2025-01-01T08:00:00Z"
dateModified
- Type: text (datetime string)
- Format: ISO 8601 timestamp
- Description: When the task was last modified
- Example:
dateModified: "2025-01-15T10:30:00Z"
List Properties
List properties must be arrays, even when containing a single value. Single-item arrays may look verbose, but they prevent edge cases when filters and formulas assume list semantics.
tags
Type: list (array of strings)
Description: Tags associated with the task
Examples:
tags: ["work", "documentation"] tags: - work - documentation
contexts
Type: list (array of strings)
Description: Context labels for the task
Examples:
contexts: ["office", "computer"] contexts: - "office" - "computer"
projects
Type: list (array of strings)
Description: Project references (typically wiki-links)
Examples:
projects: ["[[Website Redesign]]", "[[Q1 Planning]]"] projects: - "[[Website Redesign]]" - "[[Q1 Planning]]"
Numeric Properties
timeEstimate
- Type: number
- Unit: minutes
- Description: Estimated time to complete the task
- Example:
timeEstimate: 120(2 hours)
Recurrence Properties
recurrence
Type: text (string)
Format: RFC 5545 RRULE format
Description: Defines how the task repeats
Examples:
recurrence: "FREQ=DAILY" recurrence: "FREQ=WEEKLY;BYDAY=MO,WE,FR" recurrence: "FREQ=MONTHLY;BYMONTHDAY=1"
recurrence_anchor
- Type: text (string)
- Valid values:
"scheduled"or"completion" - Description: Determines whether the next occurrence is calculated from the scheduled date or when the task was completed
- Example:
recurrence_anchor: "scheduled"
complete_instances
Type: list (array of date strings)
Format:
YYYY-MM-DDDescription: Dates when recurring task instances were completed
Example:
complete_instances: - "2025-01-08" - "2025-01-15"
skipped_instances
Type: list (array of date strings)
Format:
YYYY-MM-DDDescription: Dates when recurring task instances were skipped
Example:
skipped_instances: - "2025-01-22"
Complex Properties
These properties contain structured data with multiple fields. For these fields, copy known-good examples before editing manually. Minor schema deviations can break downstream features such as reminders, recurrence, or dependency checks.
Time Entries
Type: list (array of objects)
Description: Time tracking entries for the task
Structure:
timeEntries: - startTime: "2025-01-15T10:30:00Z" # Required: ISO 8601 timestamp endTime: "2025-01-15T11:15:00Z" # Optional: ISO 8601 timestamp description: "Initial work" # Optional: text
Dependencies (blockedBy)
Type: list (array of objects)
Description: Tasks that must be completed before this task can start
Structure:
blockedBy: - uid: "path/to/blocking-task.md" # Required: path to blocking task reltype: "FINISHTOSTART" # Required: relationship type gap: "P1D" # Optional: ISO 8601 duration offsetRelationship types accepted in stored data:
FINISHTOSTART,STARTTOSTART,FINISHTOFINISH,STARTTOFINISHCurrent behavior: Dependencies created from the UI use
FINISHTOSTART. Blocking evaluation is based on dependency presence/completion state and does not currently apply distinct scheduling semantics for differentreltypevalues orgap.
Reminders
Type: list (array of objects)
Description: Reminder notifications for the task
Structure for relative reminders:
reminders: - id: "rem_1" # Required: unique identifier type: "relative" # Required: "relative" or "absolute" relatedTo: "due" # Required for relative: "due" or "scheduled" offset: "-PT1H" # Required for relative: ISO 8601 duration description: "1 hour before due" # Optional: descriptionStructure for absolute reminders:
reminders: - id: "rem_2" type: "absolute" absoluteTime: "2025-01-15T09:00:00Z" # Required for absolute: ISO 8601 timestamp description: "Morning reminder"
icsEventId
Type: list (array of strings)
Description: ICS calendar event IDs linked to this task
Example:
icsEventId: - "event-abc123" - "event-def456"
Complete Example
Here's a complete task with all property types:
---
title: "Complete quarterly report"
status: "in-progress"
priority: "high"
due: "2025-01-31"
scheduled: "2025-01-25"
tags:
- work
- reports
contexts:
- "@office"
projects:
- "[[Q1 Planning]]"
timeEstimate: 240
dateCreated: "2025-01-01T08:00:00Z"
dateModified: "2025-01-20T14:30:00Z"
timeEntries:
- startTime: "2025-01-20T10:00:00Z"
endTime: "2025-01-20T11:30:00Z"
blockedBy:
- uid: "tasks/gather-data.md"
reltype: "FINISHTOSTART"
reminders:
- id: "rem_1"
type: "relative"
relatedTo: "due"
offset: "-P1D"
description: "Due tomorrow"
---
Field Mapping
All property names can be customized via Settings → Task Properties → Field Mapping. If you change a field mapping, TaskNotes will read and write using your custom property name.
For example, if you map due to dueDate, TaskNotes will expect:
dueDate: "2025-01-15"
See Task Properties settings for configuration details.
Custom User Fields
You can define additional properties with these types:
- text - Single text value
- number - Numeric value
- date - Date string (YYYY-MM-DD)
- boolean - true/false
- list - Array of values
See Custom User Fields for configuration details.