# keeper.sh [Health: Active]

**Category:** 🏢 Workplace & Productivity  
**Repository:** https://github.com/ridafkih/keeper.sh  
**GitHub Stars:** 1426  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/keeper-sh

## Description
Calendar sync tool & universal calendar MCP server. Aggregate, sync and control calendars on Google, Outlook, Office 365, iCloud, CalDAV or ICS.

## Tools
Capabilities this server exposes over MCP:

- **list_calendars** — List all calendars connected to Keeper.sh, including provider name and account.
- **get_event_count** — Get the number of calendar events. Optionally scoped to a date range with `from` and `to` ISO 8601 datetimes.
- **get_events** — Get calendar events within a date range. Accepts ISO 8601 datetimes and an IANA timezone identifier used to localize event times.
- **get_event** — Get a single calendar event by its ID.
- **find_free_time** — Find open slots of at least a given duration across every synced calendar in a date range.
- **create_event** — Create an event on a connected calendar. Requires a calendar ID, title, start time, and end time.
- **update_event** — Update an existing calendar event. Only the fields you provide are updated.
- **delete_event** — Delete a calendar event by its ID.
- **get_pending_invites** — Get invitations on a calendar that have not been responded to within a date range.
- **rsvp_event** — Respond to a calendar event invitation with `accepted`, `declined`, or `tentative`.
- **list_accounts** — List all connected calendar accounts with provider information.
- **trigger_sync** — Force a sync now instead of waiting for the next scheduled run. Throttled to one request per minute.
- **pause_sync** — Pause or resume syncing for a single calendar without disconnecting it.
- **get_ical_feed** — Get your iCal feed URL for subscribing in other calendar apps.

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What keeper.sh does

keeper.sh provides a unified calendar layer for agents and applications that need to work across multiple accounts. Google Calendar, Outlook, Office 365, iCloud, Fastmail and CalDAV connections can act as both sources and destinations. Remotely hosted iCal and ICS links are supported as pull-only sources.

The service can aggregate events, synchronize them to one or more calendars, and expose the combined result through an iCal feed. Its MCP interface also supports direct calendar operations, including searching availability, managing events and handling invitations. Per-source privacy controls can remove event titles, descriptions and locations during synchronization, replacing the title with a calendar or event template.

## How it works

Calendar ingestion stores source data in keeper.sh and runs independently from destination updates. Google and Outlook use provider change mechanisms to retrieve updates incrementally. CalDAV, iCloud and Fastmail are checked against stored event state, while iCal and ICS subscriptions are compared with their previously stored snapshots.

Destination calendars are reconciled by a worker process. Keeper.sh tracks the relationship between source events and copied events, allowing removed source events to be removed from destinations on a later synchronization pass. It also identifies events it created using a Keeper.sh marker. A calendar paused through the MCP interface is skipped by both ingestion and delivery.

Scheduled synchronization runs automatically, and `trigger_sync` can request an immediate pass. The trigger is limited to one request per minute for each user. The `get_ical_feed` tool provides a feed URL that other calendar applications can subscribe to.

## Setup and configuration

The hosted service is available through keeper.sh. Self-hosting is also supported, with the project’s Pro functionality included in that deployment model. The local development environment uses Bun, Docker and Docker Compose, and runs PostgreSQL, Redis, Caddy, the web and API services, the MCP service, cron jobs and workers.

For local development, install dependencies with `bun install`, generate and trust a local root certificate for the HTTPS Caddy proxy, then start the environment with `bun dev`. The local MCP service is exposed through the web proxy at `/mcp`; the development site is available at `https://keeper.localhost`.

## Tools and capabilities

- List connected calendars and accounts with provider details.
- Count events or retrieve events within ISO 8601 date ranges and an IANA timezone.
- Retrieve, create, update and delete individual events.
- Find free periods across all synchronized calendars for a requested duration.
- List outstanding invitations and respond with accepted, declined or tentative.
- Trigger synchronization, pause or resume a calendar, and retrieve the combined iCal feed URL.
- Expose a REST API under `/api/v1`, authenticated with API tokens.

## Limitations and notes

Remote iCal and ICS sources are pull-only. The hosted plan’s limits vary by plan: the free tier allows two linked accounts, three sync mappings and 25 API requests per day, with destination refreshes every 30 minutes. Cloud Pro and self-hosted deployments remove those listed limits and use one-minute destination refreshes. Event ingestion and destination pushing are separate processes, so a scheduled refresh does not mean every provider is contacted in exactly the same way.

_Full upstream README: https://allmcps.com/mcp/keeper-sh/readme_

