wpsnote/wpsnote-skills/note-calendar
Claude Code and agent skill by wpsnote/wpsnote-skills
- community
Checking that the SKILL.md file is still in the repository.
在 macOS 上打通 WPS 笔记与系统日历。支持查询日程、创建/移动/删除日历事件,以及笔记与日历的双向联动:把今日日程整理成笔记规划页、从笔记中提取事项落入日历、根据明日事件推断今日前置准备、全局时间块规划、收集散落各处的待办 checkbox。仅支持 macOS。当用户说「帮我查日程」「看看我的日历」「今天有什么安排」「日程写到笔记」「把笔记里的计划加进日历」「明天要出发今天准备什么」「帮我规划今天」「整理我的 TODO」时使用。
Install
npx vskill@latest install wpsnote/wpsnote-skills/note-calendarSKILL.md
Note Calendar
前置检查(每次必须执行)
1. OS 检查
返回不是 Darwin 则立即终止:此 Skill 仅支持 macOS,当前系统不兼容。
2. 笔记工具检查
CLI_OK:全程使用wpsnote-cli命令CLI_FAIL:降级到user-wpsnoteMCP 工具调用
确定模式后,后续所有笔记操作保持一致。
日历脚本(bin/)
所有脚本通过 osascript 操作 macOS Calendar App,首次运行因 iCloud 同步可能需要 30-60 秒。
功能模式
五种模式,根据用户说法自动判断:
| 用户说的话 | 进入模式 | |
|---|---|---|
| 「查日程」「今天有什么」「帮我看下周安排」 | 模式 A:纯日历查询 | |
| 「日程写到笔记」「今日规划」「帮我管今天日程」 | 模式 B:日历 → 笔记 | |
| 「根据笔记帮我加日程」「笔记里有 xxx 排进去」 | 模式 C:笔记 → 日历 | |
| 「明天要 xxx 今天要准备什么」「帮我前置一下」 | 模式 D:智能前置 | |
| 「帮我规划今天」「今天下午很满帮我排上午」 | 模式 E:全局规划 | |
| 「整理 TODO」「收集所有待办」 | 模式 F:TODO 汇总 | |
| 说法不明确 | 列出六个模式让用户选 |
笔记写入格式参考docs/note-templates.md
模式 A:纯日历查询
直接调用 cal-query,返回结果格式化输出即可,不写笔记。
模式 B:日历 → 笔记
把今天日程整理成结构化规划页写入笔记。
- 查询日程:
``bash cal-query today # 今天 cal-query tomorrow # 明天(用于生成前置建议) ``
- 对每个事件标题搜索关联笔记:
- CLI:
wpsnote-cli find --keyword "<事件关键词>" --limit 3 --json - MCP:
search_notes(keyword="<事件关键词>", limit=3)
- 确认写入位置:
- CLI:
wpsnote-cli current --json/ MCP:get_current_note() - 有打开的笔记 → 询问「写入当前笔记,还是新建?」
- 无 → 新建:
wpsnote-cli create --title "📋 今日规划 YYYY-MM-DD" --json
- 按
docs/note-templates.md模式 B 结构写入
- 输出摘要:
✓ 今日规划已写入「📋 今日规划 YYYY-MM-DD」|日程 N 条 | 关联笔记 N 篇
模式 C:笔记 → 日历
从当前笔记提取有时间意图的内容,确认后写入日历。
- 读取当前笔记:
- CLI:
wpsnote-cli current --json→wpsnote-cli read --note_id <id> --json - 大文档:
wpsnote-cli outline+wpsnote-cli search --query "计划|打算|明天|下周|时间" - MCP:
get_current_note()→read_note或get_note_outline+search_note_content
- 识别可落日历的内容:
- ✅ 明确时间 + 事项:「3月25日 15:00 产品评审」
- ✅ 相对时间 + 事项:「下周二开周会」「明天下午复习」
- ✅ TODO + 截止时间:
- [ ] 提交报告(周五前) - ✅ 计划关键词:「计划明天...」「打算下周...」
- ❌ 不识别:历史记录、数据里的时间(「版本 1.0 于 2024 年」)
- 必须先确认,再写入:
``` 📌 在「[笔记标题]」中识别到以下可落日历的事项:
- ✅ 产品评审 — 2026-03-25 15:00-16:00
- ⚠ 时间模糊:「下周提交报告」— 请补充具体时间
确认哪些写入日历?(回复「全部」或编号) ```
- 写入:
cal-add "<标题>" "<start>" "<end>",成功后在笔记对应 block 追加标注
模式 D:智能前置
根据未来事件推断今天需要做的准备。
- 拉取未来 3 天日程:
cal-query today/cal-query tomorrow/cal-query +2
- 识别触发词:
| 关键词 | 推断准备事项 | |
|---|---|---|
| 出行、旅游、飞机、高铁、出差 | 收拾行李、确认票务、备充电宝和证件 | |
| 考试、测验、exam | 复习相关笔记、准备文具、调好闹钟 | |
| 演讲、汇报、presentation | 整理材料、检查设备、演练一遍 | |
| 面试 | 查公司背景、准备自我介绍 | |
| 约会、聚餐、饭局 | 确认地点、查路线、预留出行时间 |
- 搜索相关笔记:
- CLI:
wpsnote-cli find --keyword "<事件关键词>" --limit 3 --json - MCP:
search_notes(keyword="<事件关键词>", limit=3)
- 写入前置任务块(格式见
docs/note-templates.md模式 D)
- 询问是否追加到今天日历(可选)
模式 E:全局规划
综合日历和待办,给出完整今日时间分配建议。
- 收集信息:
``bash cal-query today # 固定时间块 cal-query tomorrow # 判断今晚是否要早休 `` 待办来源:优先读取用户已有的 TODO 笔记(见跨笔记 TODO 提取),作为「任务池」
- 分析:
- 计算空闲时段(固定事件之间的间隙)
- 识别高负载时段(连续 3 个以上会议无间隙)
- 标记适合深度工作的轻松时段
- 按
docs/note-templates.md模式 E 结构写入时间线规划
模式 F:TODO 汇总
收集散落各处的未完成 checkbox,整合到用户已有的 TODO 笔记。
核心原则:跟着用户已有的 TODO 笔记走,绝不另起炉灶。
见跨笔记 TODO 提取完整流程。
跨笔记 TODO 提取(通用流程)
模式 C、E、F 都依赖此流程。
第一步:找候选笔记
合并去重,得到候选笔记列表。
第二步:提取 unchecked checkbox
checked="0"= 未完成,只收集这类- 与笔记标题命名无关,直接识别 checkbox 格式
MCP 降级:read_note(note_id) 获取内容后同样解析
第三步:确定写入目标(先找,再问,绝不新建)
找标题含「TODO / 待办 / 任务清单 / 清单」的笔记:
- 找到 1 篇:直接用,写入前告知:
将把待办写入你已有的「[笔记标题]」 - 找到多篇:列出让用户选
- 一篇都没有:才询问是否新建
第四步:按用户已有格式写入
先读目标笔记前 30 个 block,观察组织方式(按周/按项目/平铺),追加内容跟着走,不引入新结构。
来自其他笔记的条目附上来源备注:
工具速查
日历(macOS 独占)
| 操作 | 命令 | |||||
|---|---|---|---|---|---|---|
| 查日程 | `cal-query <today\ | tomorrow\ | week\ | +N\ | YYYY-MM-DD>` | |
| 创建事件 | cal-add "<title>" "<YYYY-MM-DD HH:MM>" "<YYYY-MM-DD HH:MM>" | |||||
| 移动事件 | cal-move <uid> "<YYYY-MM-DD HH:MM>" "<YYYY-MM-DD HH:MM>" | |||||
| 删除事件 | cal-delete <uid> |
笔记(CLI 优先 / MCP 降级)
| 操作 | CLI | MCP | |
|---|---|---|---|
| 连接检查 | wpsnote-cli status | — | |
| 当前笔记 | wpsnote-cli current --json | get_current_note() | |
| 搜索笔记 | wpsnote-cli find --keyword "..." --limit N --json | search_notes(keyword=..., limit=N) | |
| 搜索内容 | wpsnote-cli search --note_id <id> --query "..." --json | search_note_content(note_id, query=...) | |
| 读取全文 | wpsnote-cli read --note_id <id> --json | read_note(note_id) | |
| 读取大纲 | wpsnote-cli outline --note_id <id> --json | get_note_outline(note_id) | |
| 新建笔记 | wpsnote-cli create --title "..." --json | create_note(title=...) | |
| 编辑 block | wpsnote-cli edit --note_id <id> --op insert/replace ... | edit_block(note_id, op=..., ...) |
错误处理
| 错误 | 处理 | |
|---|---|---|
| OS 不是 macOS | 立即终止,提示仅支持 macOS | |
wpsnote-cli status 失败 | 降级到 MCP;MCP 也不可用则提示检查笔记服务 | |
NO_ACTIVE_EDITOR_WINDOW | 询问写入哪篇笔记,或新建 | |
BLOCK_NOT_FOUND | 重新获取大纲刷新 ID 后重试一次 | |
cal-query 超时 | 提示日历同步中,等待后重试(首次可能需要 60s) | |
cal-add 失败 | 打印错误,询问是否手动指定日历名 | |
| 笔记搜索无结果 | 跳过关联步骤,仅处理日历数据本身 |
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/note-calendar/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/wpsnote/wpsnote-skills/note-calendar)