Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Scheduling — API and MCP

Overview

This area exposes 65 operations. Each of them is at the same time an MCP tool.

This area is behind the module switch module.scheduling. With the module off, these operations answer 404.

Operations

MethodPathPurposePermissionParameters
GET/api/v1/scheduling/appointmentsCollection of SchedulingAppointmentscheduling.appointment.view_own · scheduling.appointment.view_team · scheduling.appointment.view_any · scheduling.appointment.managepage, host, eventType, from, to, status, q
POST/api/v1/scheduling/appointmentsTermin im Namen eines Kunden buchen — Bucht einen freien Slot für einen Gast (Empfang/Telefon). Prüft Verfügbarkeit, Buffer, Vorlauf und Horizont wie die öffentliche Buchungsstrecke; belegter Slot ⇒ 409.scheduling.appointment.manage+ body
GET/api/v1/scheduling/appointments/{ulid}Read one SchedulingAppointmentscheduling.appointment.view_own · scheduling.appointment.view_team · scheduling.appointment.view_any · scheduling.appointment.manageulid
POST/api/v1/scheduling/appointments/{ulid}/cancelCancel appointment — Cancel appointment. Dedicated action endpoint — not a standard CRUD create.scheduling.appointment.cancel · scheduling.appointment.manageulid, + body
POST/api/v1/scheduling/appointments/{ulid}/completeTermin als stattgefunden abschließen — Schließt den Termin als stattgefunden ab. Ein Rumpf ist nicht nötig.scheduling.appointment.manageulid, + body
POST/api/v1/scheduling/appointments/{ulid}/no-showTermin als nicht wahrgenommen vermerken — Vermerkt den Termin als nicht wahrgenommen. Ein Rumpf ist nicht nötig.scheduling.appointment.manageulid, + body
POST/api/v1/scheduling/appointments/{ulid}/rescheduleTermin verlegen — Verlegt den Termin auf einen neuen Zeitpunkt und benachrichtigt die Teilnehmer.scheduling.appointment.reschedule · scheduling.appointment.manageulid, + body
GET/api/v1/scheduling/booking-pagesCollection of SchedulingBookingPagescheduling.booking_page.view · scheduling.booking_page.managepage, q, order[title], order[slug]
POST/api/v1/scheduling/booking-pagesCreate a SchedulingBookingPagescheduling.booking_page.manage+ body
DELETE/api/v1/scheduling/booking-pages/{ulid}Delete a SchedulingBookingPagescheduling.booking_page.manageulid
GET/api/v1/scheduling/booking-pages/{ulid}Read one SchedulingBookingPagescheduling.booking_page.view · scheduling.booking_page.manageulid
PATCH/api/v1/scheduling/booking-pages/{ulid}Update a SchedulingBookingPagescheduling.booking_page.manageulid, + body
POST/api/v1/scheduling/caldav-discoveryCreate a SchedulingCalDavDiscoveryscheduling.connection.manage_own+ body
GET/api/v1/scheduling/calendar-connectionsCollection of SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageowner, resource
POST/api/v1/scheduling/calendar-connections/caldavCreate a SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manage+ body
POST/api/v1/scheduling/calendar-connections/icsCreate a SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manage+ body
DELETE/api/v1/scheduling/calendar-connections/{ulid}Delete a SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageulid
GET/api/v1/scheduling/calendar-connections/{ulid}Read one SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageulid
PATCH/api/v1/scheduling/calendar-connections/{ulid}Update a SchedulingCalendarConnectionscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageulid, + body
GET/api/v1/scheduling/calendar-connections/{ulid}/calendarsCollection of SchedulingAvailableCalendarscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageid
GET/api/v1/scheduling/calendly-import/runsCollection of SchedulingCalendlyImportRunplatform.import.runstatus
POST/api/v1/scheduling/calendly-import/runsCalendly-Übernahme anstoßen (Vorgabe: Trockenlauf) — Reiht einen Lauf ein (status=queued). Ohne execute=true wird nur gelesen und gezählt. Übernommen werden Termintypen und alle künftigen aktiven Termine samt Gästen; bereits übernommene (externalRefs.calendlyUri) werden übersprungen. Keine Mails, keine Kalender-Einträge, keine Automation. Zugang: Integration calendly mit Zugriffsschlüssel calendly_token. Geprüft wird platform.import.run in der Ziel-Marke.platform.import.run+ body
GET/api/v1/scheduling/calendly-import/runs/{ulid}Read one SchedulingCalendlyImportRunplatform.import.runulid
GET/api/v1/scheduling/date-overridesCollection of SchedulingDateOverridescheduling.schedule.view · scheduling.schedule.managepage, schedule
POST/api/v1/scheduling/date-overridesCreate a SchedulingDateOverridescheduling.schedule.manage+ body
DELETE/api/v1/scheduling/date-overrides/{ulid}Delete a SchedulingDateOverridescheduling.schedule.manageulid
GET/api/v1/scheduling/date-overrides/{ulid}Read one SchedulingDateOverridescheduling.schedule.view · scheduling.schedule.manageulid
PATCH/api/v1/scheduling/date-overrides/{ulid}Update a SchedulingDateOverridescheduling.schedule.manageulid, + body
GET/api/v1/scheduling/event-type-kindsCollection of SchedulingEventTypeKindscheduling.event_type.view · scheduling.event_type.managepage
GET/api/v1/scheduling/event-type-kinds/{key}Read one SchedulingEventTypeKindscheduling.event_type.view · scheduling.event_type.managekey
PATCH/api/v1/scheduling/event-type-kinds/{key}Update a SchedulingEventTypeKindscheduling.event_type.managekey, + body
GET/api/v1/scheduling/event-typesCollection of SchedulingEventTypescheduling.event_type.view · scheduling.event_type.managepage, q, order[name], order[slug], order[durationMinutes], order[kind], parent
POST/api/v1/scheduling/event-typesCreate a SchedulingEventTypescheduling.event_type.manage+ body
DELETE/api/v1/scheduling/event-types/{ulid}Delete a SchedulingEventTypescheduling.event_type.manageulid
GET/api/v1/scheduling/event-types/{ulid}Read one SchedulingEventTypescheduling.event_type.view · scheduling.event_type.manageulid
PATCH/api/v1/scheduling/event-types/{ulid}Update a SchedulingEventTypescheduling.event_type.manageulid, + body
POST/api/v1/scheduling/event-types/{ulid}/distributeVorlage an Mitarbeiter verteilen — Legt für jeden Mitarbeiter aus employees (ULIDs) eine Kopie der Vorlage an (1:1, ein Gastgeber, alle sperrbaren Felder übernommen); vorhandene Kopien bleiben. Gesperrte Felder (lockedFields) folgen danach jeder Vorlagen-Änderung und sind an der Kopie nicht änderbar.scheduling.event_type.manageulid, + body
GET/api/v1/scheduling/event-types/{ulid}/slotsFreie Termin-Slots eines Termintyps — Liefert buchbare Slots (UTC-Zeitpunkte, Darstellung in tz) samt freier Gastgeber je Slot. Grundlage für „im Namen buchen", Automation und KI-Terminfindung.scheduling.appointment.manage · scheduling.appointment.view_any · scheduling.appointment.view_own · scheduling.event_type.view · scheduling.event_type.manageulid, from, to, host, excludeAppointment, tz, limit
GET/api/v1/scheduling/ics-importsCollection of SchedulingIcsImportscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageowner, resource
POST/api/v1/scheduling/ics-imports.ics-Datei als Belegtzeit einlesen — content = Dateiinhalt (Text, höchstens 2 MB), fileName optional. Inhaber: ohne Angabe der eigene Mitarbeiter, ownerEmployee (mit scheduling.connection.manage_any) oder ownerResource (mit scheduling.resource.manage). Gelesen werden die Termine von gestern bis ein Jahr voraus, Serien aufgelöst, höchstens 5000; nur Anfang und Ende werden gespeichert.scheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manage+ body
DELETE/api/v1/scheduling/ics-imports/{ulid}Delete a SchedulingIcsImportscheduling.connection.manage_own · scheduling.connection.manage_any · scheduling.resource.manageulid
GET/api/v1/scheduling/pollsCollection of SchedulingMeetingPollscheduling.poll.view · scheduling.poll.managestatus
POST/api/v1/scheduling/pollsGruppen-Terminfinder anlegen — eventType (ULID) liefert Ort, Marke und Mails; options = [{start}] als Zeitpunkte mit Versatz (höchstens 30, in der Zukunft). Dauer und Gastgeber fallen ohne Angabe auf den Termintyp zurück. Der Abstimmungs-Link ist /public/poll/{publicToken}.scheduling.poll.manage+ body
DELETE/api/v1/scheduling/polls/{ulid}Delete a SchedulingMeetingPollscheduling.poll.manageulid
GET/api/v1/scheduling/polls/{ulid}Read one SchedulingMeetingPollscheduling.poll.view · scheduling.poll.manageulid
PATCH/api/v1/scheduling/polls/{ulid}Update a SchedulingMeetingPollscheduling.poll.manageulid, + body
POST/api/v1/scheduling/polls/{ulid}/concludeGruppen-Terminfinder abschließen — Bucht den Vorschlag optionId für alle, die „ja" oder „vielleicht" gestimmt haben (Bestätigungs-Mail, Kalender-Eintrag, Folgen des Termintyps). Belegte Zeit ⇒ 409, der Terminfinder bleibt offen.scheduling.poll.manageulid, + body
GET/api/v1/scheduling/resourcesCollection of SchedulingResourcescheduling.resource.view · scheduling.resource.managepage, q, order[name], order[kind]
POST/api/v1/scheduling/resourcesCreate a SchedulingResourcescheduling.resource.manage+ body
DELETE/api/v1/scheduling/resources/{ulid}Delete a SchedulingResourcescheduling.resource.manageulid
GET/api/v1/scheduling/resources/{ulid}Read one SchedulingResourcescheduling.resource.view · scheduling.resource.manageulid
PATCH/api/v1/scheduling/resources/{ulid}Update a SchedulingResourcescheduling.resource.manageulid, + body
GET/api/v1/scheduling/routing-formsCollection of SchedulingRoutingFormscheduling.routing_form.view · scheduling.routing_form.managepage, q, order[name], order[slug]
POST/api/v1/scheduling/routing-formsCreate a SchedulingRoutingFormscheduling.routing_form.manage+ body
DELETE/api/v1/scheduling/routing-forms/{ulid}Delete a SchedulingRoutingFormscheduling.routing_form.manageulid
GET/api/v1/scheduling/routing-forms/{ulid}Read one SchedulingRoutingFormscheduling.routing_form.view · scheduling.routing_form.manageulid
PATCH/api/v1/scheduling/routing-forms/{ulid}Update a SchedulingRoutingFormscheduling.routing_form.manageulid, + body
POST/api/v1/scheduling/schedule-previewSlot-Vorschau eines Wochenplans — Rechnet aus einem Wochenplan (auch ungespeichert) die buchbaren Slot-Anfänge je Wochentag — dieselbe Rechnung wie die Buchungsseite, ohne Belegtzeiten und Ausnahmen. Schreibt nichts.scheduling.schedule.view · scheduling.schedule.manage+ body
GET/api/v1/scheduling/schedulesCollection of SchedulingSchedulescheduling.schedule.view · scheduling.schedule.managepage, q, order[name], order[timezone]
POST/api/v1/scheduling/schedulesCreate a SchedulingSchedulescheduling.schedule.manage+ body
DELETE/api/v1/scheduling/schedules/{ulid}Delete a SchedulingSchedulescheduling.schedule.manageulid
GET/api/v1/scheduling/schedules/{ulid}Read one SchedulingSchedulescheduling.schedule.view · scheduling.schedule.manageulid
PATCH/api/v1/scheduling/schedules/{ulid}Update a SchedulingSchedulescheduling.schedule.manageulid, + body
GET/api/v1/scheduling/settingsModul-Einstellungen der Terminplanung lesen — Buchungsfläche, Erinnerungs-Vorlauf, Halte-Fristen (Bezahl-Buchung, Formular-Halt), Slot-Zwischenspeicher, Live-Aktualisierung, Planungssperre, Gastgeber-Mail und Captcha. Recht scheduling.settings.manage.scheduling.settings.manage—
PATCH/api/v1/scheduling/settingsModul-Einstellungen der Terminplanung ändern — Nur gesendete Felder ändern sich. captchaMode: off \pow \turnstile (Turnstile braucht turnstileSiteKey und turnstileSecret). Sekunden-/Minutenwerte ≥ 0 (0 schaltet Halt bzw. Zwischenspeicher ab). Recht scheduling.settings.manage markenübergreifend.scheduling.settings.manage+ body

Purpose texts that do not follow the standard pattern are taken verbatim from the interface description in the code.

referenz.api-scheduling · Available from version 0.5.4