Abo-Kalender für Veranstalter
Deine Termine im Kalender deiner Besucher
Für Vereine, Kursanbieter, Schulen und WordPress-Seiten: Ein Button auf deiner Website, und Besucher abonnieren deine Termine in Apple Kalender, Google Kalender, Microsoft 365 oder Outlook. Wenn du einen Termin verschiebst, zieht ihr Kalender beim nächsten Abruf nach. Ohne Tracker, gehostet in Deutschland.
So funktionierts
Einmal eintragen, überall aktuell
Termine eintragen
Du legst einen Kalender an und schreibst Termine hinein: über die Publisher API, ein Plugin, das sie nutzt, oder deinen KI-Agenten. Jeder Termin bekommt deine eigene ID, zum Beispiel die Beitrags-ID aus WordPress.
Button einbauen
Zwei Zeilen HTML auf deiner Website, fertig. Wir hosten den Kalender-Feed, eine Abo-Seite mit deinem Logo und den Button selbst.
Besucher abonnieren
Ein Klick, App wählen, fertig: Apple Kalender, Google Kalender, Microsoft 365, Outlook.com oder Outlook am Desktop. Änderungen landen bei Abonnenten, sobald ihre Kalender-App den Feed das nächste Mal abruft.
Live-Vorschau
Stell deinen Button ein, kopier das Snippet
Das ist der echte Button mit einem Demo-Kalender. Farbe, Text und Sprache änderst du hier, das Snippet daneben passt sich an.
Vorschau auf deiner Website
Unsere Kurse und Termine
Abonniere unseren Kalender, dann stehen alle Termine automatisch in deiner Kalender-App.
Vorschau lädt …
Klicks lösen das Event ks:subscribe aus. Probier es aus:
Noch kein Klick.
<div class="ks-subscribe" data-calendar="cal_XXXXXXXXXXXX" data-lang="de" data-color="#003DC5"></div> <script src="https://app.kalender-sync.de/embed/v1/button.js" async></script>
Ersetze cal_XXXXXXXXXXXX durch die ID deines Kalenders. Die findest du in der App und in der API-Antwort.
Die Vorschau nutzt einen echten Demo-Kalender. Ein Klick im Menü legt ein echtes Abo dieses Demo-Kalenders an.
Lass es deinen Agenten einrichten
Dein KI-Assistent legt den Kalender an, trägt die Termine ein und gibt dir den fertigen Button-Code.
So geht's mit KI-AgentenWas drin ist
Button, Abo-Seite und Feed aus einer Hand
Einbettbarer Button
Farbe, Text und Sprache stellst du per Attribut ein, die Textfarbe passt sich automatisch an. Der Button rendert im Shadow DOM, das CSS deiner Seite bricht ihn also nicht.
Abo-Seite
Eine eigene Seite pro Kalender mit Banner, Logo, Veranstalter und den kommenden Terminen. Teilen per Link, QR-Code oder über das Teilen-Menü des Handys. Ob Termine dort öffentlich stehen, entscheidest du.
ICS-Feed
Ein normaler iCalendar-Feed, den jede Kalender-App lesen kann. Für Apps, die nicht im Menü stehen, führt „Andere App“ zur Abo-Seite mit dem Feed-Link.
Wiederholungen
Wöchentliche Kurse, monatliche Treffen, Ausnahmen und verschobene Einzeltermine. Die API nimmt Wiederholungsregeln nach RFC 5545 an.
Statistik ohne Tracking
Aktive Abonnenten je Kalender-App und Klicks auf den Button der letzten 30 Tage. Gezählt wird über Feed-Abrufe, nicht über Personen.
Für Plugins und Plattformen
Abgleich in Stapeln von bis zu 100 Terminen und ein vollständiger Abgleich, der entfernt, was es nicht mehr gibt. So hält ein Plugin den Kalender ohne eigene Buchführung aktuell.
Datenschutz
Button und Abo-Seite: ohne Tracker, ohne Cookies
Deine Besucher abonnieren einen Kalender, mehr nicht. Der Button lädt nur sein eigenes Script von app.kalender-sync.de und sonst nichts. Die Menüpunkte sind einfache Links, die das Abo anlegen und zur gewählten App weiterleiten.
Hosting, Verschlüsselung und AVV im Detail →Keine Tracker, keine Cookies
Button und Abo-Seite setzen keine Cookies und binden keine Dienste Dritter ein. Die Abo-Seite braucht deshalb auch kein Cookie-Banner.
Wir speichern nicht, wer abonniert
Keine IP-Adresse, kein User-Agent. Der Hinweis „Du hast schon abonniert“ liegt nur im Browser des Besuchers (localStorage).
Hosting in Deutschland
Server bei Hetzner in Nürnberg. Termininhalte liegen verschlüsselt in der Datenbank. Den AVV nach Art. 28 DSGVO gibt es in jedem Tarif.
Dein Analytics, dein Consent
Jeder Klick löst auf deiner Seite das Event ks:subscribe aus. Wenn du Klicks messen willst, machst du das mit deinem eigenen Tool und unter deinem eigenen Consent.
Tarife
Kostenlos testen, live ab Basic
Abo-Kalender sind Teil der normalen Kalender-Sync-Tarife. Du brauchst keinen eigenen Vertrag.
| Tarif | Live-Kalender | Aktive Abonnenten |
|---|---|---|
| Free 3 Testkalender mit je 500 Terminen, Keys mit ks_test_ | nur Sandbox | nicht live |
| Basic | 1 | 500 |
| Professional | 10 | 5.000 |
| Mehr | auf Anfrage | auf Anfrage |
- Bis zu 5.000 Termine je Live-Kalender.
- Aktiv heißt: Die Kalender-App hat den Feed in den letzten 14 Tagen abgerufen.
- Wird eine Grenze erreicht, läuft alles weiter. Du bekommst eine Mail und einen Hinweis in der Statistik.
Für KI-Agenten
Selbst einrichten oder vom Agenten einrichten lassen
Dein Assistent legt den Kalender an, trägt die Termine ein und gibt dir den Button. Oder du schreibst die Termine selbst über die Publisher API.
Kopiere diesen Auftrag in deinen Assistenten. Er liest die Anleitung und führt dich Schritt für Schritt durch:
Lies https://kalender-sync.de/agents.md und richte mit mir einen Abo-Kalender bei Kalender Sync ein. Führ mich Schritt für Schritt durch Anmeldung, Kalender, Termine und den Button für meine Website.
Die Anmeldung machst du selbst. Claude und ChatGPT legen Kalender und Termine direkt an, sobald du beim Verbinden „Abo-Kalender verwalten“ anhakst. Schon verbunden? Dann einmal neu verbinden und den Haken setzen. Die Werkzeuge kosten keine Credits. Coding-Agenten wie Cursor nutzen die Publisher API und bauen dir den Button in die Website ein.
- 1 Kostenloses Konto anlegen und unter Einstellungen › Entwickler / API einen Sandbox-Key erstellen. Ihn als Umgebungsvariable KS_KEY setzen. Live-Keys gibt es ab Basic.
- 2 Kalender anlegen und Termine eintragen, jeder Termin unter deiner eigenen ID: Terminal
curl https://api.kalender-sync.de/v1/publisher/calendars \ -H "Authorization: Bearer $KS_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Kurse im Studio", "timezone": "Europe/Berlin", "language": "de" }' # id aus der Antwort übernehmen export KS_CAL="cal_XXXXXXXXXXXX" curl -X PUT https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/events/kurs-101 \ -H "Authorization: Bearer $KS_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Yoga für Einsteiger", "start": "2026-11-03T18:00:00", "end": "2026-11-03T19:15:00" }' - 3 Den Button in deine Seite einfügen, in WordPress zum Beispiel als HTML-Block. Farbe und Text stellst du in der Live-Vorschau oben ein. HTML
<div class="ks-subscribe" data-calendar="cal_XXXXXXXXXXXX"></div> <script src="https://app.kalender-sync.de/embed/v1/button.js" async></script>
- 1 Kostenloses Konto anlegen und unter Einstellungen › Entwickler / API einen Sandbox-Key erstellen. Ihn als Umgebungsvariable KS_KEY setzen. Live-Keys gibt es ab Basic.
- 2 Kalender anlegen und Termine eintragen, jeder Termin unter deiner eigenen ID: publish.py
import os, requests api = "https://api.kalender-sync.de/v1/publisher" headers = {"Authorization": f"Bearer {os.environ['KS_KEY']}"} cal = requests.post(f"{api}/calendars", headers=headers, json={ "name": "Kurse im Studio", "timezone": "Europe/Berlin", "language": "de", }).json() requests.put(f"{api}/calendars/{cal['id']}/events/kurs-101", headers=headers, json={ "title": "Yoga für Einsteiger", "start": "2026-11-03T18:00:00", "end": "2026-11-03T19:15:00", }).raise_for_status() print(cal["subscribe_page_url"]) - 3 Den Button in deine Seite einfügen, in WordPress zum Beispiel als HTML-Block. Farbe und Text stellst du in der Live-Vorschau oben ein. HTML
<div class="ks-subscribe" data-calendar="cal_XXXXXXXXXXXX"></div> <script src="https://app.kalender-sync.de/embed/v1/button.js" async></script>
- 1 Kostenloses Konto anlegen und unter Einstellungen › Entwickler / API einen Sandbox-Key erstellen. Ihn als Umgebungsvariable KS_KEY setzen. Live-Keys gibt es ab Basic.
- 2 Kalender anlegen und Termine eintragen, jeder Termin unter deiner eigenen ID: publish.mjs (Node 18+)
const api = "https://api.kalender-sync.de/v1/publisher"; const headers = { Authorization: `Bearer ${process.env.KS_KEY}`, "Content-Type": "application/json" }; const cal = await fetch(`${api}/calendars`, { method: "POST", headers, body: JSON.stringify({ name: "Kurse im Studio", timezone: "Europe/Berlin", language: "de" }), }).then((r) => r.json()); await fetch(`${api}/calendars/${cal.id}/events/kurs-101`, { method: "PUT", headers, body: JSON.stringify({ title: "Yoga für Einsteiger", start: "2026-11-03T18:00:00", end: "2026-11-03T19:15:00" }), }); console.log(cal.subscribe_page_url); - 3 Den Button in deine Seite einfügen, in WordPress zum Beispiel als HTML-Block. Farbe und Text stellst du in der Live-Vorschau oben ein. HTML
<div class="ks-subscribe" data-calendar="cal_XXXXXXXXXXXX"></div> <script src="https://app.kalender-sync.de/embed/v1/button.js" async></script>
FAQ
Häufige Fragen zu Abo-Kalendern
Wie schnell kommen Änderungen bei Abonnenten an?
Sobald du einen Termin änderst, steht er im Feed. Bei Abonnenten erscheint die Änderung, wenn ihre Kalender-App den Feed das nächste Mal abruft. Wie oft das passiert, bestimmt die App: Google Kalender braucht dafür oft mehrere Stunden, Apple und Outlook unterscheiden sich je nach Gerät und Einstellung.
Eine direkte Übertragung in verbundene Kalender ist geplant und kommt später als eigenes Update.
Abo-Kalender in der DokuWelche Kalender-Apps funktionieren?
Das Menü des Buttons bietet Apple Kalender (iPhone, iPad, Mac), Google Kalender, Microsoft 365, Outlook.com und Outlook als Desktop-App an. Die App, die zum Gerät passt, steht oben.
Für jede andere App gibt es „Andere App“: Das führt zur Abo-Seite mit dem Feed-Link, den jede Kalender-App mit Abo-Funktion versteht.
Was sehen Abonnenten in ihrem Kalender?
Die Termine mit Titel, Zeit, Ort, Beschreibung und Link, so wie du sie einträgst. Der Kalender erscheint als eigener, schreibgeschützter Kalender neben ihren anderen.
Abonnenten sehen nichts voneinander, und du siehst nicht, wer abonniert hat. Du siehst nur Zahlen je App.
Wie bestellt man einen Abo-Kalender wieder ab?
In der eigenen Kalender-App: den abonnierten Kalender entfernen oder das Abo löschen. Ein Konto bei Kalender Sync brauchen Abonnenten weder dafür noch für das Abonnieren.
Brauche ich Programmierkenntnisse?
Für den Button nicht: Du kopierst zwei Zeilen HTML in deine Seite, zum Beispiel in einen HTML-Block in WordPress. Um die Termine zu pflegen, nutzt du die Publisher API, ein Plugin, das sie unterstützt, oder lässt das deinen KI-Agenten erledigen.
Publisher APIWas kostet ein Abo-Kalender?
Im Free-Tarif testest du alles in der Sandbox. Live gehen kannst du ab Basic mit einem Kalender und bis zu 500 aktiven Abonnenten, Professional erlaubt zehn Kalender und bis zu 5.000 aktive Abonnenten. Darüber machen wir dir ein Angebot.
Aktiv heißt: Die Kalender-App hat den Feed in den letzten 14 Tagen abgerufen. Wird eine Grenze erreicht, läuft alles weiter und du bekommst eine Nachricht.
Preise ansehenFindet Google die Abo-Seiten?
Nein, im Moment nicht. Abo-Seiten sind auf noindex gestellt und tauchen nicht in Suchmaschinen auf. Gefunden werden deine Termine über deine eigene Website, auf der der Button sitzt.
Funktioniert der Button mit Page-Buildern?
Ja. Das Script sucht beim Laden nach allen Elementen mit der Klasse ks-subscribe. Fügt dein Page-Builder oder deine App Inhalte erst später ein, rufst du danach window.KalenderSync.mountButtons() auf.
Mehr in der Doku: Abo-Kalender · Publisher API
Bring deine Termine in jeden Kalender.
Kostenlos in der Sandbox startenMomentan unterstützte Anbieter
GoogleMicrosoftApple iCloudKSuiteGMXWEB.DEmailbox.orgiCal-Feeds