From headless-knight
Creates reminders and calendar events from natural language inputs mentioning future tasks, appointments, or events (e.g., 'remind me', 'don't forget', time-based phrases). Parses details, converts times to English formats, and calls Node.js script via Bash.
npx claudepluginhub lostabaddon/headlessknightThis skill uses the workspace's default tool permissions.
此技能可从自然语言输入中智能创建提醒和日历事件。
Schedules one-time and recurring reminders using natural language by creating cron jobs and logging to markdown. Useful for task reminders in terminal sessions.
Manages persistent scheduled reminders (crons): list, add from natural language (English/Spanish), delete, pause, resume, reconcile, import from OpenClaw. Auto-activates on reminder phrases.
Creates macOS Calendar events with tiered sound alarms and paired Reminders. Use for scheduling meetings, RSVPing invitations, or setting reminders.
Share bugs, ideas, or general feedback.
此技能可从自然语言输入中智能创建提醒和日历事件。
在用户执行以下操作时激活此技能:
当触发此技能时,你有责任实际调用 shell 脚本,而不是仅仅说明如何做。
分析用户消息以提取(可能不止一组):
关键点:完成此解析后,立即进行第 2 步(调用工具)。不要仅停留在解析阶段。
对于识别出的每个提醒,必须使用 Bash 工具调用 node 并让它调用 ./create-reminder.js 脚本来发送提醒与日历事件请求。
重要:不仅仅是说明要创建提醒,而是要实际调用此脚本。
脚本路径:
./create-reminder.js脚本参数:
执行方式:
--time 参数已转换为英文格式(按照下面"时间解析指南"中的转换规则)node /path/to/create-reminder.js --title="标题" --message="消息" --time="时间"调用完成后,检查脚本的输出。脚本会返回确认信息,包括提醒 ID 和计划时间。
根据脚本的输出,确认用户的提醒已创建。告知用户:
用户:"30 分钟后提醒我给 John 打电话"
你应该做的:
node ${CLAUDE_PLUGIN_ROOT}/skills/reminder/create-reminder.js --title="给 John 打电话" --message="给 John 打电话" --time="in 30 minutes"
用户:"我今天下午 2 点有个会,5 点前需要提交报告"
你应该做的:
识别两个事件
实际调用脚本两次:
第一个提醒:
node ${CLAUDE_PLUGIN_ROOT}/skills/reminder/create-reminder.js --title="会议" --message="参加预定会议" --time="2025-11-24T14:00:00"
第二个提醒:
node ${CLAUDE_PLUGIN_ROOT}/skills/reminder/create-reminder.js --title="提交报告" --message="提交报告" --time="2025-11-24T17:00:00"
等待两个脚本都返回结果
确认两个提醒都已创建
用户:"别让我忘了 45 分钟后把蛋糕从烤箱拿出来!"
你应该做的:
node ${CLAUDE_PLUGIN_ROOT}/skills/reminder/create-reminder.js --title="把蛋糕从烤箱拿出来" --message="从烤箱取出蛋糕" --time="in 45 minutes"
⚠️ 关键提醒:create-reminder.js 脚本仅接受英文时间格式。如果你传递中文时间格式,脚本会返回错误。
必须执行:用户可能用中文表达时间,你必须在调用脚本之前转换为英文格式。
第 1 步:将中文数字转换为阿拉伯数字:
第 2 步:将中文时间单位转换为英文单词:
第 3 步:组合成脚本要求的格式:"in {数字} {英文单位}"
"in 10 seconds""in 30 minutes"用户说:"十秒后提醒我"
--time="in 10 seconds"用户说:"半小时后提醒"
--time="in 30 minutes"用户说:"2小时后提醒"
--time="in 2 hours"用户说:"一周后提醒我"
--time="in 1 week"用户说:"三个月后提醒"
--time="in 3 months"用户说:"明年这个时候提醒我"
--time="in 1 year"用户说:"明天下午3点"
将自然语言转换为 ISO 格式:
始终考虑:
当用户询问"我有哪些提醒?"或"显示我即将到来的事件"时,可以通过以下方式查看:
cccore-client list-reminders当用户想取消特定提醒时,可以使用 CCCore 的客户端命令:
cccore-client cancel-reminder <reminder-id>必须调用脚本:这不是可选的!当用户请求提醒时,你必须实际使用 Bash 工具调用 create-reminder.js 脚本。如果你只是说明你会做什么而不实际调用脚本,用户不会收到提醒。
时间格式必须是英文:⚠️ 关键:无论用户用什么语言输入,传给脚本的 --time 参数必须是英文格式:
"in 10 seconds"、"in 30 minutes"、"in 2 hours"、"in 1 day"、"in 2 weeks"、"in 1 month"、"in 1 year"、"2025-11-24T15:30:00""十秒后"、"一小时"、"半小时后"、"一周后"、"三个月后"、"一年后"依赖 CCCore:此脚本通过 Socket IPC 与 CCCore 守护进程通信。确保:
系统通知:提醒将显示为系统级警报,由 CCCore 守护进程处理。该过程是完全自动化的,你不需要手动触发通知。
持久化:提醒存储在 CCCore 的数据文件中(~/.cccore-reminders/reminders.json),在重启后仍然存在。
多个提醒:如果用户提到多个事件,为每个事件分别调用脚本创建提醒。
确认:等待脚本返回结果后,再确认创建了什么以及何时触发。
脚本路径:脚本的绝对路径为 ${CLAUDE_PLUGIN_ROOT}/skills/reminder/create-reminder.js,使用 node 命令执行。
如果用户说没有收到提醒,可能的原因:
脚本未被调用:检查 Claude Code 是否实际调用了 Bash 工具执行脚本。如果没有看到脚本执行,这就是问题所在。
CCCore 守护进程未运行:脚本依赖 CCCore 守护进程。
时间格式错误(最常见的原因):⚠️ 检查传递给脚本的 --time 参数是否为英文格式:
"in 10 seconds"、"in 30 minutes"、"in 2 hours"、"in 1 day"、"in 2 weeks"、"in 1 month"、"in 1 year"、"2025-11-24T15:30:00""十秒后"、"一小时"、"半小时"、"一周后"、"三个月后"、"一年后"时间转换失败:如果无法将中文时间转换为英文:
参数缺失:确保提供了所有必需参数:--title、--message、--time
如果脚本返回错误(通常是时间格式错误):
notify-send 已安装~/.cccore-reminders/reminders.json