Buchen, Stornieren & Umbuchen

API-Referenz für das Buchen, Stornieren und Umbuchen von Terminen über FlowCaptain.

Buchen, Stornieren & Umbuchen

Drei Endpunkte für den vollständigen Terminlebenszyklus.


Termin buchen

Erstellt einen neuen Termin im verbundenen Google Kalender.

POST /api/v1/book-appointment

Anfrage-Body:

{
  "query": "Montag, 3. März um 10 Uhr",
  "callerName": "Max Mustermann",
  "callerPhone": "+491761234567",
  "callerIdNumber": "+491761234567",
  "description": "Erstberatung"
}
FeldTypErforderlichBeschreibung
querystringJaNatürlichsprachliches Datum/Uhrzeit für den Termin
callerNamestringJaName der buchenden Person
callerPhonestringNeinTelefonnummer (für Benachrichtigungen)
callerIdNumberstringNeinAnrufer-ID aus der Telefonie (für Terminsuche)
descriptionstringNeinTerminbeschreibung

Erfolgsantwort:

{
  "message": "Ihr Termin am Montag, 3. März um 10:00 wurde gebucht.",
  "status": "booked",
  "appointment": {
    "date": "2026-03-03",
    "time": "10:00",
    "day": "Montag",
    "callerName": "Max Mustermann"
  }
}

Termin stornieren

Storniert einen bestehenden Termin. Der Termin wird im Google Kalender als storniert markiert, aber nicht gelöscht.

POST /api/v1/cancel-appointment

Anfrage-Body:

{
  "query": "meinen Termin am Montag",
  "callerName": "Max Mustermann",
  "callerIdNumber": "+491761234567"
}
FeldTypErforderlichBeschreibung
querystringJaNatürlichsprachliche Beschreibung, welcher Termin storniert werden soll
callerNamestringNeinHilft bei der Identifikation des Termins
callerIdNumberstringNeinAnrufer-ID für die Suche (zuverlässigste Methode)

Suchreihenfolge: Die API findet den Termin in dieser Reihenfolge: callerIdNumber, dann callerPhone, dann callerName, dann Datum. Wenn eine Methode fehlschlägt (z.B. anderes Telefon), wird die nächste stillschweigend versucht.

Erfolgsantwort:

{
  "message": "Ihr Termin am Montag, 3. März um 10:00 wurde storniert.",
  "status": "cancelled"
}

Termin umbuchen

Verschiebt einen bestehenden Termin auf eine neue Zeit. Die API prüft die Verfügbarkeit zur neuen Zeit vor der Umbuchung.

POST /api/v1/reschedule-appointment

Anfrage-Body:

{
  "query": "meinen Montags-Termin auf Dienstag 14 Uhr verschieben",
  "callerName": "Max Mustermann",
  "callerIdNumber": "+491761234567"
}
FeldTypErforderlichBeschreibung
querystringJaNatürlichsprachliche Anfrage mit gewünschter neuer Zeit
callerNamestringNeinHilft bei der Identifikation des Termins
callerIdNumberstringNeinAnrufer-ID für die Suche

Erfolgsantwort:

{
  "message": "Ihr Termin wurde auf Dienstag, 4. März um 14:00 verschoben.",
  "status": "rescheduled",
  "appointment": {
    "date": "2026-03-04",
    "time": "14:00",
    "day": "Dienstag"
  }
}

Häufige Fehlerantworten

Termin nicht gefunden:

{
  "message": "Kein Termin gefunden, der Ihrer Anfrage entspricht.",
  "status": "not_found"
}

Neue Zeit nicht verfügbar (Umbuchung):

{
  "message": "Dienstag um 14 Uhr ist nicht verfügbar. Alternativen: Dienstag um 15 Uhr, Mittwoch um 10 Uhr.",
  "status": "unavailable"
}