/ Annuaire / Playground / keeper.sh
● Communauté ridafkih ⚡ Instantané

keeper.sh

par ridafkih · ridafkih/keeper.sh

Universal calendar MCP — aggregate Google, Outlook, iCloud, CalDAV, and ICS calendars into one tool surface your AI agent can query and sync.

keeper.sh is an open-source calendar sync engine with a built-in MCP server. It aggregates events from Google Calendar, Outlook/Office 365, iCloud, CalDAV, Fastmail, and ICS feeds, then exposes them via three MCP tools. Self-hostable with Docker (AGPL-3.0) or available as a cloud service with a free tier.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

keeper-sh.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "keeper-sh": {
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ],
      "_inferred": true
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "keeper-sh",
      "command": "npx",
      "args": [
        "-y",
        "keeper.sh"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "keeper-sh": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "keeper.sh"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add keeper-sh -- npx -y keeper.sh

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : keeper.sh

How to get a daily schedule briefing from all your calendars

👤 Professionals juggling work + personal calendars across providers ⏱ ~5 min beginner

Quand l'utiliser : Every morning when you want Claude to summarize your day across Google, Outlook, and iCloud calendars in one shot.

Prérequis
  • keeper.sh running with calendars connected — npx -y keeper.sh or self-host via Docker; connect providers in the web UI
Déroulement
  1. List connected calendars
    List all my connected calendars in keeper.sh — show provider and account for each.✓ Copié
    → Table of calendars with provider names
  2. Pull today's events
    Get all events from today across all calendars. Group by morning/afternoon/evening and flag any conflicts.✓ Copié
    → Chronological event list with conflict warnings
  3. Plan the day
    Given those events, suggest an optimal order for my 3 unscheduled tasks: code review, doc writing, and 1:1 prep.✓ Copié
    → Time-blocked suggestions fitting around existing events

Résultat : A single-view daily briefing across all calendar providers with actionable scheduling advice.

Pièges
  • Stale events on the free tier (30-min refresh) — Trigger a manual sync in the web UI before querying, or upgrade to Pro for 1-min refresh
Combiner avec : notion · linear

Analyze your meeting load to reclaim focus time

👤 Engineering managers and ICs drowning in meetings ⏱ ~10 min beginner

Quand l'utiliser : End of week when you suspect meetings ate all your deep work time.

Déroulement
  1. Pull this week's event count
    How many calendar events did I have this week? Break down by calendar.✓ Copié
    → Count per calendar
  2. Get event details for the week
    Get all events from Monday through Friday this week. Calculate total meeting hours and longest uninterrupted block.✓ Copié
    → Hour totals and gap analysis
  3. Suggest improvements
    Which recurring meetings could be async? Flag any that overlap or back-to-back with no break.✓ Copié
    → Specific meetings to cancel or move

Résultat : A data-driven view of your meeting load with concrete suggestions to reclaim time.

Pièges
  • All-day events inflate meeting hours — Ask Claude to filter out all-day events before calculating

Detect scheduling conflicts across work and personal calendars

👤 Anyone with calendars on different providers that don't talk to each other ⏱ ~5 min beginner

Quand l'utiliser : Before scheduling something new, check all calendars for conflicts.

Déroulement
  1. Query a time range
    Get all events next Tuesday between 9am and 5pm across all calendars. Are there any overlaps?✓ Copié
    → List of events with any conflicts highlighted
  2. Find open slots
    Find 3 open 1-hour slots next week that are free across all my calendars.✓ Copié
    → Concrete time slots with no conflicts

Résultat : Conflict-free scheduling across providers without manually checking each calendar.

Pièges
  • Timezone mismatches between providers — Always specify IANA timezone in your prompt (e.g., 'in America/New_York')

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

keeper-sh + notion

Pull today's calendar events and create a Notion daily planner page with time blocks

Get today's events from keeper.sh, then create a Notion page in my Daily Notes database with time-blocked tasks around the meetings.✓ Copié
keeper-sh + linear

Check calendar availability before assigning sprint tasks with deadlines

Show my free blocks this week via keeper.sh, then assign these 3 Linear issues to slots where I have 2+ hours free.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_calendars none See all connected calendars and their providers 1 local API call
get_events start: ISO 8601, end: ISO 8601, timezone: IANA Retrieve events within a date range 1 local API call
get_event_count none Quick check of total synced events 1 local API call

Coût et limites

Coût d'exécution

Quota d'API
Self-hosted: unlimited. Cloud free tier: 30-min refresh, 2 sources, 1 destination.
Tokens par appel
100-500 tokens per tool call; large date ranges can return more
Monétaire
Self-hosted: free (AGPL). Cloud: free tier or $5/month Pro (1-min sync, unlimited sources).
Astuce
Self-host the standalone Docker image for zero recurring cost. Cloud Pro is worth it only if you need sub-minute sync.

Sécurité

Permissions, secrets, portée

Portées minimales : calendar:read (per connected provider)
Stockage des identifiants : OAuth tokens and CalDAV credentials encrypted at rest. Session signing via BETTER_AUTH_SECRET env var.
Sortie de données : Self-hosted: stays on your server. Cloud: keeper.sh servers. Calendar API calls go to Google/Microsoft/iCloud respectively.
Ne jamais accorder : calendar:write (unless you explicitly need sync destinations)

Dépannage

Erreurs courantes et correctifs

CSRF validation failed

Set the TRUSTED_ORIGINS environment variable to your domain (e.g., https://calendar.example.com)

Vérifier : Check the keeper.sh web UI loads without 403 errors
Google OAuth redirect fails

Ensure your Google Cloud OAuth consent screen has the correct redirect URI matching your keeper.sh deployment URL

Events not refreshing

Free tier refreshes every 30 minutes. Trigger a manual sync in the web UI, or upgrade to Pro for 1-minute sync.

Vérifier : Check get_event_count before and after manual sync
CalDAV connection rejected

Verify the CalDAV URL includes the full path (usually /dav/calendars/user/). Check credentials and ensure the server supports CalDAV, not just CardDAV.

Vérifier : curl -u user:pass -X PROPFIND <caldav-url>

Alternatives

keeper.sh vs autres

AlternativeQuand l'utiliserCompromis
Google Calendar MCPYou only use Google Calendar and want a simpler setupSingle provider; no aggregation across Outlook/iCloud
Notion CalendarYou're already deep in the Notion ecosystemProprietary; no MCP interface

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills