Skip to content
BotServBotServ
Cal.comCalendlyTerminbuchungSelf-HostingOpen SourceKalender

Cal.com self-hosted: Calendly-Alternative für Terminbuchung

Cal.com self-hosten: Open-Source-Terminbuchung als Calendly-Alternative. Docker-Setup, Kalender-Sync, Workflow-Automatisierung mit n8n.

S

schutzgeist

3 min read
Cal.com self-hosted

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

AspektCal.com self-hostedCalendly
Datenhoheit✅ Eigener Server❌ US-Cloud
KostenNur Server$10-20/User/Monat
SetupDocker, mittelNull
FeaturesKern ok, Enterprise-Features begrenztAusgereifter
DSGVO✅ Einfach⚠️ AVV nötig
  • 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?

Mittel, es ist eine Next.js-App mit Postgres und Prisma, kein einzelner Container. Das offizielle Docker-Repo hilft, aber Updates und Mail-Setup brauchen Pflege. Wer nur einfach buchen will, kann auch die Cal.com-Cloud nutzen.

Welche Kalender kann ich anbinden?

CalDAV (Nextcloud, Radicale), Google Calendar, Outlook/M365, Apple Calendar über CalDAV. Mehrere Kalender gleichzeitig für Konflikt-Prüfung.

Brauche ich eigenen SMTP?

Für Buchungsbestätigungen und Erinnerungen ja, ein SMTP-Server (eigener Mail-Server, Postfix, oder externer Anbieter) wird gebraucht. Ohne Mail keine Bestätigungen.

Team-Buchungen?

Ja: Collective (alle müssen frei sein) und Round-Robin (Rotations-Verteilung) sind Kern-Features. Gut für Support-Teams und Sales.

Alternativen?

Easy!Appointments (leichter, PHP), Fossil/Crontab-ähnliche Tools, oder Nextcloud Appointments (wenn Du Nextcloud hast). Cal.com ist am ausgereiftesten.

KI-Integration?

Über Webhooks: n8n oder eigenes Skript reagiert auf Buchungen: Ollama schreibt Vorbereitungs-Notizen, FAQ-Antworten, Follow-up-Entwürfe. Cal.com hat auch eine API für direkte Integration.

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge