Property Mapping
TaskNotes can remap non-core frontmatter properties to core task fields like due date, scheduled date, and assignee. This lets you keep your existing property names (e.g., deadline, owner, review_date) while still getting full TaskNotes functionality -- notifications, overdue calculations, sorting, and view filters all respect the mapping.
Property mapping works at two scopes:
| Scope | What it does | Where to configure |
|---|---|---|
| Per-task | Override field names on a single task via the PropertyPicker | Task creation/edit modal |
| Per-view | Set default field mappings for all tasks created from a Bases view | .base file or bulk modal |
Property Mapping (this page) remaps existing properties to core TaskNotes logic -- it changes which frontmatter field TaskNotes reads for due date, assignee, etc. Custom Properties are user-defined fields that you register for modal UI, autocomplete, defaults, and Bases integration. They serve different purposes: mapping changes behavior, custom properties extend the data model.
How Resolution Works
TaskNotes uses a three-layer resolution stack to determine which frontmatter property name to use for a given field:
- Per-task override -- stored as tracking properties in the task's frontmatter (e.g.,
tnDueDateProp: deadline). Makes the task self-describing so it works correctly regardless of which view you open it from. - Per-view mapping -- configured in the
.basefile's YAML. Applied when creating or editing tasks from that view. - Global mapping -- the default from Settings > Task Properties. Used when no per-task or per-view override exists.
The tracking properties are internal to TaskNotes:
| Tracking property | Maps to |
|---|---|
tnDueDateProp |
Due date |
tnScheduledDateProp |
Scheduled date |
tnCompletedDateProp |
Completed date |
tnCreatedDateProp |
Created date |
tnAssigneeProp |
Assignee |
These are hidden from the PropertyPicker and should not be edited manually. They make each task self-describing: the notification system, overdue calculations, sorting, and views all read the tracking property first, then fall back to the global field mapping.
Verifying the mapping
After creating or converting a task with a property mapping, you can verify it worked by opening the task note and checking its Properties view (the frontmatter panel at the top of the note). Look for the corresponding tracking property:
- If you mapped
next_assessment_dueto Due, the task should havetnDueDateProp: next_assessment_duein its frontmatter. - If the tracking property is missing, the mapping was not applied during creation/conversion.
Even if a task is missing its tracking property, views with a configured per-view mapping will still resolve the field correctly. For example, if your .base file maps due to next_assessment_due, tasks displayed in that view will use next_assessment_due as the due date regardless of whether tnDueDateProp is present. This "belt-and-suspenders" fallback ensures views work correctly even for tasks that were converted before the mapping was configured.
Which Fields Can Be Mapped
Five core fields support mapping (at both per-task and per-view scope):
| Internal field | Default property | What it controls |
|---|---|---|
due |
due |
Due date |
scheduled |
scheduled |
Scheduled date |
completedDate |
completedDate |
Completion date |
dateCreated |
dateCreated |
Creation date |
assignee |
assignee |
Task assignee |
Other built-in fields like status, priority, and title are not mappable through this system. They use the global field mapping in settings.
Per-Task Mapping
Per-task mapping lets you override field names on individual tasks. This is useful when your vault uses different property names for the same concept -- one project might use deadline while another uses due.
When you select a custom property in the PropertyPicker (in any task creation or edit modal), a Use as option appears next to it. Click it to see which core fields the property can replace.
Choosing "Use as Due date" on a property called deadline means:
- The task's due date is read from and written to
deadlineinstead of the global due date property - A tracking property (
tnDueDateProp: deadline) is saved in the task's frontmatter so TaskNotes always knows where to find the due date, even without view context - The property row switches to a rich editor (date picker for dates, person/group picker for assignee) instead of a plain text input
Each core field can only be mapped to one custom property at a time. If deadline is already mapped to Due date, the "Use as Due date" option is grayed out for other properties.
Example
A task with deadline mapped to the due date field:
---
title: Ship v2.0
deadline: 2026-04-01
tnDueDateProp: deadline
---
TaskNotes reads the due date from deadline on this task. The notification system, overdue calculations, sorting, and all views respect this -- no matter which view displays the task later.
Per-View Mapping
Per-view mapping lets a Bases view define its own field names, so tasks created from that view automatically use the right properties without manual adjustment. Where per-task mapping applies to one task at a time, per-view mapping sets the default for every task created from a specific view.

Configuring View Mappings
Open the Configure panel from any Bases view toolbar by clicking the gear icon (or the TaskNotes section in the native Bases configure panel). The TaskNotes section includes:
- Show toolbar buttons -- toggle TaskNotes buttons on this view
- Notify on matches -- enable view notifications for this view
- Properties & mapping -- link to the bulk tasking modal's View Settings tab, where you configure mappings and defaults
In the View Settings tab of the bulk tasking modal, the PropertyPicker appears with Use as options for all five mappable fields. Select a property and choose which core field it should replace for this view. The mapping is saved to the .base file immediately.
View Defaults
Beyond field mapping, each view can define default values that pre-populate new tasks. These are stored as tnDefaults in the view's YAML:
views:
- type: tasknotesTaskList
name: Sprint Board
tnDefaults:
status: in-progress
priority: high
tags:
- sprint-12
When you create a task from this view, the status starts as "in-progress", priority as "high", and the tag "sprint-12" is pre-applied. You can override any default in the task creation modal before saving.
Defaults use the property names as they appear in frontmatter (after any mapping). If your view maps due to deadline, set the default on deadline, not due.
The View Settings tab of the bulk tasking modal lets you add and edit defaults interactively using the same PropertyPicker used for custom properties.
Field Mapping in YAML
Per-view mapping is stored inside the .base file as tnFieldMapping on each view object. IDs are generated lazily -- they only appear once you configure a mapping or default:
tnBaseId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
views:
- type: tasknotesTaskList
name: Project Tracker
tnViewId: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
tnFieldMapping:
due: deadline
assignee: owner
tnDefaults:
status: todo
priority: medium
Only the fields you want to remap need entries in tnFieldMapping. Fields not listed use the global mapping from settings.
The tnBaseId and tnViewId are UUIDs that give each .base file and view a stable identity. They are generated automatically the first time you configure any mapping or default -- you do not need to create them manually. Plain .base files without any TaskNotes configuration stay clean.
Creating Tasks from Mapped Views
When you create a task from a view with custom mappings (via the "New task" button or bulk tasking):
- The task creation modal pre-populates the Additional Properties section with the mapped fields and their "Use as" roles already assigned
- You fill in values using the rich editors (date picker for dates, person/group picker for assignees)
- On save, TaskNotes writes the custom property name and the tracking property to the task's frontmatter
- The task is self-describing -- it works correctly in any view, not just the one it was created from
Provenance tracking (optional): TaskNotes can record which .base file and view created each task, using tnSourceBaseId and tnSourceViewId properties in the task's frontmatter. This is off by default to avoid frontmatter clutter.
For bulk operations, the same mapping applies. Bulk Generate passes the view's mapping to the task creation engine. Bulk Convert applies the mapping after assembling the frontmatter. Bulk Edit respects existing per-task overrides.
Settings
| Setting | Default | Description |
|---|---|---|
| Track source view | Off | Write tnSourceBaseId and tnSourceViewId to tasks created from views |
Per-view settings (tnFieldMapping, tnDefaults) are configured through the View Settings tab in the bulk tasking modal or by editing the .base file YAML directly.
Related
- Custom Properties for registering custom fields with full plugin integration
- Task Management for built-in task properties
- Bulk Tasking for bulk operations that respect property mappings
- Views for the Bases views that carry mappings