Repolode
ridafkih

ridafkih/keeper.sh

Open-source calendar sync tool that aggregates and mirrors events across Google, Outlook, iCloud, Fastmail, CalDAV and ICS calendars, with a built-in MCP server.

Stars
1,444
Forks
75
Open issues
164
Last commit
15 hours ago

What is it?

Keeper.sh pulls events from Google Calendar, Outlook, iCloud, Fastmail, CalDAV servers, and remote iCal or ICS links, then pushes them to one or more destination calendars so busy time shows up everywhere. Google, Outlook, iCloud, Fastmail, and CalDAV can act as either sources or destinations, while iCal and ICS links are pull-only.

The sync engine tracks which events it created, so deleting an event at the source removes its copy on the destination on a later pass, and cleanup never touches events the user created directly. Per-source privacy controls can strip event names, descriptions, and locations, replacing titles with a calendar or event name template. Google and Outlook use provider sync tokens for incremental updates.

Keeper.sh also exposes a REST API under /api/v1 authenticated with API tokens, an MCP server so AI agents can read and manage calendars, and a combined iCal feed that any calendar app can subscribe to. It is available as a hosted service and as a self-hostable stack built from Docker images, with PostgreSQL and Redis.

Key features

  • 01Syncs between Google Calendar, Outlook, iCloud, Fastmail, and CalDAV as sources or destinations
  • 02Pulls events from iCal and ICS links
  • 03Incremental sync for Google and Outlook using provider sync tokens
  • 04Per-source privacy controls that hide event titles, descriptions, and locations
  • 05REST API and MCP server for managing calendars programmatically or from AI agents
  • 06Combined iCal feed for subscribing from any calendar app

Use cases

  • Keeping work, personal, and business calendars aligned so meetings don't overlap
  • Sharing busy or free time from one calendar to another without exposing event details
  • Letting an AI agent read and manage calendars through MCP
  • Self-hosting calendar aggregation on your own PostgreSQL and Redis

Quick start

  1. 1

    Install dependencies (requires Bun v1.3.11+ and Docker)

    bun install
  2. 2

    Start the dev environment (PostgreSQL, Redis, Caddy and all services)

    bun dev
  3. 3

    Open https://keeper.localhost in your browser (trust the local root CA first, as described in the README)

Things to know

  • Self-hosting means you run the server, domain, upgrades and backups yourself.
  • Self-hosting requires registering your own Google and Microsoft OAuth apps.
  • AGPL-3.0 is a copyleft license, so modified versions you run as a service must be shared under the same terms.

In collections

Topics

FAQ

What is keeper.sh?
Open-source calendar sync tool that aggregates and mirrors events across Google, Outlook, iCloud, Fastmail, CalDAV and ICS calendars, with a built-in MCP server. Keeper.sh pulls events from Google Calendar, Outlook, iCloud, Fastmail, CalDAV servers, and remote iCal or ICS links, then pushes them to one or more destination calendars so busy time shows up everywhere. Google, Outlook, iCloud, Fastmail, and CalDAV can act as either sources or destinations, while iCal and ICS links are pull-only.
Is keeper.sh free to use? What license does it have?
keeper.sh is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is keeper.sh still maintained?
Actively maintained. The last commit to keeper.sh was on Nov 6, 2026.
What can I use keeper.sh for?
Keeping work, personal, and business calendars aligned so meetings don't overlap Sharing busy or free time from one calendar to another without exposing event details Letting an AI agent read and manage calendars through MCP Self-hosting calendar aggregation on your own PostgreSQL and Redis
How do I install keeper.sh?
Install dependencies (requires Bun v1.3.11+ and Docker): bun install Start the dev environment (PostgreSQL, Redis, Caddy and all services): bun dev Open https://keeper.localhost in your browser (trust the local root CA first, as described in the README)
Where can I get keeper.sh?
The source code and installation instructions are on GitHub: https://github.com/ridafkih/keeper.sh

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects