Cal.com self-hosted: Calendly-Alternative für Terminbuchung
Was dieser Artikel behandelt
- Was Cal.com ist: die führende Open-Source-Terminbuchungs-Plattform.
- Self-Hosting mit Docker, Kalender-Anbindung (CalDAV, Google, Outlook).
- Event-Typen, Verfügbarkeit, Team-Buchungen.
- Workflow-Automatisierung: Webhooks, n8n, Bestätigungen.
- Wann sich Self-Hosting lohnt vs. Cal.com-Cloud.
Einleitung
Cal.com ist die Open-Source-Antwort auf Calendly: „Buche einen Termin bei mir”-Links, Verfügbarkeits-Management, Kalender-Sync, Team-Round-Robin. Self-hosted hast Du volle Kontrolle über Buchungsdaten (DSGVO-relevant: Termine sind oft personenbezogene Daten).
Das Self-Hosting ist etwas aufwendiger als ein einzelner Container (Next.js-App + Postgres + Prisma), aber machbar und für Berater, Agenturen und Dienstleister oft die DSGVO-sichere Lösung.
Typische Anwendungsszenarien
- Beratungs-Termine: Kunden buchen Slots selbst, Kalender wird automatisch befüllt.
- Team-Scheduling: Round-Robin zwischen Team-Mitgliedern.
- Recruiting: Bewerbungsgespräche buchen ohne Mail-Ping-Pong.
- Support-Slots: Kunden buchen Support-Zeitfenster.
- KI-Workflows: n8n reagiert auf Buchungen → Erinnerungen, Vorbereitungs-Docs, CRM-Einträge.
Installation: Docker (ehrlich gesagt: mittel)
Cal.com ist eine Next.js-App, der offizielle Self-Hosting-Weg ist Docker mit eigenem Build:
git clone https://github.com/calcom/docker.git calcom-docker
cd calcom-docker
cp .env.example .env
# .env editieren: NEXTAUTH_SECRET, DATABASE_URL, etc.
docker compose up -d
Wichtige .env-Variablen:
NEXTAUTH_SECRET=zufaellig-lang
CALENDSO_ENCRYPTION_KEY=zufaellig-lang-32-chars
DATABASE_URL=postgresql://calcom:geheim@db:5432/calcom
NEXT_PUBLIC_WEBAPP_URL=https://kalender.deine-domain.de
EMAIL_FROM=kalender@deine-domain.de
EMAIL_SERVER_HOST=smtp.dein-mailserver.de
EMAIL_SERVER_PORT=587
EMAIL_SERVER_USER=...
EMAIL_SERVER_PASSWORD=...
Nach dem Start: Admin-Account anlegen, Event-Typen definieren, Kalender verbinden.
Kalender-Anbindung
- CalDAV: Nextcloud-Kalender, ownCloud, Radicale, für Self-Hoster die Wahl.
- Google Calendar: OAuth-Integration.
- Outlook/Exchange: Microsoft 365.
- Mehrere Kalender: Verfügbarkeit wird über alle synchronisiert (Konflikt-Erkennung).
Event-Typen und Verfügbarkeit
- Event-Typen: „30-Min-Call”, „Beratung 60 Min”, „Erstgespräch”, je mit eigener Dauer, Buffer, Ort (Video-Link, Telefon, Präsenz).
- Verfügbarkeit: Wochentage, Zeiten, Ausnahmen, Puffer zwischen Terminen.
- Team-Events: Collective (alle müssen können), Round-Robin (Rotation).
- Buchungsseite: Dein öffentlicher Link
kalender.deine-domain.de/du.
Automatisierung mit n8n
Cal.com sendet Webhooks bei Buchungen/Stornierungen:
Cal.com-Webhook: BOOKING_CREATED
│
▼
n8n: Daten extrahieren (Name, Zeit, Notizen)
│
├─→ Twenty CRM: Kontakt/Deal anlegen
├─→ Ollama: Personalisierte Vorbereitungs-Notizen generieren
├─→ E-Mail: Bestätigung mit Agenda
└─→ Telegram: Interne Benachrichtigung
# In n8n HTTP-Request-Node oder eigenem Skript:
# Cal.com API ist RESTful — Buchungen abrufen:
import requests
r = requests.get(
"https://kalender.deine-domain.de/api/v1/bookings",
headers={"Authorization": "Bearer DEIN_API_KEY"})
Praxisbeispiel: Vorbereitungs-Agent
# Bei neuer Buchung → Ollama schreibt Vorbereitung
booking = webhook_payload["booking"]
prep = ollama_client.chat(model="llama3.1:8b", messages=[{
"role": "user",
"content": f"Erstelle 5 Vorbereitungspunkte für ein Erstgespräch mit "
f"{booking['name']} ({booking.get('notes','keine Notizen')})."
}])
# Als Kommentar an die Buchung oder als interne Notiz speichern
Sicherheit und Datenschutz
- DSGVO: Buchungsdaten on-premise, kein US-Anbieter, keine AVV-Probleme.
- E-Mail-Versand: Für Bestätigungen eigener SMTP, siehe Self-Hosting.
- HTTPS: Buchungsseite muss TLS haben (Vertrauen + Security).
- Rate-Limiting: Buchungsseite ist öffentlich, gegen Missbrauch Limit/Spam-Schutz.
Cal.com vs. Calendly
| Aspekt | Cal.com self-hosted | Calendly |
|---|---|---|
| Datenhoheit | ✅ Eigener Server | ❌ US-Cloud |
| Kosten | Nur Server | $10-20/User/Monat |
| Setup | Docker, mittel | Null |
| Features | Kern ok, Enterprise-Features begrenzt | Ausgereifter |
| DSGVO | ✅ Einfach | ⚠️ AVV nötig |
Weiterführende Links
- IRC-Coding.de: Programmier-Tutorials: Webhooks, Kalender-APIs.
- n8n: Workflow-Automatisierung für Buchungen.
- Twenty CRM: Buchungen ins CRM.
- Nextcloud: CalDAV-Kalender selbst hosten.
- Docker: Container-Grundlagen.
Key Takeaways:
- Cal.com = Open-Source-Calendly: Buchungsseiten, Kalender-Sync, Team-Scheduling.
- Self-hosted = DSGVO-freundlich, keine Buchungsdaten bei US-Anbietern.
- Setup aufwendiger (Next.js + Postgres) als ein einzelner Container.
- Webhooks + n8n machen es zum Automatisierungs-Baustein.
- Für Berater/Dienstleister mit Datenschutz-Anforderungen die richtige Wahl.
FAQ
Ist Cal.com self-hosted schwierig?
Welche Kalender kann ich anbinden?
Brauche ich eigenen SMTP?
Team-Buchungen?
Alternativen?
KI-Integration?
Quellen und weiterführende Literatur
- Cal.com: Offizielle Website.
- Cal.com Self-Hosting: Dokumentation.
- IRC-Coding.de: Programmier-Tutorials.


