Apple Reminders for Claude

Apple Reminders for Claude

Enables Claude to manage Apple Reminders on macOS, providing full CRUD operations such as listing, searching, creating, updating, and deleting reminders.

Category
访问服务器

README

Apple Reminders for Claude

License: MIT macOS 11+ Notarized MCPB manifest

Fast, native Apple Reminders access for Claude — works in Claude Desktop, Claude Cowork, and Claude Code (CLI). One signed Swift/EventKit binary, three distribution packages.

No AppleScript, no unstable positional IDs, no 30-second MCP timeouts. Sub-second latency on databases with hundreds of reminders. Full UTF-8 support for German umlauts, accents, CJK characters, and emoji.

Published by high5 ventures GmbH — signed with Developer ID Application: high5 ventures GmbH and notarized by Apple.


Description

Apple Reminders for Claude gives Claude full CRUD access to your macOS Reminders app. It wraps Apple's native EventKit framework in a signed Swift binary that returns stable UUIDs and structured JSON, and ships three ways:

Target Artifact Distribution
Claude Desktop / Cowork .mcpb bundle Anthropic Desktop Extensions Directory
Claude Code (CLI) Plugin with skill Claude Code Plugin Directory
Any MCP client npm package MCP Registry (io.github.high5-ventures/apple-reminders)

All three paths share the same Swift binary and the same MCP protocol surface, so behavior is identical everywhere.

Features

  • 13 MCP tools covering the full reminder lifecycle: list lists, list reminders (open/completed/all), full-text search, today/overdue/scheduled smart queries, CRUD on individual reminders.
  • Native EventKit — not AppleScript, not reverse-engineered SQLite scraping.
  • Stable UUIDs — reminder IDs survive across sessions, unlike AppleScript URIs or CLI positional indexes.
  • Tool safety annotations — every tool declares readOnlyHint / destructiveHint so Claude clients can auto-run queries but prompt for mutations.
  • Language-neutral — the skill matches on intent, not keywords. Works identically in German, French, Spanish, Japanese, etc.
  • Sub-second latency — full CRUD smoke-test completes in under 1 s on a database with 300+ reminders across 10 lists.
  • Signed + notarized — no Gatekeeper warnings, MDM-deployable, enterprise-ready.
  • 100% local — no network I/O. See PRIVACY.md.

Installation

Option 1 — Claude Desktop / Cowork (recommended for most users)

Install from the Anthropic Desktop Extensions Directory (in-app search) or download the latest signed .mcpb from Releases and double-click it. Claude Desktop shows an install dialog; click Install, then on the first tool call, grant Reminders access in the macOS privacy prompt.

Option 2 — Claude Code CLI

/plugin install apple-reminders@claude-plugins-official

…or add the high5 ventures marketplace directly from GitHub:

/plugin marketplace add high5-ventures/apple-reminders-for-claude
/plugin install apple-reminders@high5-apple-reminders-for-claude

Option 3 — Any MCP-compatible client (Cursor, Zed, etc.)

npm install -g @high5ventures/apple-reminders-mcp

Then point your client at @high5ventures/apple-reminders-mcp as a stdio MCP server. See your client's documentation for configuration specifics.

Build from source

git clone https://github.com/high5-ventures/apple-reminders-for-claude.git
cd apple-reminders-for-claude
./build.sh

Produces dist/reminders-eventkit (binary), dist/skill/ (Claude Code skill), and dist/apple-reminders.mcpb (Claude Desktop bundle). Builds are unsigned; see CONTRIBUTING.md for the signed release workflow.

Requirements: macOS 11+, Xcode Command Line Tools, Node.js 18+.

Configuration

No configuration is required for normal use. The extension runs with these defaults:

Setting Default Notes
Reminders permission prompted on first use Revocable in System Settings → Privacy & Security → Reminders
Binary timeout (Node wrapper) 30 s Hardcoded ceiling; well under any MCP client timeout
Response payload cap 16 MB Plenty for databases with thousands of reminders

If you use the npm-distributed server with a non-standard MCP client, set REMINDERS_BINARY to the absolute path of the reminders-eventkit binary:

export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit

The .mcpb and Plugin Directory installations set this variable automatically.

Usage examples

The skill loads automatically in Claude Code when you mention reminders. In Claude Desktop / Cowork, the tools appear under Apple Reminders. You talk to Claude naturally — these examples show what Claude does behind the scenes.

Example 1 — "What's on my plate today?"

You: Was habe ich heute zu tun?

Claude (invokes get_today):

{ "status": "ok", "data": { "reminders": [
  { "id": "A1B2…", "name": "Zahnarzt-Termin bestätigen", "list": "Persönlich", "due_date": "2026-04-14T10:00:00" },
  { "id": "C3D4…", "name": "Rechnung #2026-0412 prüfen", "list": "Arbeit", "due_date": "2026-04-14T14:00:00" }
] } }

Claude: Du hast heute zwei offene Erinnerungen: den Zahnarzt-Termin um 10:00 (Persönlich) und die Rechnungs-Prüfung um 14:00 (Arbeit).

Example 2 — "Add a reminder to the groceries list"

You: Remind me to buy oat milk tomorrow at 6pm.

Claude (invokes create_reminder):

{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }

Response:

{ "status": "ok", "data": { "reminder": { "id": "E5F6…", "name": "Buy oat milk", "due_date": "2026-04-15T18:00:00" } } }

Claude: Done — added "Buy oat milk" to Groceries for tomorrow at 18:00.

Example 3 — "Clean up what's overdue"

You: Show me everything that's overdue, then mark the Slack-DM one as done.

Claude (invokes get_overdue):

{ "status": "ok", "data": { "reminders": [
  { "id": "G7H8…", "name": "Reply to Alex in Slack DM", "list": "Arbeit", "due_date": "2026-04-12T17:00:00" },
  { "id": "I9J0…", "name": "Review PR #482", "list": "Arbeit", "due_date": "2026-04-13T12:00:00" }
] } }

Claude (invokes complete_reminder with id: "G7H8…"):

{ "status": "ok", "data": { "reminder": { "id": "G7H8…", "completed": true, "completion_date": "2026-04-14T18:22:01" } } }

Claude: Two overdue items: Slack reply (now marked done) and PR #482 review (still open).

MCP tools

All 13 tools return a stable JSON envelope — { "status": "ok", "data": ... } on success, { "status": "error", "code": "...", "message": "..." } on failure.

Tool Annotation Purpose
get_lists read-only List all reminder lists with open/completed counts
get_list_info read-only Metadata for one list by name
list_reminders read-only List reminders in a list (open/completed/all)
search_reminders read-only Full-text search across all lists
get_today read-only Reminders due today
get_overdue read-only Overdue open reminders
get_scheduled read-only All open reminders with a due date
get_reminder read-only Fetch one reminder by ID
create_reminder additive Create a new reminder
update_reminder destructive, idempotent Update an existing reminder
complete_reminder destructive, idempotent Mark as completed
uncomplete_reminder destructive, idempotent Unmark completed
delete_reminder destructive, idempotent Permanently delete

"Destructive" here follows the MCP specification: it means the operation mutates existing state irreversibly from the user's point of view. Claude clients use these hints to decide when to prompt for confirmation.

Privacy policy

This extension is 100% local at runtime — no data leaves your Mac via this extension. high5 ventures GmbH operates no server and collects no telemetry. The only network activity is the one-time download of the signed Swift binary from GitHub Releases during install (verified by Apple Developer ID signature, refuses to install on mismatch).

Read the full policy: PRIVACY.md.

Troubleshooting

"Reminders access denied" — open System Settings → Privacy & Security → Reminders and enable access for Claude Desktop (or your MCP client). Then retry.

Binary quarantined on first launch — our releases are signed and notarized, so this should not happen. If it does, verify the signature:

codesign --verify --verbose /Applications/Claude.app/Contents/Resources/mcpb/apple-reminders/bin/reminders-eventkit
spctl --assess --type execute /Applications/Claude.app/Contents/Resources/mcpb/apple-reminders/bin/reminders-eventkit

If either fails, you may have downloaded a tampered copy — re-download from the official Releases page.

"List not found" or "Multiple lists with that name" — reminder lists are matched by exact name. Use get_lists first to see available names. For duplicates, the error response includes a candidates array with stable calendar_identifiers; re-call with id:<calendar_identifier> as the list argument.

Flagged reminders return empty — EventKit does not expose the flagged attribute. The Claude Code skill ships an AppleScript fallback (skills/apple-reminders/scripts/get_flagged.applescript) for users who need this query. The .mcpb bundle does not include this fallback because Claude Desktop does not have shell access.

Still stuck? Open an issue → Support.

Support

Architecture

Claude Desktop / Cowork           Claude Code CLI                Any MCP client (Cursor, Zed, …)
        │                                │                                   │
        │  (stdio MCP)                   │  (Bash via plugin)                │  (stdio MCP)
        ▼                                ▼                                   ▼
    Node wrapper                 reminders-eventkit                    Node wrapper
   (server/index.js)            (Swift binary, direct)               (npm @high5ventures/…)
        │                                │                                   │
        ▼                                │                                   ▼
 reminders-eventkit                      │                          reminders-eventkit
(same Swift binary)                      │                        (downloaded on install)
        │                                │                                   │
        └────────────────────────────────┴───────────────────────────────────┘
                                         │
                                         ▼
                            Apple EventKit framework
                                         │
                                         ▼
                            macOS Reminders database

One Swift source → one binary → three distribution paths. See CONTRIBUTING.md for build internals.

License

Copyright © 2026 high5 ventures GmbH. Released under the MIT License — see LICENSE.

This project is not affiliated with or endorsed by Apple Inc. or Anthropic PBC.

"Apple" and "Reminders" are trademarks of Apple Inc. "Claude" is a trademark of Anthropic PBC.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选