# Reminder

> 当用户提到需要记住的未来任务、约会或事件时创建提醒和日历事件。在诸如"提醒我"、"设置提醒"、"我有个会"、"别忘了"或任何提及未来基于时间的任务时触发。

- Skill: `majiayu000/reminder-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/reminder-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/reminder-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/reminder-2

---


# 提醒与日历事件技能

此技能可从自然语言输入中智能创建提醒和日历事件。

## 何时使用

在用户执行以下操作时激活此技能：
- 明确要求设置提醒（"提醒我..."、"设置一个提醒..."）
- 提到带有时间的未来任务（"我下午 3 点有个会"）
- 表达需要记住某事（"别忘了..."、"我需要..."）
- 讨论带有时间信息的即将到来的事件或约会

**当触发此技能时，你有责任实际调用 MCP 工具，而不是仅仅说明如何做。**

## 使用方法

### 步骤 1：解析用户输入

分析用户消息以提取（可能不止一组）：
1. **标题**：需要记住的事情的简短描述
2. **消息**：详细信息（可选，可以与标题相同）
3. **时间**：提醒应何时触发

**关键点**：完成此解析后，立即进行第 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"
  - ⚠️ **禁止**传递中文时间格式如"十秒"、"一小时"等，必须先转换为英文

**执行方式**：
1. 调用此工具时，将其作为真实的工具调用处理，而不是模拟或说明
2. **确保 `time` 参数已转换为英文格式**（按照下面"时间解析指南"中的转换规则）
3. 传递给工具的所有参数都必须符合上述格式

### 步骤 3：实际调用工具

调用完成后，等待 MCP 工具的响应。工具会返回确认信息，包括提醒 ID 和计划时间。

### 步骤 4：确认创建

根据 MCP 工具的响应，确认用户的提醒已创建。告知用户：
- 设置了什么
- 何时触发
- 系统通知将在指定时间自动显示

## 示例

### 示例 1：单个提醒
**用户**："30 分钟后提醒我给 John 打电话"

**你应该做的**：
1. 解析输入：标题="给 John 打电话"，时间="in 30 minutes"
2. **实际调用工具**（不仅仅是说明）：`mcp__reminder-skill__reminder-service__create_reminder`
   - title: "给 John 打电话"
   - message: "给 John 打电话"
   - time: "in 30 minutes"
3. 等待工具返回结果
4. 告诉用户："✅ 已设置提醒，30 分钟后你会收到通知"

### 示例 2：多个事件
**用户**："我今天下午 2 点有个会，5 点前需要提交报告"

**你应该做的**：
1. 识别两个事件
2. **实际调用工具**两次：

   **第一个提醒**：`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. 等待两个工具都返回结果
4. 确认两个提醒都已创建

### 示例 3：相对时间
**用户**："别让我忘了 45 分钟后把蛋糕从烤箱拿出来！"

**你应该做的**：
1. 解析输入：标题="把蛋糕从烤箱拿出来"，时间="in 45 minutes"
2. **实际调用工具**：`mcp__reminder-skill__reminder-service__create_reminder`
   - title: "把蛋糕从烤箱拿出来"
   - message: "从烤箱取出蛋糕"
   - time: "in 45 minutes"
3. 等待工具返回结果
4. 告诉用户："✅ 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"`**

#### 具体转换例子（展示完整过程）
- 用户说："十秒后提醒我"
  1. 解析：时间部分 = "十秒后"
  2. 转换数字："十" → 10
  3. 转换单位："秒" → "seconds"
  4. **最终传给工具：`time: "in 10 seconds"`**

- 用户说："半小时后提醒"
  1. 解析：时间部分 = "半小时后"
  2. 转换数字："半" → 30（分钟）
  3. 转换单位："小时" → "minutes"
  4. **最终传给工具：`time: "in 30 minutes"`**

- 用户说："2小时后提醒"
  1. 解析：时间部分 = "2小时后"
  2. 转换数字：2（已是数字）
  3. 转换单位："小时" → "hours"
  4. **最终传给工具：`time: "in 2 hours"`**

- 用户说："一周后提醒我"
  1. 解析：时间部分 = "一周后"
  2. 转换数字："一" → 1
  3. 转换单位："周" → "weeks"
  4. **最终传给工具：`time: "in 1 week"`**

- 用户说："三个月后提醒"
  1. 解析：时间部分 = "三个月后"
  2. 转换数字："三" → 3
  3. 转换单位："个月" → "months"
  4. **最终传给工具：`time: "in 3 months"`**

- 用户说："明年这个时候提醒我"
  1. 解析：时间部分 = "一年后"
  2. 转换数字："一" → 1
  3. 转换单位："年" → "years"
  4. **最终传给工具：`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`。

## 重要说明

1. **必须调用工具**：这不是可选的！当用户请求提醒时，你**必须**实际调用 `mcp__reminder-skill__reminder-service__create_reminder` 工具。如果你只是说明你会做什么而不实际调用工具，用户不会收到提醒。

2. **时间格式必须是英文**：⚠️ **关键**：无论用户用什么语言输入，传给 MCP 工具的 `time` 参数**必须是英文格式**：
   - ✅ 正确格式：`"in 10 seconds"`、`"in 30 minutes"`、`"2025-10-29T15:30:00"`
   - ❌ 错误格式：`"十秒后"`、`"一小时"`、`"半小时后"`
   - 如果你传递中文时间格式，工具会返回错误，提醒不会被创建！
   - **必须按照"时间解析指南"（第 108-154 行）进行转换**

3. **非阻塞**：MCP 服务器处理后台调度。永远不要使用 sleep 或阻塞操作。

4. **系统通知**：提醒将显示为系统级警报，即使在全屏应用中也能工作。该过程是完全自动化的，你不需要手动触发通知。

5. **持久化**：提醒在 Claude Code 重启后仍然存在 - 它们被持久存储。

6. **多个提醒**：如果用户提到多个事件，为每个事件创建单独的提醒。

7. **确认**：等待工具返回结果后，再确认创建了什么以及何时触发。

8. **工具可用性**：这些工具(`mcp__reminder-skill__reminder-service__create_reminder`、`mcp__reminder-skill__reminder-service__list_reminders`、`mcp__reminder-skill__reminder-service__cancel_reminder`)应该始终可用。如果收到"工具未找到"错误，可能是 MCP 服务器未正确启动。

## 故障排除与常见问题

### 提醒未创建？

如果用户说没有收到提醒，可能的原因：

1. **MCP 工具未被调用**：检查 Claude Code 是否实际调用了工具（会显示工具调用）。如果没有看到工具调用，这就是问题所在。

2. **时间格式错误（最常见的原因）**：⚠️ 检查传递给工具的 `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 行）进行转换

3. **时间转换失败**：如果无法将中文时间转换为英文：
   - 向用户请求更清晰的时间表达
   - 提供示例："请说'10秒后'、'30分钟后'、'2小时后'、'1周后'、'3个月后'或'1年后'这样的格式"
   - 参考"时间解析指南"中的转换规则（第 116-174 行）

4. **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` 已安装

