Skip to main content

apple-reminders

Use Apple Reminders from Codex through the local Apple Reminders MCP plugin. Trigger for reminder list/search/read/create/update/complete/delete/move workflows and relative-date requests like nearest reminder.

来源信息

仓库
Sageder/codex-apple-plugin
最近来源活动
2026年5月22日 01:31
检测到的 SKILL.md 语言
英语
星标
4
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
apple-reminders
description
Use Apple Reminders from Codex through the local Apple Reminders MCP plugin. Trigger for reminder list/search/read/create/update/complete/delete/move workflows and relative-date requests like nearest reminder.
# Apple Reminders Use this skill when a task should access local Apple Reminders. ## Fast routing - First use, a new Mac, or permission failures: `reminders_request_permissions`. - Reminder lookup, nearest reminder, or scheduled reminders: `reminders_search`, then `reminders_read` if body/details matter. - Writes: call the mutating tool with `dryRun: true` for a preview, then repeat with `confirm: true` only after the user clearly confirms. ## First-run setup behavior - If the user asks to set up the plugin, mentions a fresh clone/new Mac, or hits an access error, call `reminders_request_permissions` before any reminders list/search/read/write tool. - Treat permission output as an onboarding checklist: summarize the next step in plain language, ask the user to approve macOS prompts or System Settings toggles when needed, then retry only after they say it is done. - Do not use real reminder notes to test permissions. The setup tool is the privacy-light probe. ## Workflow - Use `reminders_list_lists` when the user asks what lists are available or when a target list is ambiguous. - Use `reminders_search` for reminder candidates and handles. - For "nearest reminder", "next reminder", and other upcoming scheduled-reminder requests, use `reminders_search` with `completed: "incomplete"`, `scheduled: "scheduled"`, `scheduledSince` set to the current local ISO datetime, `sort: "scheduled"`, and a small `limit`. - Do not infer "no upcoming reminders" from a broad incomplete-only search. Scheduled/date-range searches scan the complete selected lists before applying `limit`, because EventKit fetch order is not chronological; `maxScanPerList` is only a relevance-scan performance cap and should not be used as a correctness boundary for nearest/upcoming lookups. - For due-only or reminder-alarm-only questions, use `dueSince`/`dueBefore` or `remindSince`/`remindBefore` directly. Those date-range searches also scan complete selected lists before limiting. - Use `reminders_read` only for selected reminders and keep body limits tight. - Use `reminders_create`, `reminders_update`, `reminders_complete`, `reminders_delete`, and `reminders_move` only when the configured write guard allows it. - Treat `reminders_delete` as real reminder deletion, not a move-to-trash workflow. - Swift/EventKit-backed Reminders support includes title, notes/body, due date, reminder alarms, priority, URL, recurrence, completion state, and moving between lists. Do not promise tags, subtasks, or attachments. For relative dates, compute the actual current local ISO datetime before calling tools. Reminders accepts ISO date or datetime strings. ## Examples Find the next scheduled incomplete reminder: ```text reminders_search({"completed":"incomplete","scheduled":"scheduled","scheduledSince":"2026-05-17T19:10:00+02:00","sort":"scheduled","limit":5}) ``` Find overdue reminders by due date: ```text reminders_search({"completed":"incomplete","dueBefore":"2026-05-17T19:10:00+02:00","sort":"scheduled","limit":10}) ``` Search reminder titles/notes/list names: ```text reminders_search({"query":"rent","completed":"all","limit":10}) reminders_read({"handles":["<handle-from-search>"],"maxBodyChars":1000}) ``` Create a reminder with the write guard: ```text reminders_create({"name":"Pay rent","dueDate":"2026-05-26T23:00:00+02:00","remindMeDate":"2026-05-26T23:00:00+02:00","dryRun":true}) reminders_create({"name":"Pay rent","dueDate":"2026-05-26T23:00:00+02:00","remindMeDate":"2026-05-26T23:00:00+02:00","confirm":true}) ``` Complete, move, or delete a selected reminder: ```text reminders_complete({"handles":["<handle>"],"dryRun":true}) reminders_complete({"handles":["<handle>"],"confirm":true}) reminders_move({"handles":["<handle>"],"list":"Tasks","dryRun":true}) reminders_move({"handles":["<handle>"],"list":"Tasks","confirm":true}) reminders_delete({"handles":["<handle>"],"dryRun":true}) reminders_delete({"handles":["<handle>"],"confirm":true}) ``` ## Access mode - `APPLE_REMINDERS_WRITE_MODE=ask` is the default. Mutating tools return a preview or target summary unless the call includes `confirm: true`. - `APPLE_REMINDERS_WRITE_MODE=direct` means full local write access. ## Privacy Do not paste large reminder notes unless the user explicitly asks. Prefer concise summaries and cite handles, titles, lists, and dates.
在 GitHub 查看