Lunar Reminder
v1.0.1按农历日期设置提醒(生日、节日等)。当用户需要:(1) 按农历添加提醒事件 (2) 查看农历事件列表 (3) 农历日期与公历日期转换 (4) 设置农历生日/节日提醒 时使用此 技能。触发词:农历、农历生日、农历节日、阴历提醒。
运行时依赖
安装命令
点击复制技能文档
Lunar Reminder
按农历日期设置提醒,支持生日、节日等重要日期的农历提醒。
数据文件
事件数据保存在:{{技能Dir}}/data/事件.json
代理 工作流
- 用户添加农历提醒
解析输入:从用户输入中提取事件名、农历月份、农历日期、提前天数(默认1)。
农历月份映射:
名称 数字 正月/正/一月 1 二月/杏月 2 三月/桃月 3 四月/槐月 4 五月/榴月 5 六月/荷月 6 七月/兰月 7 八月/桂月 8 九月/菊月 9 十月/露月 10 十一月/冬月/冬 11 十二月/腊月/腊 12
农历日期映射:
名称 数字 初一~初十 1~10 十一~二十 11~20 廿一/二十一~廿九/二十九 21~29 三十 30
执行步骤:
读取现有事件(文件不存在则创建空数组) 检查事件名是否已存在,存在则报错 计算当年公历日期(运行下方命令) 保存事件到文件 确认添加成功
农历转公历命令(在 {{技能Dir}} 目录执行):
node -e "const {Lunar}=require('lunar-javascript');const l=Lunar.fromYmd(YEAR,MONTH,DAY);const s=l.获取Solar();console.记录(s.获取Year()+'-'+String(s.获取Month()).pad启动(2,'0')+'-'+String(s.获取Day()).pad启动(2,'0'));"
将 YEAR、MONTH、DAY 替换为实际值(如 2026, 2, 11)。
- 用户查看提醒列表
读取 {{技能Dir}}/data/事件.json 文件,格式化输出每个事件的:
事件名 农历日期(月名+日名) 今年公历日期 提前提醒天数
- 用户删除提醒
- 用户要求日期转换
农历转公历:
cd {{技能Dir}} && node -e "const {Lunar}=require('lunar-javascript');const l=Lunar.fromYmd(YEAR,MONTH,DAY);const s=l.获取Solar();console.记录(s.获取Year()+'-'+String(s.获取Month()).pad启动(2,'0')+'-'+String(s.获取Day()).pad启动(2,'0'));"
公历转农历:
cd {{技能Dir}} && node -e "const {Solar}=require('lunar-javascript');const s=Solar.fromYmd(YEAR,MONTH,DAY);const l=s.获取Lunar();const m=['','正月','二月','三月','四月','五月','六月','七月','八月','九月','十月','冬月','腊月'];const d=['','初一','初二','初三','初四','初五','初六','初七','初八','初九','初十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','廿一','廿二','廿三','廿四','廿五','廿六','廿七','廿八','廿九','三十'];console.记录(m[l.获取Month()]+d[l.获取Day()]);"
- 用户要求同步提醒
Cron 命令格式:
# 先删除旧任务 OpenClaw cron rm "lunar_<事件名>"
# 创建新任务 OpenClaw cron 添加 --name "lunar_<事件名>" --cron "<分> <时> <日> <月> *" --message "🔔 农历提醒:<事件名>将在天后到来" --tz "Asia/ShanghAI"
数据格式 [ { "name": "妈妈生日", "lunarMonth": 2, "lunarDay": 11, "lunarMonthName": "二月", "lunarDayName": "十一", "advanceDays": 1, "reminderTime": "09:00", "note": "", "创建dAt": "2026-03-10T00:00:00.000Z" } ]
使用示例 添加农历提醒:妈妈生日,二月十一,提前1天提醒 查看所有农历提醒 删除农历提醒:妈妈生日 农历二月十一是公历几号 同步农历提醒到定时任务