Tasks custom date
approvedby ssjy1919
Automatically write created, completion and cancelled timestamps, with custom state transitions and format templates. - This plugin has not been manually reviewed by Obsidian staff.
Tasks custom date
Automatically write created, completion and cancelled timestamps when tasks change state. Supports custom state transitions, configurable field templates, a unified time format, creation-time suggestions, and multiple languages.
Features
Task interception strategy
- The setting "Interception trigger tag/text" defaults to
#custom. - Only tasks containing the tag/text are intercepted for timestamp writes and state transitions.
- Leave the input empty to intercept all tasks (global mode).
State transition engine
- Fixed base states: incomplete
[ ]and done[x]. - Add any number of custom intermediate states with a name and icon character; list order defines the click cycle.
- Transition scope:
- Default "only specified tag/text tasks transition": only tasks containing the transition trigger tag/text cycle through states.
- "All tasks transition": all tasks cycle through states.
- "No transition": clicking toggles only between incomplete and done; intermediate states are not involved.
- The transition trigger tag/text is independent of the interception trigger tag/text.
- Unconfigured state icons (for example
[o]) fall back to incomplete[ ]when clicked. - The state row shows the transition path, for example
[x] ( ◔ ω◔) ⇨ [/].
Field formats and writes
- Each state has a format template;
{{time}}is replaced with the current time when the task enters that state. - Templates without
{{time}}are written literally and do not append a timestamp. - All time fields share the "Time format" setting:
YYYY-MM-DDTHH:mm:ss,YYYY-MM-DD HH:mm,YYYY-MM-DD, or a custom moment.js format. - A live preview is shown below the custom format input, with the moment.js formatting guide.
- "Always write created time": when enabled, a missing created time is written whenever a task in any state is clicked; existing created time is never overwritten.
Examples:
[created:: {{time}}]→[created:: 2026-08-08T04:15:04][completion:: {{time}}]→[completion:: 2026-08-08T04:15:04][cancelled:: {{time}}]→[cancelled:: 2026-08-08T04:15:04]
Created time suggestions
- Typing the suggestion trigger character (default space) in a task line shows a created time suggestion.
- The suggestion uses the incomplete state's format template.
Commands
Create or edit task: create or edit a taskToggle task done: toggle task stateInsert created time: insert a created time field into a task line
Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest GitHub release. - Place them in
.obsidian/plugins/tasks-custom-date/. - Enable Tasks custom date in the Obsidian community plugins settings.
Development
npm install
npm test
npm run build
npm run plugin:reload
npm run reload
Source
This plugin is derived from the open-source project Obsidian Tasks, keeping the task timestamp write/remove approach while adding custom state transitions, format templates, a unified time format, and multilingual support. The upstream project is MIT licensed, and this plugin keeps its LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.