No description
Find a file
ac8318740 64cbb3a2ec fix(drag-reorder): enable instant optimistic move for swimlane drag-drop
Fix CSS selector in setupSwimLaneCellDragDrop that queried
.kanban-view__cards (never exists in swimlane cells) instead of
.kanban-view__tasks-container, causing performOptimisticReorder to
bail out and cards to snap back before the data update.

Extract reconstructDropTarget helper from the inlined same-column
fallback logic in setupColumnDragDrop so both column and swimlane
drop handlers share a single implementation for resolving drop
position when the user drops in empty space.

Add diagnostic logging to the swimlane drop handler matching the
column handler's pattern.
2026-03-29 07:33:57 +11:00
.clump/issues feat(TaskService): support {{currentNotePath}} for inline task command (#1334) 2026-01-01 16:04:30 +11:00
.github docs: update docs content and docs build tooling 2026-02-21 08:52:08 +11:00
docs refactor: clean up task card presentation plumbing 2026-03-29 07:20:09 +11:00
docs-builder docs: fix custom-site internal link routing 2026-02-21 13:57:07 +11:00
e2e test(issue-1630): add skipped minimal readable-line-length repro 2026-02-21 08:08:41 +11:00
issue-analysis analysis: AI analysis for issue #1005 2025-11-16 11:43:38 +11:00
media docs: restructure task management guides and refresh screenshots 2026-02-15 12:10:28 +11:00
scripts chore: checkpoint current tasknotes state 2026-03-25 08:08:28 +11:00
src fix(drag-reorder): enable instant optimistic move for swimlane drag-drop 2026-03-29 07:33:57 +11:00
styles fix(drag-reorder): replace line indicator with gap/slot UX and fix drag bugs 2026-03-29 07:32:29 +11:00
tasknotes-e2e-vault feat(kanban): add within-column drag-to-reorder with sort_order 2026-03-29 07:32:29 +11:00
tests refactor: clean up task card presentation plumbing 2026-03-29 07:20:09 +11:00
.editorconfig Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.env.example feat: add OAuth 2.0 calendar integration for Google and Microsoft Calendar (#997) 2025-10-26 16:40:35 +11:00
.eslintignore Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintrc Convert remaining lint rules from errors to warnings 2025-11-09 19:41:56 +11:00
.gitignore fix(drag-reorder): fix LexoRank bugs in filtered views and near-ceiling ranks 2026-03-29 07:33:57 +11:00
.npmrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.prettierignore feat: configure Prettier formatter and improve linting setup 2025-09-28 12:28:12 +10:00
.prettierrc feat: configure Prettier formatter and improve linting setup 2025-09-28 12:28:12 +10:00
.tmp-conformance-smoke.mjs chore: checkpoint current tasknotes state 2026-03-25 08:08:28 +11:00
AGENTS.md chore: keep .ops local only 2026-03-29 07:24:47 +11:00
apply-translations.js feat(i18n): complete missing translations and internationalize hardcoded strings 2025-11-02 20:30:20 +11:00
build-css.mjs refactor: consolidate file selector modals into FileSelectorModal 2025-11-30 11:32:47 +11:00
copy-files.mjs update copy-files build script 2026-01-04 12:41:32 +11:00
e2e-launch.sh chore: add E2E test scripts and Playwright configuration 2025-12-31 09:34:09 +11:00
e2e-setup.sh chore: add E2E test scripts and Playwright configuration 2025-12-31 09:34:09 +11:00
esbuild.config.mjs fix(drag-reorder): fix LexoRank bugs in filtered views and near-ceiling ranks 2026-03-29 07:33:57 +11:00
generate-release-notes-import.mjs fix: sort release notes by date instead of version number 2025-11-30 11:32:47 +11:00
i18n-state.config.json feat: Migrate to i18n-state-manager CLI tool 2025-11-04 13:50:02 +11:00
i18n.manifest.json feat: add localized base-file notice to release notes 2026-02-17 21:50:06 +11:00
i18n.state.json feat: add localized base-file notice to release notes 2026-02-17 21:50:06 +11:00
I18N_GUIDE.md feat: Migrate to i18n-state-manager CLI tool 2025-11-04 13:50:02 +11:00
jest.config.js fix tests for nlp-core import and jsdom textencoder 2026-02-15 14:59:28 +11:00
jest.integration.config.js Add actions read permission to docs workflow 2025-06-29 12:39:17 +10:00
LICENSE update license 2025-05-30 00:49:39 +10:00
main.ts Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
manifest.json release 4.4.0 2026-02-17 21:56:59 +11:00
mkdocs.yml docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
NLP_MARKDOWN_EDITOR_COMPLETE.md Scope autocomplete CSS to TaskNotes modals only 2025-11-09 19:41:57 +11:00
NLP_MARKDOWN_EDITOR_STATUS.md Implement CodeMirror autocomplete for NLP triggers (@, #, +, status) 2025-11-09 19:41:57 +11:00
package-lock.json refactor(drag-reorder): switch to LexoRank ordering and fix code review issues 2026-03-29 07:32:29 +11:00
package.json refactor(drag-reorder): switch to LexoRank ordering and fix code review issues 2026-03-29 07:32:29 +11:00
playwright.config.ts chore: add E2E test scripts and Playwright configuration 2025-12-31 09:34:09 +11:00
PRIVACY.md docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
PROOF_OF_CONCEPT_MARKDOWN_EDITOR.md Add embeddable markdown editor proof of concept 2025-11-09 19:41:57 +11:00
README.md docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
Tasknotes-Development-Guidelines.md feat: Implement UTC Anchor principle for robust timezone handling 2025-08-02 22:54:11 +10:00
tasknotes-gradient.svg feat: add custom TaskNotes icons 2025-08-15 23:48:35 +10:00
tasknotes-simple.svg feat: add custom TaskNotes icons 2025-08-15 23:48:35 +10:00
test-overdue-setting.md feat: Add setting to hide completed tasks from overdue status (#300) 2025-07-27 10:20:40 +10:00
test-webhook.js feat(webhooks): add comprehensive webhook testing server 2025-08-13 10:42:46 +10:00
tsconfig.json Add CMD/Ctrl+Enter keyboard shortcuts to modals 2025-11-20 23:37:38 +11:00
version-bump.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
versions.json release 4.4.0 2026-02-17 21:56:59 +11:00

TaskNotes for Obsidian

A task management plugin where each task is a separate Markdown note, and all views are powered by Obsidian Bases.

Overview

Each task is a Markdown note with YAML frontmatter. Every view is a Bases query.

Bases is Obsidian's core plugin for turning notes into databases—it reads properties from your notes and lets you filter, sort, and group them without writing code. TaskNotes stores tasks as notes with structured frontmatter, then uses Bases to query and display them. The Task List, Kanban, Calendar, and Agenda views are all .base files.

This keeps your data portable. Tasks are just Markdown files with YAML, so you can read them with any tool, transform them with scripts, or migrate them elsewhere. There's no plugin-specific database.

The frontmatter is extensible—add fields like energy-level or client and they're immediately available in Bases for filtering and grouping. The .base files are plain text too, so you can edit filters and sorting directly or duplicate them to create new views.

Screenshot of TaskNotes plugin

Full Documentation

Quick start

Create a task with TaskNotes: Create new task. The plugin parses natural language—type "Buy groceries tomorrow #errands" and it extracts the due date and context automatically.

Tasks are stored as Markdown files in your vault. Open them directly, edit the frontmatter, or use the plugin's views to manage them.

Open a view with commands like TaskNotes: Open tasks view or TaskNotes: Open kanban board. These open the corresponding .base files from TaskNotes/Views/.

How it works with Bases

TaskNotes registers as a Bases data source and provides custom view types: tasknotesTaskList, tasknotesKanban, tasknotesCalendar, and tasknotesMiniCalendar. The default Agenda file is a preconfigured tasknotesCalendar list view (listWeek). Your task notes become rows; frontmatter properties become columns.

The default .base files include formula properties for computed values:

formulas:
  daysUntilDue: if(due, ((number(date(due)) - number(today())) / 86400000).floor(), null)
  isOverdue: due && date(due) < today() && status != "done"
  urgencyScore: formula.priorityWeight + max(0, 10 - formula.daysUntilDue)
  efficiencyRatio: (timeTracked / timeEstimate * 100).round()

You can sort by urgencyScore, filter to show only isOverdue tasks, or add these as columns. Edit the .base files directly or use the Bases UI. See default base templates for the full list of included formulas.

Task structure

title: "Complete documentation"
status: "in-progress"
due: "2024-01-20"
priority: "high"
contexts: ["work"]
projects: ["[[Website Redesign]]"]
timeEstimate: 120
timeEntries:
  - startTime: "2024-01-15T10:30:00Z"
    endTime: "2024-01-15T11:15:00Z"

Recurring tasks use RRULE format with per-instance completion tracking:

title: "Weekly meeting"
recurrence: "FREQ=WEEKLY;BYDAY=MO"
complete_instances: ["2024-01-08"]

All property names are configurable. If you already use deadline instead of due, remap it in settings.

Other features

Calendar sync with Google and Microsoft (OAuth) or any ICS feed. Time tracking with start/stop per task, Pomodoro timer, and session history. Recurring tasks with fixed or flexible schedules and per-instance completion tracking. Dependencies between tasks. Natural language parsing for task creation. Custom statuses, priorities, and user-defined fields.

Integrations

TaskNotes has an optional HTTP API. There's a browser extension and a CLI. Webhooks can notify external services on task changes. See HTTP API docs and Webhooks docs.

Language support

UI: English, German, Spanish, French, Japanese, Russian, Chinese, Portuguese, Korean.

Natural language parsing: English, German, Spanish, French, Italian, Japanese, Dutch, Portuguese, Russian, Swedish, Ukrainian, Chinese.

Screenshots

View screenshots

Screenshots are generated from the Playwright documentation suite (npm run e2e:docs).

Calendar

Month

Week

Day

Year

Task views

Tasks

Kanban

Agenda

Mini Calendar

Features

Task Modal

Pomodoro

Stats

Settings

Credits

Calendar components by FullCalendar.io.

License

MIT—see LICENSE.