> ## Documentation Index
> Fetch the complete documentation index at: https://docs.famulor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrierter Kalender

> Famulors integrierte Buchungs-Engine für Terminvereinbarungen während des Anrufs – kein externes Kalenderkonto nötig

Famulor bringt eine komplette, eigene Buchungs-Engine mit: Event-Typen mit eigener wöchentlicher Verfügbarkeit, eine einbettbare öffentliche Buchungsseite, optionale Synchronisierung mit einem echten Kalender und einen signierten Webhook bei jeder Buchung. Assistenten buchen mitten im Anruf darüber wie bei jedem anderen Anbieter. Die externen Anbieter – Cal.com, Calendly, Acuity Scheduling, eTermin, HighLevel – findest du auf [Kalender & Buchung](/de/assistants/calendar-booking).

## Der native Kalender

**Native** ist Famulors eigene Buchungs-Engine – direkt in die Plattform eingebaut statt ein Drittanbieter-Produkt, für das du dich anmeldest, und in [Anbieter im Überblick](/de/assistants/calendar-booking#anbieter-im-überblick) neben den anderen Kalenderanbietern gelistet. Es gibt kein externes Konto, keinen API-Key und keinen OAuth-Zustimmungsbildschirm: Definiere einen [Event-Typ](#die-integrierte-buchungs-engine) mit eigener wöchentlicher Verfügbarkeit, und er ist sofort bereit, einem Assistenten zugewiesen zu werden.

<Note>
  Native läuft über dasselbe Plan-Feature **Calendar integrations** wie jeder andere Anbieter unter [Anbieter im Überblick](/de/assistants/calendar-booking#anbieter-im-überblick) – es ist kein separates, kostenpflichtiges Add-on zusätzlich zu Cal.com oder Calendly. Dein Plan muss dieses Feature weiterhin enthalten, bevor du einen Event-Typ oder eine Integration erstellen kannst, native eingeschlossen. Siehe [Plan-Gating](#plan-gating).
</Note>

Ein zugewiesener nativer Event-Typ erhält dieselben Tools `check_availability` und `book_appointment` wie jede andere Integration, ganz ohne Drittanbieter-API dazwischen: Slots kommen direkt aus den eigenen Verfügbarkeitsfenstern, Puffern und Vorlaufregeln des Event-Typs. Native ist außerdem einer von nur zwei Anbietern – der andere ist Acuity –, deren Assistenten einen bestehenden Termin finden, stornieren und umbuchen können, und der Einzige der beiden, der dafür kein externes Konto braucht. Die vollständige Tool-Liste findest du unter [Einem Assistenten zuweisen](/de/assistants/calendar-booking#einem-assistenten-zuweisen).

### Kalenderverbindungen

Native funktioniert eigenständig, nur mit seinen eigenen Regeln zur wöchentlichen Verfügbarkeit, oder du verbindest einen echten Kalender, damit seine Belegungszeiten berücksichtigt werden und – bei den meisten Verbindungstypen – bestätigte Buchungen dorthin zurückgeschrieben werden. Verbinde Google Calendar und Outlook unter **Booking → Integrations**; füge CalDAV oder einen ICS-Feed unter **Booking → Event types → Calendars** hinzu. In beiden Fällen wählst du die Verbindung im eigenen **Calendars**-Feld des Event-Typs aus, um sie tatsächlich zu nutzen.

| Verbindung                  | Was sie macht                                                                                                                                                                                          | Einrichtung                                                                                                                                                                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Google Calendar**         | Frei/Gebucht, plus erstellt und löscht die Buchung als Kalendereintrag mit Teilnehmereinladung                                                                                                         | OAuth-Verbindung (einmalig)                                                                                                                                                                                                          |
| **Outlook / Microsoft 365** | Frei/Gebucht, plus erstellt und löscht die Buchung als Kalendereintrag mit Teilnehmereinladung                                                                                                         | OAuth-Verbindung (einmalig)                                                                                                                                                                                                          |
| **CalDAV**                  | Frei/Gebucht, plus erstellt und löscht die Buchung als Kalendereintrag – keine Teilnehmereinladung vom Server, der Gast ist also auf die eigene ICS-Bestätigungs-E-Mail der Buchungs-Engine angewiesen | Server-URL + Benutzername + App-Passwort – Voreinstellungen für **Apple iCloud**, **Fastmail** und **Nextcloud**, plus **Custom** für Zimbra, Baïkal oder jeden anderen CalDAV-Server; die Kalendersammlung wird automatisch erkannt |
| **ICS feed**                | Nur Frei/Gebucht – rein lesend, es wird nie etwas zurückgeschrieben                                                                                                                                    | Eine geheime ICS-/iCal-URL (`webcal://` wird akzeptiert), z. B. die „Secret address" von Google Calendar oder „Publish calendar" von Outlook                                                                                         |

## Die integrierte Buchungs-Engine

Lege Event-Typen unter **Booking** im Dashboard an (oder über API/MCP):

* **Name, slug, duration** – der Slug ist innerhalb des Workspace eindeutig und wird Teil der öffentlichen Buchungsseiten-URL, die im Editor angezeigt wird.
* **Weekly availability** – Zeitfenster pro Wochentag in der Zeitzone des Event-Typs, z. B. Mo–Fr 09:00–17:00 Uhr.
* **Buffers & rules** – Puffer vor und nach jeder Buchung, Mindestvorlauf, wie weit im Voraus Kunden buchen dürfen, und Slot-Intervall.
* **Calendar sync** (optional) – verknüpfe einen [verbundenen Kalender](#kalenderverbindungen). Bei Google-, Outlook- und CalDAV-Verbindungen werden ihre Belegungszeiten von den angebotenen Slots abgezogen und bestätigte Buchungen als Kalendereinträge zurückgeschrieben; bei Google und Outlook wird der Gast als Teilnehmer hinzugefügt, sodass der Anbieter ebenfalls seine eigene Einladung verschickt. Ein ICS-Feed liefert nur Belegungszeiten.
* **Host confirmation** – der Gast bekommt immer eine Bestätigungs-E-Mail mit ICS-Einladung. Eine zweite Kopie geht an den Host: das Add-to-Calendar-Konto, eine benutzerdefinierte Organizer-E-Mail-Adresse oder den Event-Typ-Besitzer, wenn kein Kalender ausgewählt ist.

### Öffentliche Buchungsseite & Einbettung

Jeder aktive Event-Typ hat eine öffentliche Seite im Branding deines Tenants unter `https://<your-domain>/book/{workspace}/{slug}` – ohne Login nötig. Der Button **Public link & embed code** in der Event-Typ-Liste kopiert ein fertiges iframe-Snippet für deine eigene Website, zusammen mit dem kleinen Skript, das den Frame an die Größe seines Inhalts anpasst. Bette sie überall ein:

```html theme={null}
<iframe src="https://<your-domain>/book/acme/intro-call"
        style="width:100%;min-height:640px;border:0" loading="lazy"></iframe>
```

Besucher wählen einen Slot in ihrer eigenen Zeitzone, geben Name und E-Mail ein und erhalten eine **Bestätigungs-E-Mail mit ICS-Kalendereinladung** plus einen Stornierungslink. Der konfigurierte Host bekommt eine passende **New booking**-E-Mail. Wählen zwei Personen gleichzeitig denselben Slot, gelingt nur die erste Buchung, und der andere Besucher wird gebeten, eine andere Zeit zu wählen.

### Buchung aus Anrufen

Verbinde die integrierte Buchungs-Engine mit einem Assistenten, damit Buchungen mitten im Anruf im selben Kalender landen und mit dem zugehörigen Anruf verknüpft werden. Du weist sie genauso zu wie einen externen Anbieter – siehe [Einem Assistenten zuweisen](/de/assistants/calendar-booking#einem-assistenten-zuweisen).

### Webhooks

Gib einem Event-Typ eine **Webhook URL**, und Famulor benachrichtigt sie, sobald eine Buchung dieses Event-Typs erstellt, storniert oder umgebucht wird. Beim Speichern der URL erscheint ein **Webhook signing secret** – wird nur einmal angezeigt, also kopiere es, bevor du die Seite verlässt.

Jede Zustellung ist ein `POST` von `booking.created`, `booking.cancelled` oder `booking.rescheduled`, signiert mit einem HMAC-SHA256 des rohen Bodys in `X-Famulor-Signature: sha256=<hex digest>`. Das `data`-Objekt enthält `booking_id`, die `event_type_id`/`event_type_slug`/`event_type_name` des Event-Typs, `invitee` (`name`, `email`, `phone`, `timezone`), `start_time` und `end_time` (plus `previous_start_time` bei einer Umbuchung), `status`, `source` (`web`, `call` oder `api`), die auslösende `call_id`, wenn die Buchung aus einem Anruf stammt, und freien Text unter `notes`.

Ein vollständiges Serverbeispiel inklusive Signaturprüfung findest du unter [Webhooks empfangen](/de/api-reference/integration-examples#webhooks-empfangen).

## Plan-Gating

Dein Plan muss **Calendar integrations** enthalten – dasselbe Plan-Feature, das auch die externen Anbieter auf [Kalender & Buchung](/de/assistants/calendar-booking) freischaltet. Ohne dieses Feature kannst du keine Event-Typen erstellen, und öffentliche Buchungsseiten nehmen keine neuen Buchungen an.

## API & MCP

Alles oben Beschriebene steht über die [öffentliche REST-API](/de/api-reference/introduction) und als MCP-Tools unter `https://<your-domain>/mcp` zur Verfügung. Anbieter-Integrationen (Cal.com, Calendly, Acuity, eTermin, HighLevel) und die Zuweisung eines beliebigen Kalenders zu einem Assistenten sind auf [Kalender & Buchung](/de/assistants/calendar-booking) beschrieben.

`GET /api/v1/bookings` und `list_bookings` unterstützen Filter nach Event-Typ, Quelle und Datum. Verwende `view=upcoming|unconfirmed|recurring|past|cancelled` für dieselben Buchungsansichten wie im Dashboard, oder nutze einen exakten `status`-Filter; `view` und `status` schließen sich gegenseitig aus.

| REST                                                                                        | MCP-Tool                                                                                                         | Scope                 |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------- |
| `GET/POST /api/v1/booking-event-types`, `GET/PATCH/DELETE /api/v1/booking-event-types/{id}` | `get_booking_event_types`, `create_booking_event_type`, `update_booking_event_type`, `delete_booking_event_type` | `bookings:read/write` |
| `GET /api/v1/bookings`, `GET /api/v1/bookings/{id}`, `POST /api/v1/bookings/{id}/cancel`    | `list_bookings`, `get_booking`, `cancel_booking`                                                                 | `bookings:read/write` |

Storniert du eine Buchung, wird ein ICS-Update mit `METHOD:CANCEL` verschickt, sodass der Termin automatisch aus dem Kalender der eingeladenen Person verschwindet.
