obsidian-tasks
Task management in Obsidian vaults using Kanban boards, Dataview dashboards, and structured task notes.
Setup
Run the setup script to initialize a task board in an Obsidian vault:
CODEBLOCK0
- -
vault-path: Path to the Obsidian vault root - INLINECODE1 : Subfolder to create (default:
Tasks) - INLINECODE3 : Kanban columns (default:
Backlog,Todo,In Progress,Review,Done)
This creates:
- -
<folder>/Board.md - Kanban board (requires Kanban community plugin) - INLINECODE6 - Dataview dashboard (requires Dataview community plugin)
Tell the user to install Kanban and Dataview community plugins if not already installed.
Task Note Format
Each task is a separate markdown file with YAML frontmatter:
CODEBLOCK1
Frontmatter Fields
| Field | Values | Required |
|---|
| status | backlog, todo, in-progress, review, done | yes |
| priority |
P1, P2, P3 | yes |
| category | free text (revenue, content, research, setup, project) | yes |
| created | YYYY-MM-DD | yes |
| due | YYYY-MM-DD | no |
| parked_until | YYYY-MM-DD | no |
Priority Labels on Board
Use emoji prefixes on the Kanban board for visual priority:
- - 🔴 P1 (urgent)
- 🟡 P2 (normal)
- 🟢 P3 (backlog/parked)
Managing Tasks
Create a Task
- 1. Create a markdown file in the tasks folder with frontmatter
- Add a card to Board.md in the appropriate column:
CODEBLOCK2
Move a Task
- 1. Update
status in the task note's frontmatter - Move the card line in Board.md to the target column
Complete a Task
- 1. Set
status: done in frontmatter - Move to Done column and mark checkbox:
CODEBLOCK3
Always update both Board.md AND the task note frontmatter to keep them in sync.
Linking Documents
Use Obsidian [[wikilinks]] to connect tasks to supporting documents:
CODEBLOCK4
Store referenced documents in a sibling folder (e.g., Research/ next to Tasks/).
Dashboard Queries
The setup script creates a Dataview dashboard. Core queries:
Tasks by priority:
CODEBLOCK5
Overdue tasks:
CODEBLOCK6
Recently completed:
CODEBLOCK7
obsidian-tasks
在Obsidian库中使用看板、Dataview仪表板和结构化任务笔记进行任务管理。
设置
运行设置脚本以在Obsidian库中初始化任务看板:
bash
python3 scripts/setup.py <库路径> [--folder <名称>] [--columns <列1,列2,...>]
- - 库路径: Obsidian库根目录路径
- --folder: 要创建的子文件夹(默认:Tasks)
- --columns: 看板列(默认:待办,进行中,审核,完成)
这将创建:
- - <文件夹>/Board.md - 看板(需要Kanban社区插件)
- <文件夹>/Dashboard.md - Dataview仪表板(需要Dataview社区插件)
如果尚未安装,请告知用户安装Kanban和Dataview社区插件。
任务笔记格式
每个任务都是一个独立的markdown文件,带有YAML前置元数据:
markdown
status: todo
priority: P1
category: revenue
created: 2026-02-03
due: 2026-02-07
任务标题
此处填写描述和备注。
参考资料
状态
前置元数据字段
| 字段 | 值 | 必需 |
|---|
| status | backlog, todo, in-progress, review, done | 是 |
| priority |
P1, P2, P3 | 是 |
| category | 自由文本(revenue, content, research, setup, project) | 是 |
| created | YYYY-MM-DD | 是 |
| due | YYYY-MM-DD | 否 |
| parked_until | YYYY-MM-DD | 否 |
看板上的优先级标签
在看板上使用表情符号前缀进行视觉优先级标记:
- - 🔴 P1(紧急)
- 🟡 P2(正常)
- 🟢 P3(积压/暂停)
管理任务
创建任务
- 1. 在任务文件夹中创建带有前置元数据的markdown文件
- 在Board.md的相应列中添加卡片:
- - [ ] [[任务名称]] 🔴 P1 @{2026-02-07}
移动任务
- 1. 更新任务笔记前置元数据中的status
- 将Board.md中的卡片行移动到目标列
完成任务
- 1. 在前置元数据中设置status: done
- 移动到完成列并勾选复选框:
- - [x] [[任务名称]] ✅ 2026-02-03
始终同时更新Board.md和任务笔记前置元数据以保持同步。
链接文档
使用Obsidian的[[wikilinks]]将任务与支持文档连接:
markdown
参考资料
- - [[2026-02-03-research-report|研究报告]]
- [[meeting-notes-jan|会议记录]]
将引用的文档存储在同级文件夹中(例如,Research/与Tasks/同级)。
仪表板查询
设置脚本会创建一个Dataview仪表板。核心查询:
按优先级查看任务:
dataview
TABLE status, category, due
FROM
WHERE priority = P1 AND status != done
SORT due ASC
逾期任务:
dataview
TABLE priority, category
FROM
WHERE due AND due < date(today) AND status != done
SORT due ASC
最近完成的任务:
dataview
TABLE category
FROM
WHERE status = done
SORT file.mtime DESC
LIMIT 10