Apple Calendar について
Apple Calendar MCPは、EventKitを通じてmacOSのカレンダーをClaudeなどのMCPクライアントに接続します。検索、予定調整、リマインダー、取り消し可能な変更に対応し、削除や共有予定の編集前には確認を求めます。
主な機能
- 01複数カレンダーの予定検索・確認
- 02空き時間と競合の検索
- 03予定の作成と一括更新
- 04変更前の確認と取り消し
- 05任意のリマインダーツールとカレンダースキル
活用シーン
- 01複数アカウントから会議の空き時間を検索
- 02一週間の集中時間を計画
- 03重複予定の確認や整理
- 04予定とリマインダーをまとめて管理
MCP 対応
MCPサーバーはカレンダーと任意のリマインダーツール、プロンプトとしてのスキル、today/upcomingリソースを提供します。MCPクライアント向けにstdioとHTTPモードを備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Apple Calendar MCP
Claude に Apple Calendar の予定を読み取り、検索、計画させましょう。高速でローカルに動作し、あなたの承認なしに予定が削除されたり、ほかの人に送信されたりすることはありません。
Apple Calendar MCP は、Mac のカレンダーアプリ用の MCP サーバーと、小さなメニューバーアプリです。Claude(Claude Code、Claude アプリ、または任意の MCP クライアント)を使って、今日の予定を確認したり、過去数年分の予定を検索したり、すべてのカレンダーから空き時間を探したり、集中時間を計画したり、会議の準備をしたり、予定を追加・移動したりできます。予定の削除や、ほかの人が招待されている予定の変更は、OK をクリックした後にのみ実行されます。
同じ方法で開発された Apple Mail MCP の姉妹プロジェクトです。



あらゆるカレンダーアカウントですぐに AI を活用
Apple Calendar MCP は、カレンダーに追加できるあらゆるカレンダーに対応しています。iCloud、Google、Microsoft 365 と Exchange、Yahoo、Fastmail、任意の CalDAV サーバー、購読カレンダー(祝日、スポーツ、チームのスケジュール)、誕生日、Mac のみに保存されているカレンダーを利用できます。
プロバイダー側の API、開発者アカウント、MCP 対応は必要ありません。通常どおり「カレンダー」›「設定」›「アカウント」でアカウントを追加してください。カレンダーが同期されると、ほかのカレンダーと並行して、すべてのツールを利用できます。パスワードは macOS に保存されます。このアプリがパスワードを参照したり、プロバイダーに接続したりすることはありません。
別のカレンダーサーバーが必要な理由
ほとんどのカレンダーサーバーは、AppleScriptでカレンダーを操作します。するとカレンダーはイベントを1件ずつ処理するため、予定が多い年を検索すると数秒かかったりタイムアウトしたりします。繰り返しイベントの結果も正しくなく、その間カレンダーは操作中の状態になります。
Apple Calendar MCPは、カレンダー自体の基盤であるフレームワーク、EventKitを使用します。読み取りはデータベースクエリなのでミリ秒単位で結果が返り、繰り返しイベントはカレンダーに表示されるとおりに展開されます。また、カレンダーを起動する必要もありません。
- 高速:すべてのアカウントから、1日、1週間、1年分のイベントをミリ秒単位で取得できます。
- 週の予定を考慮した空き時間:勤務時間、会議の間のバッファ、終日イベント、辞退したイベントを、カレンダーに表示されるとおりに処理します。
- 初期設定で安全:削除前に確認し、ほかの人が招待されているイベントを変更する場合も事前に確認します。変更はすべて元に戻せます。また、各カレンダーについて、Claudeによる変更を許可するか、読み取り専用にするか、表示しないかを設定できます。
- 多数の変更をまとめて1回で承認:1週間分の集中作業用ブロックや、午後の予定の変更を、1回の呼び出し、1回の承認、1回の取り消し操作で行えます。
- リマインダーにも対応:リマインダーへのアクセスを許可すると、Claudeでリマインダーの一覧表示、追加、完了への変更ができ、アジェンダにも期限が表示されます。
- 許可は1つ(リマインダーを使う場合は2つ):メニューバーアプリに一度だけ許可します。フルディスクアクセスもオートメーションも必要ありません。
- パスワードもクラウドも不要:すべてのデータはMac上に保存されます。
インストール
Homebrew:
brew install --cask mp-consulting/tap/apple-calendar-mcp
**または、**アプリまたはClaude拡張機能を最新リリースからダウンロードしてください。
| ファイル | 用途 |
|---|---|
AppleCalendarMCP-x.y.z.dmg | サーバーを内蔵したメニューバーアプリです。カレンダーへのアクセス、承認、アクティビティ、スキル、ワンクリックセットアップを提供します。必須です。 |
AppleCalendarMCP-x.y.z.mcpb | Claudeアプリ専用です。ダブルクリックして、サーバーをClaude拡張機能としてインストールします。カレンダーにアクセスするには、上記のアプリも必要です。 |
どちらも公証済みで、Developer IDで署名されており、Appleシリコン搭載MacとIntel Mac(macOS 14以降)で動作します。サーバーはio.github.mp-consulting/apple-calendar-mcpとしてMCPレジストリにも登録されています。
続いて、次の手順を行います。
- Apple Calendar MCPを開きます。メニューバーにカレンダーが表示されます。
- Allow Calendar Accessをクリックし、macOSのプロンプトでAllow Full Accessを選択します。
- Claudeタブを開き、Claude CodeとClaudeアプリの横にあるConnectをクリックします。
アクセス許可
macOSでは、プロセスを起動するアプリにカレンダーへのアクセス許可が付与されます。Claude、ターミナル、エディタがサーバーを起動するため、これらのアプリに代わってサーバーへカレンダーのアクセス許可を付与することはできません。そのため、メニューバーアプリがカレンダーへのアクセス許可を保持し、サーバーはユーザーだけがアクセスできるサポートフォルダ内のソケットを介してカレンダーにアクセスします。それぞれが相手のコード署名を確認します。アプリが応答するのはこのプロジェクトのサーバーだけであり、サーバーが通信するのもこのプロジェクトのアプリだけです。アプリが起動していない場合、サーバーはバックグラウンドでアプリを開きます。
| アクセス許可 | 理由 | 場所 |
|---|---|---|
| Apple Calendar MCPのCalendars › Full Access | イベントの読み取りと変更 | アプリが一度だけ要求します。システム設定 › プライバシーとセキュリティ › カレンダー |
| Reminders › Full Access(任意) | リマインダーの読み取り、追加、完了 | アプリの「Settings」タブでリマインダーを有効にすると要求されます。システム設定 › プライバシーとセキュリティ › リマインダー |
claude.ai とお使いのスマートフォン
iPhone、Android、ウェブ上の Claude アプリは、カスタムコネクターとして Mac のカレンダーに接続します。メニューバーアプリが OAuth を使って HTTP 経由で MCP を提供し、トンネル(cloudflared など)によって、お客様の HTTPS アドレスで公開します。More settings… › Remote access で有効にしてください。
![リモートアクセスの設定:状態が表示されたスイッチ、接続、コピーするコネクター URL とトンネルパス、パスコード、接続済みの 2 つの Claude アプリと[Disconnect]](https://github.com/mp-consulting/apple-calendar-mcp/raw/HEAD/docs/images/settings-remote.png)
- トンネルが公開するパブリックアドレスを入力します。例:
https://mcp.example.com/me/calendar。複数の サーバーで 1 つのホスト名を共有でき、それぞれに専用のパスを設定できます(たとえば、Apple Mail MCP は/me/mail)。 - トンネルで、そのパスをポート(デフォルトは 8591)にルーティングします。ルートにはディスカバリー文書も含める必要があります。
OAuth はパスを付加してルートにこれらの文書を配置します。設定画面に正確なパスパターンが表示されます。例:
^/(\.well-known/[^/]+/)?me/calendar(/.*)?$ - どこからの接続も承認できるようにパスコードを設定するか、メニューバーアプリで承認します。
- claude.ai で、コネクター URL(クライアント ID やシークレットは不要)を使って Settings › Connectors › Add custom connector を選択します。 Connect を選択すると、サインインページが開きます。
![サインインページ:Claude を Apple カレンダーに接続する画面、フルアクセスまたは読み取り専用の選択肢、[Allow]ボタン付きのパスコード欄、[Approve on my Mac]、[Don't allow]](https://github.com/mp-consulting/apple-calendar-mcp/raw/HEAD/docs/images/signin.png)
![メニューバーアプリの確認画面:「Claude wants to connect to Apple Calendar」と表示され、[Deny]と[Allow]が選択できます](https://github.com/mp-consulting/apple-calendar-mcp/raw/HEAD/docs/images/approval-connect.png)
接続によって、Mac 上の Claude と同じ操作を許可することも、読み取りのみにすることもできます。共有イベントの削除や変更は、メニューバーアプリで承認するまで実行されません。Connected apps には接続ごとに表示され、Disconnect を選択すると、次のリクエスト時に接続が終了します。トークンの有効期間は 1 時間で、90 日間の利用に向けて更新されます。サーバーにはトークンのハッシュのみが保存されます。詳細、トンネルの設定、セキュリティモデルについては、docs/remote.md をご覧ください。
Claude でできること
| ツール | 内容 |
|---|---|
agenda | 今日(または数日先まで)の予定を一度に確認できます。現在と次の予定、重複、残りの空き時間、未回答の招待、期限が来たリマインダーを確認できます |
list_events | 期間内の予定を、すべてのカレンダーまたは一部のカレンダーから取得できます。繰り返し予定は展開されます |
search_events | テキスト、人物、場所、カレンダー、日付、ビデオ通話、ステータスで検索できます。また、group_by を使ってカレンダー、月、曜日、人物ごとの件数を確認できます |
get_event | 1件の予定の詳細を取得できます。メモ、参加者とその回答、アラーム、繰り返しルール、ビデオ通話リンクを確認できます |
find_free_time | 勤務時間内の指定した長さの空き時間を、バッファを設けて、対象となるすべてのカレンダーから検索できます。相手のタイムゾーンにおける勤務時間内でも検索でき、メッセージに貼り付けるテキストとして出力できます |
find_conflicts | 時間が重なり、どちらも時間を占める予定を確認できます |
find_duplicates | 二重に登録された予定、残すべき予定、問題なく削除できる予定を確認できます |
pending_invitations | まだ回答していない招待を確認できます |
respond_to_invitation | 招待を承諾、辞退、または「仮承諾」できます。カレンダーから主催者に回答が送信されます |
calendar_statistics | 時間の使い方を、カレンダー、曜日、時間、人物ごとに確認できます。会議の量や、連続する会議も確認できます |
list_calendars | アカウント、色、変更可能かどうかを含むカレンダーの一覧を取得できます |
create_event、update_event、delete_event | アラームや繰り返しルールを指定して、予定を追加、変更、移動、削除できます。繰り返し予定の1回分、またはシリーズ全体を操作できます |
create_events、update_events | 複数の予定を一度に処理できます。変更前に検証され、すべてに対して1回の承認と取り消しが適用されます |
list_reminders、create_reminder、update_reminder、delete_reminders | リマインダーを操作できます。未完了または期限超過の項目を確認し、期限の日付や時刻を指定して追加し、完了にし、別のリストに移動できます |
undo_change | 最近の変更を一覧表示し、1件を元に戻します |
import_ics、export_events | .ics ファイル(Mail から保存した招待など)から予定を追加するか、予定を .ics、CSV、JSON に書き出せます。空き時間/予定あり情報のみ、またはメールに添付できる招待として書き出せます |
open_in_calendar | カレンダーで予定または1日分を表示します |
予定 ID は EventKit 独自のものです。繰り返し予定の1回分は <id>#<start in Unix seconds> です。
EventKit では Calendar から人を招待できません。Calendar またはメールで招待してください。export_events に invite
を指定すると、相手が承諾または辞退できる標準的な招待が作成されます。また、calendar-invite-by-mail スキルは、招待を Mail の
下書きに添付します(Apple Mail MCP を使用)。あなた宛ての招待には
respond_to_invitation で回答できます。このツールは Calendar と同じ(非公開の)EventKit 呼び出しを使用し、
アカウントから主催者に回答が送信されます。アプリはその前に確認を求めます。
常に制御できます

Claude がイベントを削除しようとしたときや、ほかの人が招待されているイベントを変更しようとしたときは、変更内容を表示する小さなウィンドウが開きます。OK をクリックしない限り、何も実行されません。
- 削除ポリシー(設定):最初に確認する(デフォルト)、すぐに削除する、または 削除しない。
- 共有イベント:ほかの参加者がいるイベントの変更は、デフォルトで最初に確認を求めます。カレンダーサーバーから参加者に通知される可能性があるためです。
- 取り消し:すべての変更は
undo_changeで元に戻せます。まとめて行った変更も 1 つの ID で元に戻せます。削除したイベントは、参加者なしで復元されます(EventKit では参加者を再度招待できません)。 - 各カレンダーとリマインダーリスト(設定):読み取りと変更、読み取り専用(Claude は項目の追加、移動、変更、削除を一切行いません)、または 非表示(読み取り、一覧表示、変更を一切行いません)。
- 一括処理の上限:デフォルトでは、1 回の変更につき最大 50 件のイベントです。
- 読み取り専用モード:
apple-calendar-mcp --read-onlyでは、読み取りツールのみを提供します。 - アクティビティ:すべてのツール呼び出しがメニューバーアプリに表示されます(イベントの詳細は表示されません)。
スキル
パネルの Claude タブでスキルを選択できます。それぞれのスキルについて、実行内容とインストール状況が表示されます。
| スキル | または、こう尋ねてください… |
|---|---|
/calendar-daily-brief | 「今日の予定はどんな感じ?」 |
/calendar-scheduler | 「来週、予算レビューのために会議のない時間を 1 時間見つけて。」 |
/calendar-focus-time | 「今週、集中作業の時間を 6 時間確保して。できれば午前中に。」 |
/calendar-meeting-prep | 「明日の会議に備えて。」 |
/calendar-weekly-review | 「今週はどうだった?来週はどんな感じ?」 |
/calendar-time-audit | 「今月は何に時間を使った?」 |
/calendar-cleanup | 「カレンダーの重複や競合を見つけて整理して。」 |
/calendar-invite-import | 「このフライトの確認メールをカレンダーに追加して。」 |
/calendar-invite-by-mail | 「木曜日の計画会議に Sam と Priya を招待して。」 |
これらのスキルは MCP プロンプトとしても提供されます(Claude Code では /mcp__apple-calendar__calendar-daily-brief など)。また、calendar://today と calendar://upcoming の 2 つのリソースは、日付が変わると登録済みのクライアントに通知します。
コマンドライン
apple-calendar-mcp [--read-only] serve MCP over stdio
apple-calendar-mcp remote [--port N] [--listen ADDR] [--address URL] serve MCP over HTTP with OAuth (claude.ai)
apple-calendar-mcp doctor check the app, the permission and the bridge
apple-calendar-mcp install | uninstall [claude-code | claude-desktop] register with Claude
apple-calendar-mcp skills [list | install | uninstall | export DIR] manage the Claude skills
apple-calendar-mcp call <tool> '{"json": "arguments"}' run one tool
仕組み
claude.ai ──HTTPS──▶ tunnel ──HTTP──▶ apple-calendar-mcp remote (OAuth, run by the app) ──▶ EventKit; approvals over the socket
Claude ──MCP (stdio)──▶ apple-calendar-mcp ──socket (signatures checked)──▶ Apple Calendar MCP.app ──▶ EventKit ──▶ your accounts
menu bar: approvals · activity · settings · Claude setup · updates
- CalendarStore:イベントモデル、EventKit、ブリッジ、繰り返しルール、空き時間、競合、統計、iCalendar ファイルを扱います。
- CalendarMCPKit:ツール、ポリシー、承認、取り消し、スキルを扱います。CalendarMCPBar は SwiftUI 製のメニューバーアプリです(macOS 26 の Liquid Glass)。
開発
git clone https://github.com/mp-consulting/apple-calendar-mcp && cd apple-calendar-mcp
# Files under ~/Documents carry Finder metadata that codesign rejects: build outside the repo.
swift test --scratch-path ~/Library/Caches/apple-calendar-mcp-build # tests run on in-memory calendars
Scripts/build-app.sh --install # build, sign, install, launch the app
apple-calendar-mcp --demo は、カレンダーに触れることなくツールを試せるよう、架空の 1 週間分の予定をメモリ上で提供します。スクリーンショットはアプリの --demo --approval 3 --snapshot DIR から生成されています。
テストがカレンダーに触れることはありません。EventKit の繰り返しイベントと読み取り専用カレンダーのルールに従う MemoryBackend 上で実行されます。アプリには Xcode 26(Swift 6.2)が必要です。サーバーは Swift 6.1 でビルドできます。
ライセンス
MIT © 2026 Mickael Palma。Apple とは無関係です。Apple Calendar は Apple Inc. の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。