2026-10-16 · Betrieb & Infrastruktur
Calendly selbst betreiben, nachdem Cal.com den Code geschlossen hat
Für meine Erstgespräche wollte ich eine Buchungsseite auf eigener Infrastruktur, mit Kalender und Stripe. Der naheliegende Kandidat hatte gerade aufgehört, quelloffen zu sein.
Calendly ist bequem, aber es kostet pro Kopf, und die Daten der Leute, die bei mir buchen, liegen beim Anbieter. Ich wollte die Buchungsseite unter meiner eigenen Domain, auf meinem eigenen Server in der Schweiz, mit Abgleich meines Kalenders und — für bezahlte Termine — Stripe.
Der Upstream macht zu
Die naheliegende Wahl war Cal.com. Nur: Im April 2026 hat Cal.com den Code geschlossen. Übrig blieb Cal.diy, die Community-Ausgabe unter MIT-Lizenz, ohne fertiges Image und mit dem Hinweis im README, sie sei für den persönlichen, nicht produktiven Einsatz gedacht.
Ich habe zuerst die Lizenz gelesen, nicht das README. MIT erlaubt den produktiven und auch den kommerziellen Betrieb; der Hinweis ist eine Empfehlung, keine Bedingung. Damit war die Frage nicht mehr «darf ich», sondern «kann ich das sauber betreiben».
Was ich gebaut habe
Das Image baue ich selbst, aus einem festgehaltenen Commit des Projekts — nicht aus «latest». So weiss ich jederzeit, welcher Code läuft, und ein Update ist eine bewusste Entscheidung. Für den Build braucht der Container vorübergehend deutlich mehr Arbeitsspeicher als im Betrieb.
Die Registrierung ist geschlossen, die Einrichtungsseite habe ich sofort nach dem Start belegt — eine frisch gestartete Instanz, deren Admin-Konto noch frei ist, ist eine offene Tür. Es gibt genau ein Ereignis: ein Erstgespräch von 30 Minuten mit Puffer, Mindestvorlauf und einem Buchungsfenster von 30 Tagen. Die Standard-Ereignisse habe ich gelöscht.
Der Teil, den man gern vergisst
Eine Buchungsseite sammelt Namen, E-Mail-Adressen und Telefonnummern. Darum gehört zum Aufsetzen auch: Buchungen werden sechs Monate nach dem Termin automatisch gelöscht, und die nächtlichen Sicherungen der Datenbank sind verschlüsselt, der Schlüssel liegt nicht auf dem Server. Dass sich eine Sicherung entschlüsseln und lesen lässt, habe ich geprüft, bevor ich es in die Datenschutzerklärung geschrieben habe.
Verworfen habe ich zwei Alternativen: eine eigene kleine Buchungslogik (zu viel Arbeit für etwas, das es schon gibt) und Easy!Appointments (keine Stripe-Anbindung).
Die Seite lief nach einem Tag. Und weil ich sie selbst nutze, biete ich Cal.diy inzwischen auch als betriebene Anwendung für Kunden an — mit derselben Einrichtung.