Zum Hauptinhalt springen

Termine

Base path: /api/bookings

GET /bookings

Alle Termine abrufen. Mitarbeiter sehen nur eigene Termine wenn staff_personal_agenda_enabled aktiv ist. Stornierte Termine werden ausgeschlossen.

Auth: Eingeloggt

Query parameters: page, limit


GET /bookings/:id

Einzelnen Termin abrufen.

Auth: Eingeloggt

Fehler: 404 — Termin nicht gefunden


POST /bookings

Neuen Termin erstellen.

Auth: Eingeloggt

FeldTypPflichtBeschreibung
client_idintegerJaKunden-ID
staff_idintegerJaMitarbeiter-ID
service_idintegerJaDienstleistungs-ID
start_atdatetimeJaStartzeit
end_atdatetimeJaEndzeit
notesstringNeinNotizen (für Kunden sichtbar)
internal_notesstringNeinInterne Notizen
provisionalbooleanNeinBei true: Status=provisional, Bestätigungs-E-Mail an Kunde
waitlist_idintegerNeinVerknüpfung mit Wartelisteneintrag
base_urlstringNeinBase-URL für Bestätigungs-/Ablehnungslinks
hinweis

Buchungen an Feiertagen werden mit einem 400-Fehler abgelehnt.

Response (200): Booking-Objekt


PUT /bookings/:id

Termin aktualisieren. Bei Zeitänderungen wird ein E-Mail-Job mit 30 Minuten Verzögerung eingereiht. Bei Abschluss werden Follow-up-Sequenzen gestartet.


DELETE /bookings/:id

Termin stornieren (setzt Status auf cancelled).


Terminstatuse

StatusBeschreibung
scheduledBestätigter Termin
provisionalWartet auf Kundenbestätigung
completedAbgeschlossener Termin
cancelledStornierter Termin
no-showKunde nicht erschienen

Termin-Objekt

{
"id": 1,
"client_id": 5,
"staff_id": 2,
"service_id": 3,
"start_at": "2026-03-24 10:00:00",
"end_at": "2026-03-24 10:30:00",
"status": "scheduled",
"notes": "",
"internal_notes": "",
"provisional_token": null,
"feedback_token": null,
"waitlist_id": null,
"client_name": "Max Mustermann"
}