一行输入魔法
添加和编辑时,一行文本里的各字段会被自动识别并摘出,剩余的词就是标题。这一页是完整的识别规则手册。
拿不准的时候,用预览命令先看解析结果:
atd preview "后天 买牛奶 很急 @18:30"$ atd preview "后天 买牛奶 很急 @18:30" → 2026-08-23 | 标题:买牛奶 [高] ⏰2026-08-23 18:30(toast)
预览会告诉你:日期解析到哪天、紧急度映射成哪个档位、提醒设在哪、标题是什么。TUI 里输入时输入框下方会实时显示同样的预览,所见即所得。
日期
支持中文和英文两种相对日期写法,以及数字日期。
中文相对日期
| 你写 | 解析为 | 说明 |
|---|---|---|
今天 | 当天 | |
今晚 明晚 | 当天 / 明天 20:00 | 自带默认时间 |
明天 后天 大后天 | +1 / +2 / +3 天 | |
周五 礼拜三 星期日 | 最近的一个周五(含今天) | 今天就是周五时,解析为下周五 |
本周五 | 本周的周五 | 已过则下周 |
下周一 下周三 | 下周的周一 / 周三 | |
周末 | 最近的双休日 | |
8.20 8-20 8/20 | 今年 8 月 20 日 | 三种分隔符等价 |
2026.8.20 2026-08-20 | 指定年份 | |
8月20日 8月20 | 中文数字日期 | |
月底 月初 | 本月最后一天 / 第一天 | |
下月底 下月初 | 下月对应日 | 12 月会正确跨年 |
元旦 五一 十一 国庆 | 最近的该节日 | 过了就明年 |
英文相对日期(大小写不敏感)
| 你写 | 解析为 | 说明 |
|---|---|---|
today | 今天 | |
tonight | 今天 20:00 | |
tomorrow | 明天 10:00 | 自带默认上午时间 |
day after tomorrow | +2 天 | |
next monday next wednesday | 下周的周一 / 周三 | |
this weekend | 最近的双休日 |
实测(preview):
$ atd preview "tomorrow buy milk" → 2026-08-22 10:00 | 标题:buy milk ⏰2026-08-22 09:45(toast) $ atd preview "next monday submit report" → 2026-08-31 | 标题:submit report ⏰2026-08-30 00:00(toast) $ atd preview "tonight 21:00 gym" → 2026-08-21 21:00 | 标题:gym ⏰2026-08-21 20:45(toast) $ atd preview "this weekend retro #work" → 2026-08-22 | 标题:retro #work ⏰2026-08-21 23:45(toast)
注意:英文日期解析是新版本(commit 1fdd82a)引入的特性,旧版本只支持中文日期。
过期日期的规则
数字写法的日期(8.20、8-17、2026.8.20、8月17日)即使已经过去,也按字面保存,不自动推到明年——因为补录历史任务("8-17 读书笔记")是常见需求。它们会落在"逾期"分组里标红。
时间
时间可以和日期组合,也可以单独出现(单独出现时默认今天,已过点则顺延到明天):
| 你写 | 解析为 |
|---|---|
14:30 9:00 | 14:30 / 09:00 |
2:30pm 9am 12pm 12am | 14:30 / 09:00 / 12:00 / 00:00(12 小时制,大小写不敏感,支持 a.m./p.m.) |
晚上8点 | 20:00 |
下午3点半 | 15:30 |
下午3一刻 2点三刻 | 15:15 / 02:45 |
凌晨2点 早上7点 中午12点 | 02:00 / 07:00 / 12:00(中午 1-11 点自动 +12) |
2026-08-20 09:30 | 日期时间一步到位 |
紧急度
两种写法,任选:
自然语言短语(自动映射到档位,中英文均可):
| 写法 | 映射 |
|---|---|
非常急 特别急 特急 很急 比较着急 有点着急 着急 紧急 加急 急 urgent very urgent asap high priority critical | 最高档(默认"高") |
一般般 一般 普通 中等 还行 常规 normal medium regular | 中间档 |
有空再说 慢慢来 不着急 不用急 不急 no rush not urgent low priority someday | 最低档(默认"低") |
短语匹配有词边界保护:中文的"复习急性处理流程"里的"急"不会被当成紧急度;英文的 urgently、urgency 也不会误匹配 urgent。not urgent 会整体识别为"不急",不会被拆成 urgent。
直接写档位名:配置里的档位名(默认 低 中 高,可自定义成 Terra Sol 等)作为独立词出现时被识别。
标签 / 项目 / 父任务 / 等待
| 语法 | 作用 | 案例 |
|---|---|---|
#标签 | 打标签,可多个 | #学习 #采购 |
proj:名字 | 归属项目 | proj:读书 |
^父任务id | 挂为子任务 | ^3fbd8742 |
~日期 | 设 wait:该日期前隐藏,到期浮出 | ~周五 ~9.1 ~next monday ~this weekend |
~ 后面接任何日期写法(中文或英文,含多词英文日期)。配合 waiting 状态就是 org-mode 的经典玩法——"这事现在做不了,先藏起来"。
备注
>> 之后到行尾的整段都作为备注保存,里面的 #、@、proj: 和日期写法都不会再被解析成字段,所以备注里可以放心写任何内容:
atd add "买礼物 明天 >>她说想要那个手账本,别买错型号"| 写法 | 含义 |
|---|---|
>>内容 | 之后到行尾整段是备注 |
>>(单独) | 清空备注 |
重复规则
* 开头写重复规则,中英文写法都认:
| 写法 | 含义 |
|---|---|
*每天 / *daily / *1d | 每天 |
*每2周 / *2w | 每两周 |
*每周三 / *weekly:wed | 每周三 |
*每月 / *monthly | 每月 |
*每年 / *yearly | 每年 |
*工作日 / *weekdays | 每个工作日(跳过周末) |
重复任务完成时会另开一条新任务(新 id),截止日期、等待日期和提醒时间整体往后平移,原任务留在历史里,所以「哪天真的做了」不会被下一次覆盖。按月推进时 31 号遇上短月会压到月末(1 月 31 日 → 2 月 28 日),不会滚到下个月。
提醒
@ 开头设置提醒,可以和日期任意组合:
| 写法 | 含义 |
|---|---|
@18:30 | 任务日期当天 18:30 提醒(纯时间自动锚定任务日期) |
@9:00:toast @9:00:toast,email | 指定用哪些 hook 触发(缺省 toast) |
@周五 @8.20 | 具体日期时间点提醒(缺省 09:00) |
@30m @2h @1d | 相对现在:30 分钟 / 2 小时 / 1 天后 |
默认提醒
新版本(commit 1fdd82a)引入了默认提醒:如果任务设置了未来的截止日期,但没写任何 @ 提醒,atd 会自动补一个 toast 提醒——距截止超过 24 小时提前 1 天,否则提前 15 分钟。
实测(add "后天 还书" 后 show):
$ atd add "后天 还书"
已添加 fb8dfc39 还书
$ atd show fb8dfc39 --json
{
"id": "fb8dfc39",
"title": "还书",
"status": "todo",
"due": "2026-08-23T00:00:00",
"reminders": [
{ "id": "rem-81007b1e8f6a939f", "at": "2026-08-22T00:00", "hooks": ["toast"], "fired": false, "dead": false }
],
...
}due 是 8-23,默认提醒自动补到了 8-22 00:00(提前 1 天)。
关闭默认提醒
不想自动补提醒,用 @none / @off,或写 no reminders:
$ atd preview "下周五 交报告 @none" → 2026-08-28 | 标题:交报告 不加提醒 $ atd preview "next friday submit report no reminders" → 2026-08-28 | 标题:submit report 不加提醒
预览里没有 ⏰ 提醒、并且标了「不加提醒」,说明默认提醒被关闭了。在 edit 里用 -提醒 是另一回事——那是把任务上已有的提醒删掉,预览会写「清空提醒」。
清空字段(edit)
edit 吃同一套一行输入,而且现在能清空字段——以前只能覆盖,加错的日期删不掉:
| 写法 | 含义 |
|---|---|
-due / -日期 | 清掉截止时间 |
-proj / -项目 | 清掉项目 |
-tags / -标签 | 清掉全部标签 |
-#某标签 | 只摘掉这一个标签 |
-priority / -优先级 | 清掉优先级 |
-wait / -等待 | 清掉等待日期 |
-parent / -父 | 清掉父任务关联 |
-notes / -备注,或单写 >> | 清掉备注 |
-recur / -重复 | 清掉重复规则 |
-reminders / @none | 清掉提醒 |
atd edit a1b2 "-due -#临时" # 清掉截止时间,并摘掉 #临时 标签全字段组合案例
一行里所有字段混写,顺序随意:
$ atd preview "下周五 18:30 交季度报告 非常急 #工作 proj:q3 @30m" → 2026-08-28 18:30 | 标题:交季度报告 [高] proj:q3 #工作 ⏰2026-08-21 16:54(toast)
@30m 是相对提醒(从现在起 30 分钟后),与任务日期无关。
拿不准就用 preview
atd preview 是调试解析的最佳工具。TUI 里输入时也会实时显示同样的预览,不用切到命令行。
atd preview "任何 一行 输入" # 看解析结果