← 返回 Skills 市场
qiyuxi24

calender-memo

作者 qiyuxi24 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
245
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install calender-memo
功能描述
本地日程记事本 - 添加、查看、完成和删除待办事项和日程安排。 触发条件:用户需要记录待办事项、安排日程、提醒自己未来的事情。 具体场景:添加会议、记录购物清单、设置提醒、查看今天/未来的安排。 关键词:日程、待办、提醒、安排、备忘、计划、今天有什么、添加任务。
使用说明 (SKILL.md)

日历记事本技能

这是一个本地日程管理工具,可以帮你记住所有待办事项和日程安排。所有数据保存在本地文件 MEMORY.md 中,重启 OpenClaw 也不会丢失。

使用场景

适用:

  • 用户说“添加明天下午3点开会”、“记一下后天买牛奶”
  • 用户问“今天有什么安排”、“我有哪些待办”
  • 用户要“完成第1项”、“删除第2项”
  • 任何需要记录未来某时间要做的事情

不适用:

  • 查询历史天气、股票等外部数据
  • 需要联网搜索的信息
  • 多人协作的共享日历(本技能仅限个人使用)

核心功能与执行流程

1. 添加日程

用户输入示例

  • “添加 明天下午3点 团队周会”
  • “新增 后天上午10点 和李经理开会”
  • “提醒我 周六晚上8点 看直播”

解析规则

  • 去掉前缀“添加”或“新增”后,剩余内容格式为 [时间描述] [事件标题]
  • 时间描述支持:今天/明天/后天 + HH:MM(如“明天下午3点”)
  • 默认时间:如果用户没写时间,默认设置为早上9点

执行步骤

  1. 调用 parseDateTime() 函数解析时间
  2. 创建新事件对象:
    {
      "id": "当前时间戳",
      "title": "用户输入的事件标题",
      "startTime": "解析后的ISO时间",
      "endTime": "开始时间 +1小时",
      "status": "upcoming",
      "reminded": false,
      "reminderOffset": 15
    }
    
安全使用建议
这个技能总体上是做本地日程管理,但实现会在后台每分钟检查并通过本地 openclaw 命令把提醒发送到飞书(external)。在安装/启用前请考虑: - 如果你不希望日程被发送到外部服务,别启用自动提醒(或移除/替换 reminder.js 中的 sendPushNotification)。 - 确认宿主环境是否存在 openclaw CLI 且已配置飞书通道——如果存在,技能会使用该通道发送你的日程内容。技能没有在元数据中声明这一点。 - child_process.exec 被用于构造并执行 shell 命令,存在命令注入风险;建议审查或替换为更安全的调用方式(例如使用 SDK 或明确参数化的系统调用)。 - 如果你信任此技能且需要推送,请确保 agent/平台级别的通道凭据安全;否则只使用本地查看/编辑功能并禁用推送逻辑。 如果你想继续安装且需要更低风险的选项,要求作者或维护者: 1) 在文档中明确声明需要 openclaw 和已配置的飞书通道; 2) 提供配置项以关闭自动推送; 3) 将 exec 调用替换为安全的 API/SDK 调用或严格参数化的子进程调用。
功能分析
Type: OpenClaw Skill Name: calender-memo Version: 1.0.0 The skill contains a critical command injection vulnerability in `reminder.js` due to the insecure use of `child_process.exec`. User-provided event titles are incorporated into a shell command to send notifications via the `openclaw` CLI; while double quotes are escaped, other shell metacharacters (e.g., backticks or `$()`) are not, allowing for arbitrary code execution. Although the code appears to fulfill its stated purpose as a calendar tool without clear evidence of intentional malice, the implementation of the notification system is highly vulnerable.
能力评估
Purpose & Capability
技能名和描述是本地日程记事本,代码实现也确实管理 MEM O RY.md 并支持添加/查看/完成/删除。额外能力是主动推送提醒,这与技能描述的“提醒功能”相符;但实现依赖本地 openclaw CLI 与 feishu 通道(在代码中通过 shell exec 调用),这些依赖没有在声明的要求或说明中明确列出,造成能力与声明的不完全对齐。
Instruction Scope
SKILL.md 声明数据保存在本地并可自动推送提醒,但并没有以细节方式说明会执行系统命令。实际代码使用 child_process.exec 构造并执行 `openclaw message send --channel feishu --recipient current --text "..."`,这会把日程文本发送到外部服务(飞书)。exec 的使用带来命令执行/注入风险(虽然代码对双引号做了简单转义),并且代码在 onStart 时启动每分钟一次的定时器,自动发起外部通信,超出普通“只读本地文件”的范围。
Install Mechanism
没有 install spec(instruction-only + 带代码文件),因此不存在可疑下载或外部依赖安装步骤。代码为本地文件,不会在安装阶段从不明 URL 拉取可执行包。
Credentials
技能未声明任何环境变量或凭据,但会依赖宿主环境存在并已配置的 openclaw CLI 与飞书通道(使用 `--recipient current`)。这意味着日程条目会被发送到外部服务,利用平台/agent 层已有的通道认证;技能没有声明需要或获得这些凭据,用户可能不会意识到日程数据会被外发。
Persistence & Privilege
技能 onStart 会启动一个每分钟执行的定时器来检查并推送提醒(持续运行的后台任务)。虽然技能没有设置 always:true, 但一旦被启用就会保持活跃并周期性进行外部通信,扩大了潜在的暴露面(持续将本地日程主动发送到外部通道)。
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install calender-memo
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /calender-memo 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
calendar_memo 1.0.0 - 初始版本发布 - 支持通过自然语言添加、查看、完成日程和待办事项 - 自动解析时间和事件内容 - 可读取和更新本地 MEMO 数据 - 反馈用户的操作结果
元数据
Slug calender-memo
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

calender-memo 是什么?

本地日程记事本 - 添加、查看、完成和删除待办事项和日程安排。 触发条件:用户需要记录待办事项、安排日程、提醒自己未来的事情。 具体场景:添加会议、记录购物清单、设置提醒、查看今天/未来的安排。 关键词:日程、待办、提醒、安排、备忘、计划、今天有什么、添加任务。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 245 次。

如何安装 calender-memo?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install calender-memo」即可一键安装,无需额外配置。

calender-memo 是免费的吗?

是的,calender-memo 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

calender-memo 支持哪些平台?

calender-memo 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 calender-memo?

由 qiyuxi24(@qiyuxi24)开发并维护,当前版本 v1.0.0。

💬 留言讨论