Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Calendar sync tool & universal calendar MCP server. Aggregate, sync and control calendars on Google, Outlook, Office 365, iCloud, CalDAV or ICS.
| Date | Stars |
|---|---|
| 2026-07-31 | 1216 |
| 2026-08-04 | 1226 |
| 2026-08-06 | 1226 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
35.0
growth rate 0.00%/day
 # About Keeper.sh is a simple & open-source calendar syncing tool. It allows you to pull events from your Google Calendar, Outlook, iCloud, Fastmail, CalDAV server, or a remotely hosted iCal or ICS links, and push them to one or many calendars so the time slots can align across them all. It also serves as a global MCP server and API for you or your agents to manage all your calendars from one convenient interface. You can use the hosted version for convenience and zero-setup, or self-host to get Pro features free. # Features - Aggregating calendar events from remote sources - Event content agnostic syncing engine - Push aggregate events to one or more calendars - MCP (Model Context Protocol) server for AI agent calendar access - Open source under AGPL-3.0 - Easy to self-host - Easy-to-purge remote events # Bug Reports & Feature Requests If you encounter a bug or have an idea for a feature, you may [open an issue on GitHub](https://github.com/ridafkih/keeper.sh/issues) and it will be triaged and addressed as soon as possible. # Contributing High-value and high-quality contributions are appreciated. Before working on large features you intend to see merged, please open an issue first to discuss beforehand. ## Local Development The dev environment runs behind HTTPS at `https://keeper.localhost` using a [Caddy](https://caddyserver.com/) reverse proxy with automatic TLS. The `.localhost` TLD resolves to `127.0.0.1` automatically per [RFC 6761](https://datatracker.ietf.org/doc/html/rfc6761) — no `/etc/hosts` entry is needed. ### Prerequisites - [Bun](https://bun.sh/) (v1.3.11+) - [Docker](https://docs.docker.com/get-started/) & Docker Compose ### Getting Started ```bash bun install ``` #### Generate and Trust a Root CA The dev environment runs behind HTTPS via Caddy. You need to generate a local root certificate authority and trust it so your browser accepts the certificate. ```bash mkdir -p .pki openssl req -x509 -new -nodes \ -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \ -keyout .pki/root.key -out .pki/root.crt \ -days 3650 -subj "/CN=Keeper.sh CA" ``` Then trust it on your platform: **macOS** ```bash sudo security add-trusted-cert -d -r trustRoot \ -k /Library/Keychains/System.keychain .pki/root.crt ``` **Linux** ```bash sudo cp .pki/root.crt /usr/local/share/ca-certificates/keeper-dev-root.crt sudo update-ca-certificates ``` #### Start the Dev Environment ```bash bun dev ``` This starts PostgreSQL, Redis, and a Caddy reverse proxy via Docker Compose, along with the API, web, MCP, and cron services locally. Once running, open `https://keeper.localhost`. ### Architecture | Service | Local Port | Accessed Via | | -------- | ---------- | ------------------------------------ | | Caddy | 443 | `https://keeper.localhost` | | Web | 5173 | Proxied by Caddy | | API | 3000 | Proxied by Web at `/api` | | MCP | 3001 | Proxied by Web at `/mcp` | | Postgres | 5432 | `postgresql://postgres:postgres@localhost:5432/postgres` | | Redis | 6379 | `redis://localhost:6379` | # Qs ## Why does this exist? Because I needed it. Ever since starting [Sedna](https://sedna.sh/)—the AI governance platform—I've had to work across three calendars. One for my business, one for work, and one for personal. Meetings have landed on top of one-another a frustratingly high number of times. ## Why not use _this other service_? I've probably tried it. It was probably too finicky, ended up making me waste hours of my time having to delete stale events it didn't seem to want to track anymore, or just didn't sync reliably. ## How does the syncing engine work? - If we have a local event but no corresponding "source → destination" mapping for an event, we push the event to the destination calendar. - If we have a mapping for an event, b
Excerpt of 31,818 characters
Read on GitHub864
9
1
1
Chase Naples · Bank of America
1
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:f83f4664a2499145, topic:mcp, topic:mcp-server, desc:mcp server