Für Entwickler: Tool-Referenz
Der Kalender-Sync-MCP-Server (https://app.kalender-sync.de/mcp, Streamable HTTP) stellt bis zu sieben Tools bereit. Die Tool-Beschreibungen sind Englisch — sie sind primär für das Sprachmodell geschrieben; dein Assistent antwortet dir trotzdem in deiner Sprache.
Zwei Eigenschaften gelten für alle Tools:
- Sichtbarkeits-Gating: Jedes Tool sieht nur die Kalender, die du freigegeben hast, und je Kalender nur die erlaubte Detailstufe. Nicht freigegebene Kalender existieren für den Server nicht.
- Dynamische Tool-Liste: Die drei Schreib-Tools erscheinen nur, wenn dein Zugriff schreiben darf (in jedem Tarif, pro Kalender freigegeben). Ein Zugriff ohne Schreibrecht sieht 4 Tools — ein Tool, das immer ablehnen würde, gibt es bei uns nicht. Änderst du die Schreibrechte später, erscheinen die Tools erst, wenn der Client die Tool-Liste neu lädt.
Lese-Tools
Abschnitt betitelt „Lese-Tools“list_calendars
Abschnitt betitelt „list_calendars“Listet die freigegebenen Kalender mit ihrer jeweiligen Detailstufe. readable: false markiert Kalender, die gerade nicht gelesen werden können (sie fehlen dann auch in allen anderen Antworten — und werden bewusst aufgeführt statt verschwiegen). writable: true markiert die Kalender, in die dieser Zugriff Termine schreiben darf — das ist die Quelle für die calendar_id von create_event. sync_health zeigt zusätzlich den Zustand der Kalender-Sync-eigenen Synchronisation, falls der Kalender an einer teilnimmt.
Parameter: keine.
get_availability
Abschnitt betitelt „get_availability“Liefert die belegten Zeiten in einem Zeitraum, über alle freigegebenen Kalender hinweg. Jeder Kalender wird direkt beim Anbieter gelesen (keine Kopie); Lesevorgänge werden bis zu 60 Sekunden wiederverwendet. Enthalten ist alles, was Zeit blockiert — auch Ganztägiges und „mit Vorbehalt”. Nicht enthalten: abgesagte und ausdrücklich als „frei” markierte Termine. Konnte ein Kalender nicht gelesen werden, steht das in sources und warnings — eine Antwort behauptet nie Vollständigkeit, die sie nicht hat.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
from / to | ja | Zeitraum, ISO 8601. Max. 92 Tage Spanne, Rückblick max. 365 Tage. |
search_events
Abschnitt betitelt „search_events“Findet Termine per Text — case-insensitive Substring über Titel, Ort und Beschreibung. Die Suche ist bewusst ein Filter über dieselben sichtbarkeits-gefilterten Daten wie get_availability, kein zweiter Lesepfad: Kalender auf Stufe „Nur Geblockt” haben keine Titel und können darum nie matchen — das sagt die Antwort als Warnung dazu. „Kein Treffer” ist also nie ein Beweis, dass es den Termin nicht gibt.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
query | ja | Suchtext (min. 2 Zeichen) |
from / to | nein | Zeitraum wie bei get_availability; Standard: −7 bis +85 Tage |
Maximal 50 Treffer (chronologisch die frühesten), truncated zeigt an, wenn gekappt wurde.
send_feedback
Abschnitt betitelt „send_feedback“Schickt Feedback des Nutzers ans Kalender-Sync-Team — etwa wenn etwas gewünscht wurde, das die Tools noch nicht können. Der Assistent ist angewiesen, das Tool nur auf ausdrückliche Bitte zu nutzen. contact_ok (Standard: aus) erlaubt genau eine themenbezogene Rückmeldung von uns — kein Newsletter, kein Verteiler. Details zur Verarbeitung in der Datenschutzerklärung, Ziffer 3.10.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
message | ja | Das Feedback (10–2000 Zeichen) |
category | ja | missing_capability · bug · other |
contact_ok | nein | Nur wenn der Nutzer einer einmaligen Antwort ausdrücklich zugestimmt hat |
Schreib-Tools (alle Tarife, pro Kalender freigegeben)
Abschnitt betitelt „Schreib-Tools (alle Tarife, pro Kalender freigegeben)“Der zentrale Grundsatz: Der Assistent kann nur Termine anfassen, die er selbst angelegt hat. Deine bestehenden Termine sind für ihn technisch nicht adressierbar — das ist Architektur, keine Regel, die ein Prompt brechen könnte. Mehr dazu unter Schreibzugriff.
create_event
Abschnitt betitelt „create_event“Legt einen Termin in einem beschreibbaren Kalender an. Die Verfügbarkeit wird im Moment des Schreibens live geprüft (nicht aus dem Cache): Eine Überschneidung verhindert das Anlegen nicht, kommt aber als Warnung zurück — ob doppelt gebucht werden soll, entscheidet der Nutzer. start/end verlangen ISO 8601 mit Zeitzone; calendar_id ist nur bei mehreren beschreibbaren Kalendern nötig — welche das sind, zeigt list_calendars über writable: true. Fehlt die Angabe bei mehreren, nennt die Fehlermeldung die zulässigen Kalender.
update_event · delete_event
Abschnitt betitelt „update_event · delete_event“Ändern bzw. löschen einen Termin den dieser Zugriff selbst angelegt hat (per event_id aus create_event). Fremde Termine sind nicht adressierbar — der Server antwortet dann not_found, nicht forbidden, um nicht einmal die Existenz zu bestätigen. Löschungen werden beim Anbieter ausgeführt und propagieren über den normalen Sync in gespiegelte Kalender. Beide Tools tragen die MCP-Annotation destructiveHint: true.
Protokollierung
Abschnitt betitelt „Protokollierung“Jeder Tool-Aufruf landet als Metadaten im Zugriffsprotokoll — Zeitpunkt, Tool, betroffene Kalender, Ergebnis. Nie der Inhalt deiner Termine, nie der Suchtext, nie der Feedback-Wortlaut.
Stand: Server-Version 1.2.0 (31.07.2026). Der Server ist im offiziellen MCP Registry als de.kalender-sync/kalender-sync gelistet. Er stellt die Tool-Liste bei jeder Verbindung neu zusammen, Clients cachen sie aber — nach einer Rechte-Änderung musst du sie im Client neu laden.