| name | reminder |
| description | 当用户提到需要记住的未来任务、约会或事件时创建提醒和日历事件。在诸如"提醒我"、"设置提醒"、"我有个会"、"别忘了"或任何提及未来基于时间的任务时触发。 |
提醒与日历事件技能
此技能可从自然语言输入中智能创建提醒和日历事件。
何时使用
在用户执行以下操作时激活此技能:
- 明确要求设置提醒("提醒我..."、"设置一个提醒...")
- 提到带有时间的未来任务("我下午 3 点有个会")
- 表达需要记住某事("别忘了..."、"我需要...")
- 讨论带有时间信息的即将到来的事件或约会
当触发此技能时,你有责任实际调用 MCP 工具,而不是仅仅说明如何做。
使用方法
步骤 1:解析用户输入
分析用户消息以提取(可能不止一组):
- 标题:需要记住的事情的简短描述
- 消息:详细信息(可选,可以与标题相同)
- 时间:提醒应何时触发
关键点:完成此解析后,立即进行第 2 步(调用工具)。不要仅停留在解析阶段。
步骤 2:创建提醒
对于识别出的每个提醒,必须使用 mcp__reminder-skill__reminder-service__create_reminder 工具(这是一个已注册的 MCP 工具)。
重要:不仅仅是说明要创建提醒,而是要实际调用此工具。
工具参数为:
- title:简洁摘要(例如,"团队会议"、"给妈妈打电话")
- message:附加详情或上下文
- time:必须是以下英文格式之一(MCP 服务器仅接受英文):
- 相对时间(英文):"in 10 seconds"、"in 30 minutes"、"in 2 hours"、"in 1 day"、"in 2 weeks"、"in 1 month"、"in 1 year"
- 绝对时间:ISO 格式,如 "2025-10-29T15:30:00"
- ⚠️ 禁止传递中文时间格式如"十秒"、"一小时"等,必须先转换为英文
执行方式:
- 调用此工具时,将其作为真实的工具调用处理,而不是模拟或说明
- 确保
time参数已转换为英文格式(按照下面"时间解析指南"中的转换规则) - 传递给工具的所有参数都必须符合上述格式
步骤 3:实际调用工具
调用完成后,等待 MCP 工具的响应。工具会返回确认信息,包括提醒 ID 和计划时间。
步骤 4:确认创建
根据 MCP 工具的响应,确认用户的提醒已创建。告知用户:
- 设置了什么
- 何时触发
- 系统通知将在指定时间自动显示
示例
示例 1:单个提醒
用户:"30 分钟后提醒我给 John 打电话"
你应该做的:
- 解析输入:标题="给 John 打电话",时间="in 30 minutes"
- 实际调用工具(不仅仅是说明):
mcp__reminder-skill__reminder-service__create_reminder- title: "给 John 打电话"
- message: "给 John 打电话"
- time: "in 30 minutes"
- 等待工具返回结果
- 告诉用户:"✅ 已设置提醒,30 分钟后你会收到通知"
示例 2:多个事件
用户:"我今天下午 2 点有个会,5 点前需要提交报告"
你应该做的:
识别两个事件
实际调用工具两次:
第一个提醒:
mcp__reminder-skill__reminder-service__create_reminder- title: "会议"
- message: "参加预定会议"
- time: "2025-10-29T14:00:00"
第二个提醒:
mcp__reminder-skill__reminder-service__create_reminder- title: "提交报告"
- message: "提交报告"
- time: "2025-10-29T17:00:00"
等待两个工具都返回结果
确认两个提醒都已创建
示例 3:相对时间
用户:"别让我忘了 45 分钟后把蛋糕从烤箱拿出来!"
你应该做的:
- 解析输入:标题="把蛋糕从烤箱拿出来",时间="in 45 minutes"
- 实际调用工具:
mcp__reminder-skill__reminder-service__create_reminder- title: "把蛋糕从烤箱拿出来"
- message: "从烤箱取出蛋糕"
- time: "in 45 minutes"
- 等待工具返回结果
- 告诉用户:"✅ 45 分钟后我会提醒你"
时间解析指南
⚠️ 关键提醒:MCP 服务器仅接受英文时间格式。如果你传递中文时间格式,工具会返回错误。
相对时间转换
必须执行:用户可能用中文表达时间,你必须在调用工具之前转换为英文格式。
中文到英文转换规则(必须按此规则执行)
第 1 步:将中文数字转换为阿拉伯数字:
- "十" → 10、"一" → 1、"二" → 2、"三" → 3、"四" → 4、"五" → 5、"六" → 6、"七" → 7、"八" → 8、"九" → 9
- "两" / "二" → 2、"半" → 0.5(30分钟时为 30)
- "十秒" → 10秒、"一分钟" → 1分钟、"两小时" → 2小时、"三周" → 3周、"四个月" → 4月、"五年" → 5年
第 2 步:将中文时间单位转换为英文单词:
- "秒" / "秒后" → "seconds"
- "分钟" / "分钟后" / "分" → "minutes"
- "小时" / "小时后" / "钟头" → "hours"
- "天" / "天后" → "days"
- "周" / "星期" / "周后" → "weeks"(注意:1周 = 7天)
- "月" / "个月" / "月后" → "months"(注意:1月按30天计算)
- "年" / "年后" → "years"(注意:1年按365天计算)
第 3 步:组合成 MCP 要求的格式:"in {数字} {英文单位}"
- 中文:"十秒后" → 阿拉伯数字:"10秒" → 英文:"seconds" → 最终格式:
"in 10 seconds" - 中文:"半小时后" → 阿拉伯数字:"30分钟" → 英文:"minutes" → 最终格式:
"in 30 minutes"
具体转换例子(展示完整过程)
用户说:"十秒后提醒我"
- 解析:时间部分 = "十秒后"
- 转换数字:"十" → 10
- 转换单位:"秒" → "seconds"
- 最终传给工具:
time: "in 10 seconds"
用户说:"半小时后提醒"
- 解析:时间部分 = "半小时后"
- 转换数字:"半" → 30(分钟)
- 转换单位:"小时" → "minutes"
- 最终传给工具:
time: "in 30 minutes"
用户说:"2小时后提醒"
- 解析:时间部分 = "2小时后"
- 转换数字:2(已是数字)
- 转换单位:"小时" → "hours"
- 最终传给工具:
time: "in 2 hours"
用户说:"一周后提醒我"
- 解析:时间部分 = "一周后"
- 转换数字:"一" → 1
- 转换单位:"周" → "weeks"
- 最终传给工具:
time: "in 1 week"
用户说:"三个月后提醒"
- 解析:时间部分 = "三个月后"
- 转换数字:"三" → 3
- 转换单位:"个月" → "months"
- 最终传给工具:
time: "in 3 months"
用户说:"明年这个时候提醒我"
- 解析:时间部分 = "一年后"
- 转换数字:"一" → 1
- 转换单位:"年" → "years"
- 最终传给工具:
time: "in 1 year"
用户说:"明天下午3点"
- 这不是相对时间格式,使用下面的绝对时间规则,转换为 ISO 格式
相对时间
- "in X seconds":秒级提醒
- "in X minutes":分钟级提醒
- "in X hours":小时级提醒
- "in X days":天级提醒
- "in X weeks":周级提醒(1周 = 7天)
- "in X months":月级提醒(1月 = 30天)
- "in X years":年级提醒(1年 = 365天)
绝对时间
将自然语言转换为 ISO 格式:
- "今天下午 3 点" → 计算当前日期下午 3 点的 ISO 日期时间
- "明天上午 9 点" → 计算次日上午 9 点的 ISO 日期时间
- "下周一下午 2 点" → 计算下周一下午 2 点的 ISO 日期时间
当前上下文
始终考虑:
- 今天的日期:检查系统上下文获取当前日期/时间
- 用户的时区:使用本地时间进行计算
- 默认时间:如果未指定时间,询问用户或建议合理的默认值
其他工具
列出活动提醒
当用户询问"我有哪些提醒?"或"显示我即将到来的事件"时,使用 mcp__reminder-skill__reminder-service__list_reminders 显示所有活动提醒。
取消提醒
当用户想取消特定提醒时,使用带有提醒 ID 的 mcp__reminder-skill__reminder-service__cancel_reminder。
重要说明
必须调用工具:这不是可选的!当用户请求提醒时,你必须实际调用
mcp__reminder-skill__reminder-service__create_reminder工具。如果你只是说明你会做什么而不实际调用工具,用户不会收到提醒。时间格式必须是英文:⚠️ 关键:无论用户用什么语言输入,传给 MCP 工具的
time参数必须是英文格式:- ✅ 正确格式:
"in 10 seconds"、"in 30 minutes"、"2025-10-29T15:30:00" - ❌ 错误格式:
"十秒后"、"一小时"、"半小时后" - 如果你传递中文时间格式,工具会返回错误,提醒不会被创建!
- 必须按照"时间解析指南"(第 108-154 行)进行转换
- ✅ 正确格式:
非阻塞:MCP 服务器处理后台调度。永远不要使用 sleep 或阻塞操作。
系统通知:提醒将显示为系统级警报,即使在全屏应用中也能工作。该过程是完全自动化的,你不需要手动触发通知。
持久化:提醒在 Claude Code 重启后仍然存在 - 它们被持久存储。
多个提醒:如果用户提到多个事件,为每个事件创建单独的提醒。
确认:等待工具返回结果后,再确认创建了什么以及何时触发。
工具可用性:这些工具(
mcp__reminder-skill__reminder-service__create_reminder、mcp__reminder-skill__reminder-service__list_reminders、mcp__reminder-skill__reminder-service__cancel_reminder)应该始终可用。如果收到"工具未找到"错误,可能是 MCP 服务器未正确启动。
故障排除与常见问题
提醒未创建?
如果用户说没有收到提醒,可能的原因:
MCP 工具未被调用:检查 Claude Code 是否实际调用了工具(会显示工具调用)。如果没有看到工具调用,这就是问题所在。
时间格式错误(最常见的原因):⚠️ 检查传递给工具的
time参数是否为英文格式:- ✅ 正确格式(英文):
"in 10 seconds"、"in 30 minutes"、"in 2 hours"、"in 1 day"、"in 2 weeks"、"in 1 month"、"in 1 year"、"2025-10-29T15:30:00" - ❌ 错误格式(中文):
"十秒后"、"一小时"、"半小时"、"一周后"、"三个月后"、"一年后"、"2025-10-29T15:30后" - 如果工具返回错误消息如"Invalid time format",一定是时间格式不是英文
- 解决方案:按照"时间解析指南"(第 108-154 行)进行转换
- ✅ 正确格式(英文):
时间转换失败:如果无法将中文时间转换为英文:
- 向用户请求更清晰的时间表达
- 提供示例:"请说'10秒后'、'30分钟后'、'2小时后'、'1周后'、'3个月后'或'1年后'这样的格式"
- 参考"时间解析指南"中的转换规则(第 116-174 行)
MCP 服务器未启动:这通常在 Claude Code 启动时自动处理。如果问题持续,建议重启 Claude Code。
时间解析失败
如果 MCP 工具返回错误(通常是时间格式错误):
- 首先检查是否传递了中文时间格式(这会导致错误)
- 应该已经按照"时间解析指南"(第 116-174 行)转换为英文格式
- 如果转换有困难,向用户请求澄清
- 建议用户使用英文格式如"in 30 minutes"、"in 2 weeks"、"in 1 month"或具体时间"2025-10-29T15:30:00"
- 提供有效时间格式的示例(参考第 236 行的正确格式列表)
提醒已创建但未显示通知
- 检查系统通知设置是否已启用
- macOS:系统设置 > 通知 > Claude Code
- Windows:设置 > 系统 > 通知
- Linux:确保
notify-send已安装