Tasks 任务管理专题:让勾选框长出大脑
从截止日期到重复任务,从查询过滤到跨笔记汇总,构建你的全仓库任务中枢。
Markdown 自带的 - [ ] 勾选框简单可爱,却缺少日期、优先级、重复这些”任务管理”的灵魂要素。Tasks 插件(由 obsidian-tasks-group 维护)把这些能力以”emoji 字段”的形式嫁接到普通任务行上,再配上一套查询语言,让你能在任意笔记里汇总全仓库的任务。本篇带你从基础语法走到工作流落地。
基本任务语法与增强字段
Tasks 不改动 Markdown 的任务语法,而是在任务行末尾追加”emoji 标记”来承载额外信息。最朴素的任务依然是:
- [ ] 倒垃圾
勾选时把 [ ] 改成 [x] 即可。Tasks 的增强,全靠下面这些 emoji 字段。
日期家族
Tasks 用不同 emoji 区分”什么时候做”和”什么时候发生”两类日期,格式统一为 YYYY-MM-DD:
| 字段 | Emoji | 含义 | 示例 |
|---|---|---|---|
| 截止日期 Due | 📅 | 必须完成的最后期限 | 📅 2026-07-15 |
| 计划日期 Scheduled | ⏳ | 打算哪天做 | ⏳ 2026-07-10 |
| 开始日期 Start | 🛫 | 最早可开始 | 🛫 2026-07-05 |
| 创建日期 Created | ➕ | 任务何时创建 | ➕ 2026-07-02 |
| 完成日期 Done | ✅ | 何时完成(自动) | ✅ 2026-07-09 |
| 取消日期 Cancelled | ❌ | 何时取消(自动) | ❌ 2026-07-09 |
一条完整任务可以同时带多个日期:
- [ ] 写季度报告 🛫 2026-07-05 ⏳ 2026-07-08 📅 2026-07-15
[!tip] 别被日期吓到 你不必每条任务都填满六个日期。多数人只用截止日期 📅 就够了。开启设置里的”自动添加创建日期/完成日期”后,➕ 和 ✅ 会自动补上,无需手填。任务管理的要义是”够用就好”,别过度设计。
优先级
用 emoji 标记优先级,从高到低:
⏫Highest 最高🔼High 高🔽Low 低
- [ ] 救火 ⏫
- [ ] 常规推进 🔼
- [ ] 有空再做 🔽
重复任务
用 🔁 加一条以 every 开头的规则,任务就变成重复任务。完成它时,Tasks 会自动生成下一个周期的任务,并在原任务上打完成标记。
- [ ] 倒垃圾 🔁 every Sunday 📅 2026-07-05
完成上述任务后,文件里会变成:
- [ ] 倒垃圾 🔁 every Sunday 📅 2026-07-12
- [x] 倒垃圾 🔁 every Sunday 📅 2026-07-05 ✅ 2026-07-05
规则很灵活:
every weekday:每个工作日every week:每周every month on the last:每月最后一天(推荐写法,稳定可靠)every 2 weeks:每两周every week when done:以完成日为基准计算下次(而非以原日期为基准)
[!note] 月末的坑 用
every month时,若下个月没有对应的日子(比如 31 号),Tasks 会把日期提前到该月最后一天,而非跳过。若你写every month on the 31st,则会跳过不足 31 天的月份。日常用every month on the last最安全。
查询语法:聚合全仓库任务
Tasks 的精髓在于查询。在任意笔记里写一个 ```text 代码块,就能按条件把全仓库的任务拉到一处。最简单的查询列出所有任务:
```text
```
按状态过滤
```text
not done
```
not done 只看未完成,done 只看已完成。
按日期过滤
## 今天到期
```text
not done
due today
```
## 已逾期
```text
not done
due before today
```
## 未来一周
```text
not done
due after yesterday
due before in 7 days
```
日期支持绝对日期(2026-07-15,也接受 15th July 2026 这类自然语言)和相对日期(today、tomorrow、yesterday、next monday、in two weeks、14 days ago)。
按标签和路径过滤
```text
not done
tags include #工作
path includes 项目/凤凰
```
description includes 关键词 还能按任务文本过滤。多个条件默认是”与”关系,用 AND/OR/NOT 组合:
```text
not done
(path includes 项目) AND NOT (tags include #someday)
```
按优先级过滤
```text
not done
priority is highest
```
可选 highest、high、medium、low,以及 priority is above medium、priority is below high 等比较。
排序、分组、限量
```text
not done
due before in 7 days
sort by priority desc
sort by due asc
group by due
limit 20
```
可按 due、scheduled、start、priority、path、status、created 等排序与分组,limit 限制结果数量。查询指令大小写不敏感(Due today 与 due today 等效),唯独 AND/OR/NOT 必须大写。
[!tip] 用 callout 包裹查询 把
tasks代码块放进> [!check]这类 callout 里,能给任务清单套上一层好看的边框和标题,做仪表盘时特别整齐。
跨笔记任务汇总
这是 Tasks 最让人上头的用法。在工作笔记里放一个”今日聚焦”查询,在周报里放一个”本周到期”查询,在项目页里放一个”该项目未完成任务”查询——同一批任务,在不同视图里各司其职,而数据源只有一份。
## 项目凤凰 · 待办
```text
not done
path includes 项目/凤凰
sort by due
```
与日历、看板工作流组合
Tasks + Calendar:Calendar 插件管”哪天写日记”,Tasks 查询管”那天的任务”。日记模板里放一段 due today 查询,每天打开日记,当天该做的事自动列好。
Tasks + 看板(Kanban):用看板笔记按”待办/进行中/完成”分列,每列配一段 Tasks 查询,比如进行中列用 tags include #进行中 AND not done。拖拽改状态即改标签,视图随之刷新。
Tasks + Dataview:需要更复杂的统计(比如”本月完成了多少高优任务”)时,可用 Dataview 的 TASK 查询配合 WHERE 条件,或用 filter by function 这类 Tasks 高阶能力做自定义过滤。
Tasks 的妙处在于:它没有发明新文件类型,而是让每一条普通的 Markdown 任务都”可被检索、可被聚合”。你的任务既留在它该在的笔记里(项目页、日记、会议纪要),又能被任意视图召集成军。从今天起,试着在日记里写第一条带 📅 的任务,再放一个 due today 查询——你会发现,管理待办这件事,终于和记笔记合二为一了。