Full Sync
War dein Plugin eine Zeit lang aus oder ist eine Anfrage verloren gegangen, bringt ein Full Sync den Kalender wieder auf den Stand deines Systems. Empfehlung: beim ersten Verbinden und danach einmal täglich, zum Beispiel per WP-Cron.
1. Sync starten
curl -X POST https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/syncs \ -H "Authorization: Bearer $KS_KEY"{ "sync_id": "sync_XXXXXXXXXXXXXXXX", "expires_at": "2026-11-03T15:02:11.000Z" }Ein Sync ist eine Stunde gültig.
2. Alle aktuellen Termine schicken
Schick jeden Termin, den es in deinem System gibt, per Batch mit der sync_id:
curl https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/events/batch \ -H "Authorization: Bearer $KS_KEY" \ -H "Content-Type: application/json" \ -d '{ "sync_id": "sync_XXXXXXXXXXXXXXXX", "operations": [ { "method": "PUT", "external_id": "wp-1482", "event": { "title": "Sunset Yoga", "start": "2026-11-12T18:00:00" } }, { "method": "PUT", "external_id": "wp-1490", "event": { "title": "Yin Yoga", "start": "2026-11-13T18:30:00" } } ] }'Unveränderte Termine kosten dabei nichts: Sie werden nur als bestätigt markiert, nicht neu geschrieben. Die sync_id gibt es nur im Batch, nicht beim Einzel-PUT.
3. Sync abschließen
curl -X POST https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/syncs/sync_XXXXXXXXXXXXXXXX/complete \ -H "Authorization: Bearer $KS_KEY"{ "sync_id": "sync_XXXXXXXXXXXXXXXX", "deleted": 3, "remaining": 42 }Dabei werden alle Termine gelöscht, die während des Syncs nicht geschickt wurden. Termine, die du während des Syncs außerhalb davon geschrieben hast (zum Beispiel ein normales Speichern auf der Website), bleiben erhalten.
Schutz vor versehentlichem Leeren
Abschnitt betitelt „Schutz vor versehentlichem Leeren“Würde das Abschließen mehr als die Hälfte der Termine löschen, lehnt die API mit 409 large_delete ab. Ein halb fertiger Export soll nie einen Kalender mit tausenden Abonnenten leeren.
Ist das Löschen gewollt, bestätige es:
curl -X POST https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/syncs/sync_XXXXXXXXXXXXXXXX/complete \ -H "Authorization: Bearer $KS_KEY" \ -H "Content-Type: application/json" \ -d '{ "confirm_large_delete": true }'| Code | Wann |
|---|---|
sync_not_found | Die sync_id gehört nicht zu diesem Kalender. |
sync_expired | Die Stunde ist um. Starte einen neuen Sync. |
sync_completed | Der Sync wurde schon abgeschlossen. |
large_delete | Mehr als die Hälfte würde gelöscht. |