Skip to content

一行输入魔法 ​

添加和编辑时,一行文本里的各字段会被自动识别并摘出,剩余的词就是标题。这一页是完整的识别规则手册。

拿不准的时候,用预览命令先看解析结果:

bash
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:0014:30 / 09:00
2:30pm 9am 12pm 12am14: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: 和日期写法都不会再被解析成字段,所以备注里可以放心写任何内容:

bash
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清掉提醒
bash
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 里输入时也会实时显示同样的预览,不用切到命令行。

bash
atd preview "任何 一行 输入"    # 看解析结果

下一步 ​

anothertodo — 轻量命令行 TODO 工具