No description
Find a file
callumalpass 2bb22d4fdb Clean up PR: remove unrelated changes and fix test
- Revert build system changes (outfile paths)
- Revert version bump to maintain current 3.23.4
- Fix flawed timezone test by replacing with consistent date formatting test
- Keep core time statistics feature intact
2025-09-27 20:04:03 +10:00
.github fix: use test:ci command in GitHub Actions for proper CI environment setup 2025-08-31 17:11:25 +10:00
docs A time display based on the ‘timeEstimate’ property within tasks has been added to the ‘task & project statistics’ section. 2025-09-23 23:44:00 +03:00
media fix: Move inline task widget screenshots to docs/assets folder 2025-07-17 21:19:22 +10:00
src A time display based on the ‘timeEstimate’ property within tasks has been added to the ‘task & project statistics’ section. 2025-09-23 23:44:00 +03:00
styles Merge pull request #678 from callumalpass:issue459 2025-09-17 21:17:06 +10:00
tests Clean up PR: remove unrelated changes and fix test 2025-09-27 20:04:03 +10:00
.editorconfig Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintignore Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintrc fix: disable no-explicit-any ESLint rule for CI compatibility 2025-08-31 16:43:50 +10:00
.gitignore feat: implement modular task card properties system 2025-08-31 18:07:36 +10:00
.npmrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
build-css.mjs Clean up PR: remove unrelated changes and fix test 2025-09-27 20:04:03 +10:00
copy-files.mjs chore(dev): support .copy-files.local override for copy-files and ignore it 2025-08-13 00:33:12 +00:00
esbuild.config.mjs Clean up PR: remove unrelated changes and fix test 2025-09-27 20:04:03 +10:00
jest.config.js remove: disable Jest coverage thresholds that were causing CI failures 2025-08-31 17:13:55 +10: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 3.23.4 2025-09-17 22:38:33 +10:00
mkdocs.yml docs: improve home page, features, and core concepts with natural tone 2025-09-14 11:42:35 +10:00
package-lock.json time statistics 2025-09-23 08:58:43 +03:00
package.json Clean up PR: remove unrelated changes and fix test 2025-09-27 20:04:03 +10:00
README.md Revert "Update README.md" 2025-09-23 22:34:52 +03: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 feat: implement direct formula computation for Bases integration 2025-09-06 09:28:25 +10:00
version-bump.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
versions.json release: 0.7.0 2025-06-01 21:58:08 +10:00

TaskNotes for Obsidian

Task management plugin where each task lives as a separate note with YAML frontmatter. Features calendar integration, Kanban boards, time tracking, and Pomodoro timer.

Downloads Screenshot of TaskNotes plugin

📖 Documentation

Overview

Each task is a full Markdown note with structured metadata in YAML frontmatter. This means your tasks have all the benefits of regular notes - linking, tagging, graph view, and unlimited content - while still working as structured data for filtering and organization.

The plugin supports time tracking, recurring tasks, calendar integration with external ICS feeds, and integration with the Obsidian Bases plugin.

Why YAML Frontmatter?

YAML is a standard data format that works with many tools, so you can easily extract and transform your task data into other formats. This keeps your data portable and aligns with Obsidian's file-over-app philosophy.

The frontmatter is extensible—add custom fields like "assigned-to" or "attachments" and use tools like Obsidian Bases to work with that data. This flexibility makes features like time-tracking natural, since there's an obvious place to store timing information.

Each task being a full note means you can write descriptions, jot down thoughts as you work, and connect tasks to other notes through Obsidian's linking and graph features. Bases integration provides custom views on your task data.

Core Features

Task Management

  • Individual Markdown files with YAML frontmatter
  • Properties: title, status, priority, due date, scheduled date, contexts, projects, tags, time estimates, completion date
  • Project organization using note-based linking
  • Recurring tasks with per-date completion tracking
  • Time tracking with multiple sessions per task
  • Archive function using tags
  • Filtering and grouping options

Calendar Integration

  • Month view displaying tasks and notes
  • Mini calendar view for compact layouts
  • ICS/iCal feed subscriptions
  • Direct navigation to daily notes

Time Management

  • Time tracking with start/stop functionality
  • Pomodoro timer with task integration
  • Session history and statistics

Editor Integration

  • Interactive task previews for wikilinks
  • Universal line-to-task conversion
  • Template support with parent note context

Views

  • Calendar: Month view with agenda
  • Task List: Filtering and grouping options
  • Kanban: Drag-and-drop task management
  • Agenda: Daily task and note overview
  • Notes: Date-based note browser
  • Pomodoro: Timer with statistics

Task creation dialog

Create tasks with natural language parsing for due dates, recurrence, and contexts

Pomodoro timer

Built-in pomodoro timer with task integration and daily completion tracking

Kanban board view

Kanban boards with drag-and-drop functionality and customizable columns

Project subtasks view

Project management with subtasks and hierarchical organization

Configuration

Customization

  • Field Mapping: Customize YAML property names to match existing workflows
  • Custom Statuses: Define task statuses with colors and completion behavior
  • Custom Priorities: Create priority levels with weight-based sorting
  • Templates: Configure daily note templates with Obsidian variables

YAML Structure

Task Example

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 Task

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

HTTP API

TaskNotes includes an optional HTTP API server for external integrations. This enables creating tasks from browsers, automation tools, mobile apps, and custom scripts.

Quick Start

  1. Enable the HTTP API in Settings → HTTP API tab (desktop only)
  2. Configure port (default: 8080) and optional auth token
  3. Restart Obsidian to start the server

Basic Usage

# Health check
curl http://localhost:8080/api/health

# List all tasks
curl http://localhost:8080/api/tasks

# Create a task
curl -X POST http://localhost:8080/api/tasks \
  -H "Content-Type: application/json" \
  -d '{"title": "New task", "priority": "High"}'

# Get task statistics
curl http://localhost:8080/api/stats

Browser Integration

The API enables browser integrations:

  • Bookmarklets for one-click task creation from any webpage
  • Browser extensions: for example
  • Automation with Zapier, IFTTT, and similar services

Documentation

See HTTP API Documentation for complete endpoint reference and integration examples.

Credits

This plugin uses FullCalendar.io for its calendar components.

License

This project is licensed under the MIT License - see the LICENSE file for details.