Task Planner
unlistedby Selfish
Manage tasks with drag-and-drop planning, Today focus, backlog, overdue tracking, and weekly time horizons.
Task Planner
A professional task management plugin for Obsidian that helps you track tasks across your vault, organize your day with intelligent planning, and manage your workload effectively.
Note: This plugin is a fork of Proletarian Wizard by cfe84. See LICENSE for attribution.
Features
Planning Board
- Kanban-style planning view with time-based horizons
- Today section with Todo, In Progress, and Done columns
- Future planning with configurable day, week, month, quarter, and year horizons
- Drag and drop tasks between time periods
- Custom horizons filtered by tag or specific dates
- WIP (Work In Progress) limits to manage daily workload
Task Management
- Track tasks from any markdown file in your vault
- Support for multiple task statuses: Todo, In Progress, Complete, Canceled, Delegated
- Priority levels: Critical, High, Medium, Low, Lowest
- Due date tracking with flexible attribute syntax
- Pin important tasks to keep them visible
- Subtask support with collapsible groups
Dataview-Compatible Syntax
Task attributes use the Dataview inline field format:
- [ ] Buy groceries [due:: 2025-01-15] [priority:: high]
This syntax is compatible with the popular Dataview plugin and is the Obsidian community standard.
Smart Attribute Conversion
Type shorthand attributes and Task Planner automatically converts them to Dataview format when you move to the next line:
@today→[due:: 2025-01-17]@tomorrow→[due:: 2025-01-18]@high→[priority:: high]
This auto-conversion can be disabled in settings if you prefer manual control.
Installation
From Obsidian Community Plugins
- Open Obsidian Settings
- Navigate to Community Plugins
- Search for "Task Planner"
- Click Install, then Enable
Manual Installation
- Download the latest release from GitHub
- Extract to your vault's
.obsidian/plugins/task-planner/directory - Enable the plugin in Obsidian Settings > Community Plugins
Usage
Creating Tasks
Add tasks anywhere in your markdown files using standard checkbox syntax:
- [ ] Unchecked task
- [x] Completed task
- [>] In progress
- [-] Canceled
- [d] Delegated
- [!] Attention required
Adding Attributes
Add due dates, priorities, and other metadata:
- [ ] Review quarterly report [due:: 2025-03-31] [priority:: high]
- [ ] Schedule team meeting [due:: 2025-01-20] [selected:: true]
Using Hashtags
Use standard hashtags to categorize tasks. Custom horizons can filter by these tags:
- [ ] Buy groceries #shopping #household
- [ ] Review PR #work #urgent
Commands
- Open planning: Opens the planning board view
- Open todo report: Opens the completed tasks report
- Mark todo as checked/unchecked: Toggle task completion
- Mark todo as ongoing/unchecked: Toggle in-progress status
- Complete line attributes: Expand shorthand dates and priorities
Settings
Configure Task Planner in Settings > Task Planner:
- Planning Board: Configure visible time horizons (days, weeks, months, quarters)
- Custom Horizons: Create tag-filtered or date-specific columns
- Task Attributes: Customize attribute names (due, completed, selected)
- Filtering: Ignore specific folders or archived content
Development
Prerequisites
- Node.js 22+
- npm
Quick Start
# Install dependencies
npm install
# Development build with watch mode
npm run dev
# Production build
npm run build
# Run all validation (lint, types, format, tests)
npm run validate
Available Scripts
| Script | Description |
|---|---|
npm run dev | Development build with watch mode |
npm run build | Production build |
npm run test | Run tests |
npm run test:watch | Run tests in watch mode |
npm run test:coverage | Run tests with coverage report |
npm run lint | Run ESLint |
npm run lint:fix | Run ESLint with auto-fix |
npm run format | Format code with Prettier |
npm run format:check | Check code formatting |
npm run typecheck | TypeScript type checking |
npm run validate | Run all checks |
Project Structure
src/
commands/ # Editor commands
core/ # Core business logic
events/ # Event handling
lib/ # Shared utilities
settings/ # Plugin settings
types/ # TypeScript types
ui/ # React components
views/ # Obsidian views
__tests__/ # Test files
__mocks__/ # Mock implementations
Testing
We use Jest for testing with comprehensive Obsidian API mocks:
# Run tests
npm run test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
Code Quality
- Prettier for code formatting
- ESLint with React and TypeScript plugins
- TypeScript with gradual strictness
Contributing
Contributions are welcome! Please read our Contributing Guidelines before submitting a Pull Request.
We use Conventional Commits for commit messages:
feat(planning): add drag-and-drop reordering
fix(parser): handle empty attributes correctly
docs: update installation instructions
Quick start:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes and run
npm run validate - Commit using conventional commits
- Push and open a Pull Request
License
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
Attribution
This software is based on Proletarian Wizard by cfe84 and contributors, licensed under GPL v2.0.
Support
- Report issues on GitHub Issues
- Join the discussion in the Obsidian community forums
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.