Completed Tasks to Notes

approved

by Tristan Van Garsse

Convert completed tasks into individual notes with optional content, topic, completion date, and source properties for Bases and search. - This plugin has not been manually reviewed by Obsidian staff.

49 downloadsUpdated 18d agoMIT

Completed Tasks to Notes

Convert checked tasks from a source note into individual Markdown notes with structured properties for Obsidian Bases, search, backlinks, and other query tools.

What it does

When a task is checked, the plugin:

  1. Finds the nearest heading and uses it as the task's topic.
  2. Adds a completion date if the task does not already contain one.
  3. Creates one Markdown note for the completed task.
  4. Adds whichever properties you enable: topic, status, completed, type, heading-path, source, and content.
  5. Optionally writes clean task text into the note body, without a heading or checkbox.
  6. Preserves indented context and links when body content is enabled.
  7. Removes the original task only after the new note has been created and verified.

Example

Source note:

# Tasks

## Acme website redesign

- [x] Ask [[Maya Chen]] whether order NP-4821 can arrive before 2026-08-14
  - Why: the brochures are required for the launch event
  - Related: [[Acme launch plan]]

Generated note:

---
topic: "Acme website redesign"
status: completed
completed: "2026-07-31"
type: task
heading-path: "Tasks > Acme website redesign"
source: "[[Tasks#Acme website redesign]]"
content: "Ask [[Maya Chen]] whether order NP-4821 can arrive before 2026-08-14; Why: the brochures are required for the launch event; Related: [[Acme launch plan]]"
---

Ask [[Maya Chen]] whether order NP-4821 can arrive before 2026-08-14
  - Why: the brochures are required for the launch event
  - Related: [[Acme launch plan]]

By default, generated notes are stored directly in Archive/Tasks with filenames in this format:

YYYY-MM-DD_first-40-characters-of-task.md

For example:

Archive/Tasks/2026-07-31_go-shopping.md
Archive/Tasks/2026-07-31_go-shopping_1.md
Archive/Tasks/2026-07-31_go-shopping_2.md

The task text is converted to a lowercase, hyphenated filename slug and limited to 40 characters. If a filename already exists, the plugin appends _1, _2, and so on without overwriting it.

Settings

  • Source task note: note monitored for completed tasks; defaults to Tasks.md.
  • Completed task notes folder: base output folder; defaults to Archive/Tasks.
  • Topic property: stores the nearest heading as topic.
  • Status property: stores status: completed.
  • Completed property: stores the completion date.
  • Type property: stores type: task.
  • Heading path property: stores the full nested heading path.
  • Source property: links back to the original note and topic heading.
  • Content property: stores the complete task block as one flattened content value for Bases. Nested bullets and continuation lines are preserved in order and separated with semicolons. Inline Markdown/Obsidian formatting is preserved unless cleanup rules remove it.
  • Include task content in note body: independently writes the task below the properties without the checkbox or completion-date marker. Markdown/Obsidian formatting is preserved unless cleanup rules remove it.
  • Custom cleanup (regex): optional cleanup applied only to generated notes. Leave it empty to keep formatting. Add one regular expression per line for text or formatting you explicitly want removed; plain patterns are global, /pattern/flags syntax is supported, and lines beginning with # are comments.
  • Remove common Obsidian formatting: a button adds an editable cleanup preset for common Markdown/Obsidian formatting such as emphasis, highlights, code markers, links, wikilinks/embeds, headings, blockquotes/callouts, comments, and horizontal rules. Visible link text and wikilink aliases are kept where possible.

Each generated property can be independently enabled or disabled. When all property toggles are off, the note is created without YAML frontmatter. The content-property and note-body options are independent, so users may enable either, both, or neither.

  • Conversion delay: waits briefly after edits before processing.
  • Show conversion notice: displays a confirmation notice.

Manual command

Run Completed Tasks to Notes: Convert completed tasks to notes now from the Command Palette.

Safety and duplicate handling

  • Source tasks are removed only after their generated notes are verified.
  • Tasks edited during conversion remain in the source note.
  • Identical tasks receive occurrence-specific identities.
  • Filenames use the completion date plus the first 40 slugified task-title characters.
  • Filename collisions receive _1, _2, and subsequent numeric suffixes instead of overwriting another note.
  • Checkbox examples inside fenced code blocks are ignored.

Upgrading from Topic Task Archiver

Version 2.0 changes the storage model from one archive note per topic to one note per completed task. Existing topic archive notes are not modified or migrated. The old archive-folder setting is automatically reused as the completed-task notes folder.

Installation

Copy main.js, manifest.json, and optionally styles.css into:

<vault>/.obsidian/plugins/completed-tasks-to-notes/

Restart Obsidian or reload the plugin, then review Settings → Completed Tasks to Notes.

Note contents

Generated notes do not include an internal HTML comment. When body content is enabled, the task is rendered as plain text rather than a completed checkbox, and no duplicate title or topic heading is added. Earlier versions used a hidden marker as a verification aid; current versions verify the exact newly written file content instead.

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.