SkillAgentSearch skills...

ek-bridge

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.

Install / Use

claude mcp add bereciartua -- npx -y github:bereciartua/ek-bridge

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

79/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of ek-bridge

ek-bridge scores 79/100 on our quality scale, 3596th of 4,581 Development & Engineering skills we index.

Its MCP Server is 26 KB long, well organised into 20 sections with 1 code example: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
17/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so ek-bridge is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-10-11. Automated pattern scan on 2026-10-11. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

ek-bridge compared with similar skills

All 4 of these similar skills score higher than ek-bridge; compare them before choosing.

SkillScoreStarsUpdatedFormat
ek-bridge (this skill)by bereciartua7931d agoMCP Server
Agent-Reachby Panniantong10095.5k3d agoCLAUDE.md
headroomby headroomlabs-ai10075.0ktodayCLAUDE.md
CowAgentby zhayujie10047.3k1d agoCLAUDE.md
ai-job-searchby MadsLorentzen10045.8k2d agoCLAUDE.md

Frequently asked questions

How do I install ek-bridge?
Run claude mcp add bereciartua -- npx -y github:bereciartua/ek-bridge. The install tabs above show the steps for each supported agent.
Which AI agents does ek-bridge work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is ek-bridge safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is ek-bridge still maintained?
The repository was last updated yesterday, so ek-bridge is actively maintained.
<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: EK Bridge is on with three connections and MCP on port 47615; Needs you lists Cursor asking for access to add events to Home, an unavailable calendar and refused requests; Today shows 29 requests, 4 changes and 6 problems, then the latest changes by name, such as Added “Buy oat milk” and Changed “Design review”." 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 names what each agent changed and explains every refusal. Pause or remove an agent, or pause all of EK Bridge from the menu bar.

Works with Claude Code, Claude Desktop, Codex and Cursor (tested live), 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, 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 has the full reference.

Get started

  1. Install. 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:

    brew install --cask bereciartua/tap/ek-bridge
    
  2. Open the app. It opens on a setup with three steps; later, you'll find it in the menu bar.

    1. Allow access to Calendar and Reminders. You need only the one your agent uses; skip the other.
    2. Add your agent. Pick its tile (agents found on your Mac come first) and what it can read to start with, such as Read all calendars and lists. Grant Read only where the agent needs it: what it reads goes to its AI provider.
    3. Connect it. Add to Claude Desktop… (or Cursor, or Claude Code) shows the exact change to the agent's settings, keeps a backup and never writes the token; it also turns EK Bridge on. For other agents, copy the command or config from the connection's Connect tab. The step is done when the agent's first request arrives.
<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/setup-dark.png"> <img alt="Set up EK Bridge: Calendar and Reminders allowed with Full Access, Claude Code added to read all calendars and lists and ask before changes, and step 3, Connect Claude Code, with an Add to Claude Code button. Below: Copy the setup instead, the update checkbox and Add a command-line connection." src="docs/images/setup-light.png" width="660"> </picture>

That's it: ask your agent one of the questions above. Setups for every agent and troubleshooting are in the MCP guide.

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. Upgrading from EventKit Bridge, its earlier name? See Setup. 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 connection's Access tab: Work has Read, Create and Edit; Home has Read; Family and a Google team calendar have nothing; Birthdays and US Holidays are read-only. Changes are set to Ask me first, each column header has a menu and each row a ⋯ button with presets." 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>

It asks before it refuses

When an agent tries to add, change, complete or delete on a calendar it can read but lacks that one action, EK Bridge asks you in the same panel: Claude Code can't add reminders to Groceries. Allow Once, Always Allow (which saves just that action) or Not Now. It never asks about calendars the agent can't see, and at most once an hour for the same thing.

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/access-request-dark.png"> <img alt="The access request panel: Claude Code can't add reminders to Groceries; it has Read and asked to add “Buy oat milk”, due Thursday at 9:00, as reported by claude-code 2.4.1; Not Now, Allow Once and Always Allow buttons and a 45-second wait." src="docs/images/access-request-light.png" width="400"> </picture>

You can see everything, and stop anything

Activity says what each agent changed, by name (Moved “Design review”), and explains every refusal in plain words. EK Bridge stores only the item's ID and looks the name up when you open the row, with Show in Calendar. Pause an agent's connection to refuse its requests while keeping its setup, Remove it to cut it off for good, or pause all of EK Bridge from the menu bar. Optional notifications tell you when a change wasn't made because nobody answered.

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/images/activity-dark.png"> <img alt="Activity grouped under Today and Yesterday: time, connection, change (Added reminder, Changed event, Delete reminder), item with its calendar colour (Buy oat milk, Design review) and result (Approved, Allowed, Declined by you). The selected row's details show Design review in Work, the time it moved from and to, Show in Calendar, and that only the item's ID is stored." src="docs/images/activity-light.png" width="720"> </picture>

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 EK 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 and the test record.

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.

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 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 connection, for example for a script you trust, or allow one agent's changes for 15 minutes at a time. See 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.

</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 agen

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars3
CategoryDevelopment
Updated1d ago
Forks0

Languages

Swift

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low