Scoped Calendar and Reminders access for scripts and AI agents on your Mac: a menu bar app with an MCP server, per-client grants and approvals.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/bereciartua/ek-bridgeMCP Servers overview
<p align="center"> <img src="Resources/AppIcon-1024.png" width="128" height="128" alt=""> </p> <h1 align="center">EK Bridge</h1> <p align="center"><b>Give AI agents your calendar. Not all of it.</b><br> A free, open-source Mac menu bar app that lets Claude, ChatGPT, Cursor and your scripts use only the calendars and reminder lists you choose, and asks you before they change anything.</p> <p align="center"> <a href="https://github.com/bereciartua/ek-bridge/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/bereciartua/ek-bridge?label=release"></a> <img alt="macOS 14 or later" src="https://img.shields.io/badge/macOS-14%2B-black"> <img alt="Notarized with a Developer ID" src="https://img.shields.io/badge/notarized-Developer%20ID-success"> <a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/github/license/bereciartua/ek-bridge"></a> <a href="https://registry.modelcontextprotocol.io/v0/servers?search=ek-bridge"><img alt="Listed in the MCP Registry as io.github.bereciartua/ek-bridge" src="https://img.shields.io/badge/MCP%20Registry-listed-blue"></a> <a href="https://mcpservers.org/servers/bereciartua/ek-bridge"><img alt="Listed on mcpservers.org" src="https://mcpservers.org/badge.svg"></a> </p> <p align="center"> <a href="https://github.com/bereciartua/ek-bridge/releases/latest/download/EKBridge.dmg"><b>Download for Mac</b></a> · <a href="#get-started">Get started</a> · <a href="docs/MCP.md">Agent setups</a> · <a href="CHANGELOG.md">Changelog</a> </p> <p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/overview-dark.png"> <img alt="EK Bridge Overview: the bridge is on, Calendars and Reminders have Full Access, and three clients are listed with their access and last request." src="docs/images/overview-light.png" width="720"> </picture> </p> - **Choose what each agent can touch.** Pick the calendars and reminder lists each agent may use, and whether it may read, create, edit, delete or complete. A new agent starts with nothing. - **Approve every change.** A panel shows exactly what an agent wants to write. Nothing changes until you click Allow. - **See everything, switch it off in one click.** Activity explains every request. Pause or revoke an agent, or turn the whole bridge off from the menu bar. **Works with** Claude Code, Claude Desktop, Codex and Cursor ([tested live](docs/TESTING.md#live-mcp-matrix)), and any other MCP client, with ready-made setups for VS Code (Copilot), Gemini CLI, Zed, Cline, JetBrains AI Assistant and Devin Desktop. claude.ai and ChatGPT can connect through [Remote Access](#from-cloud-agents-experimental), which is experimental. ## What you can ask Once an agent is connected, ask in plain words. It can act only inside the calendars and lists you gave it. | You ask | The agent uses | | --- | --- | | "What's on my Work calendar this week, and where are my free hours?" | `read_events` | | "Move Thursday's design review to Friday at 3, same length." | `read_events`, then `update_event` (which asks you first) | | "Remind me to renew my passport next Monday at 9." | `create_reminder` in the list you granted | | "Block 9:30–10:30 every weekday for focus time." | `create_event` with a repeat rule | Twelve tools cover events and reminders, with every field Calendar supports: time zones, repeats, alerts, locations, notes and links. Each agent sees only the tools its access allows. The [MCP guide](docs/MCP.md#tools) has the full reference. ## Get started 1. **Install.** Download [`EKBridge.dmg`](https://github.com/bereciartua/ek-bridge/releases/latest/download/EKBridge.dmg), open it and drag EK Bridge to **Applications**. If you open it from the disk image or Downloads instead, it offers to move itself there. Or use [Homebrew](https://brew.sh): ```sh brew install --cask bereciartua/tap/ek-bridge ``` 2. **Open the app.** It opens on a short setup checklist; later, you'll find it in the menu bar. First, allow Calendar and/or Reminders access; you need only the one your agent uses. 3. **Add your agent.** Click **New Client…**, name it after the agent and choose **Connects from ▸ AI agent (MCP)**. Then tick the calendars and lists it may use, and **Save**. Grant Read only where the agent needs it: what it reads goes to its AI provider. 4. **Turn on the bridge and the MCP server** from the checklist. 5. **Copy the setup.** On the client's **Connect** tab, pick your agent and copy the command or config into it. The status changes to **Connected** when the agent's first request arrives. <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/connect-agent-dark.png"> <img alt="Connect ▸ AI agent on a client page: Claude Code is selected with the recommended direct HTTP method, a claude mcp add-json command to copy, a Connected status, a hidden token with Reset, and the server URL." src="docs/images/connect-agent-light.png" width="720"> </picture> That's it: ask your agent one of the questions above. Setups for every agent and troubleshooting are in the [MCP guide](docs/MCP.md). EK Bridge needs **macOS 14 or later**, on Apple silicon or Intel. It's notarized by Apple and keeps itself up to date (you click to install each update). Release notes and checksums are on [Releases](https://github.com/bereciartua/ek-bridge/releases/latest). Upgrading from EventKit Bridge, its earlier name? See [Setup](docs/SETUP.md#upgrading-from-eventkit-bridge-070-or-earlier). EK Bridge is a personal project in **public preview**, with best-effort support. ## How you stay in control EK Bridge is the only app that holds your Calendar and Reminders permission. Your agents talk to it, never to your calendars directly, and it checks every request against what you allowed. ### Each agent gets only what you tick Every agent has its own key and its own access: Read, Create, Edit and Delete for each calendar, plus Complete for each reminder list. Share Work, keep Family to yourself. <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/access-dark.png"> <img alt="A client's Access table: Work has Read, Create and Edit; Home has Read; Family and a Google team calendar have nothing; Birthdays and US Holidays are read-only calendars. Changes are set to Ask me first." src="docs/images/access-light.png" width="640"> </picture> ### You approve each change By default, before an agent writes anything, a small panel shows every field it wants to set. Click **Allow** or **Deny**, or let one agent work for 15 minutes. A request you don't answer is refused after 45 seconds. For a script you trust, you can turn asking off. <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/approval-panel-dark.png"> <img alt="The Ask before changes panel: Claude Code wants to add a weekly event to Work in Europe/Madrid, with rows for when, repeats, where with a map pin, notes, the link with its host in bold, alerts and show as, Deny and Allow buttons, a 45-second countdown and a checkbox to allow changes for 15 minutes." src="docs/images/approval-panel-light.png" width="400"> </picture> ### You can see everything, and stop anything **Activity** lists every request and explains its result in plain words, including the ones that were refused. **Pause** an agent to refuse its requests while keeping its setup, **Revoke** it to cut it off for good, or turn the whole bridge off from the menu bar. ### Under the hood - **Local by default.** Everything is off until you turn it on. The MCP server listens only on `127.0.0.1`. No account, no analytics, no server of ours. - **A key per agent.** Each agent has its own 256-bit token, stored only as a hash; scripts sign their requests with their own Ed25519 key. - **Safe writes.** Edits and deletes need the latest version of an item. Every written field is read back, and a mismatch is rolled back. - **Cloud only through your tunnel.** A cloud agent can reach the bridge only through Remote Access and a tunnel you run, for agents you allowed, and never while your Mac is asleep, offline or logged out. - **Signed updates.** Updates come from GitHub, signed by the developer and checked before they install. - **Open source.** Read the code, the [threat model](docs/ARCHITECTURE.md) and the [test record](docs/TESTING.md). **What it doesn't protect against:** another program running as your macOS user can read the same key files. Access settings separate the agents you connect; they aren't a defense against malware already on your Mac. Details are in [Security boundary](#security-boundary). ## FAQ <details> <summary><b>Is it free?</b></summary> Yes. EK Bridge is open source under the Apache License 2.0, with no account or trial. </details> <details> <summary><b>Does my calendar data leave my Mac?</b></summary> EK Bridge itself sends nothing anywhere; [Privacy](#privacy) lists every connection it makes. What an agent reads through it goes to that agent and its AI provider, under their terms, so grant Read only where the agent needs it. </details> <details> <summary><b>Does it always ask before a change?</b></summary> For AI agents, yes by default. You can turn asking off per client, for example for a script you trust, or allow one agent's changes for 15 minutes at a time. See [Ask before changes](docs/MCP.md#ask-before-changes). </details> <details> <summary><b>Which calendars work?</b></summary> The accounts that appear in the Calendar and Reminders apps, such as iCloud, Google, Exchange, CalDAV and On My Mac. The live tests so far ran on iCloud; see [Testing](docs/TESTING.md). </details> <details> <summary><b>Can I use it with ChatGPT or claude.ai?</b></summary> Yes, through Remote Access, which forwards cloud agents to your Mac through a tunnel you run, such as Tailscale Funnel. It's off by default and experimental, and your Mac has to be awake and online. See [From cloud agents](#from-cloud-a
What people ask about ek-bridge
What is bereciartua/ek-bridge?
+
bereciartua/ek-bridge is mcp servers for the Claude AI ecosystem. Scoped Calendar and Reminders access for scripts and AI agents on your Mac: a menu bar app with an MCP server, per-client grants and approvals. It has 2 GitHub stars and its last recorded update is dated 2026-10-09.
How do I install ek-bridge?
+
You can install ek-bridge by cloning the repository (https://github.com/bereciartua/ek-bridge) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is bereciartua/ek-bridge safe to use?
+
Our security agent has analyzed bereciartua/ek-bridge and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains bereciartua/ek-bridge?
+
bereciartua/ek-bridge is maintained by bereciartua. The last recorded GitHub activity is dated 2026-10-09, with 1 open issues.
Are there alternatives to ek-bridge?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy ek-bridge to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/bereciartua-ek-bridge)<a href="https://claudewave.com/repo/bereciartua-ek-bridge"><img src="https://claudewave.com/api/badge/bereciartua-ek-bridge" alt="Featured on ClaudeWave: bereciartua/ek-bridge" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.