Scheduling — API and MCP
Overview
This area exposes 48 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
| Method | Path | Purpose | Permission | Parameters |
|---|---|---|---|---|
GET | /api/v1/scheduling/appointments | Collection of SchedulingAppointment | scheduling.appointment.view_own · scheduling.appointment.view_any · scheduling.appointment.manage | page, host, eventType, from, to, status, q |
POST | /api/v1/scheduling/appointments | Termin 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 SchedulingAppointment | scheduling.appointment.view_own · scheduling.appointment.view_any · scheduling.appointment.manage | ulid |
POST | /api/v1/scheduling/appointments/{ulid}/cancel | Cancel appointment — Cancel appointment. Dedicated action endpoint — not a standard CRUD create. | scheduling.appointment.cancel · scheduling.appointment.manage | ulid, + body |
POST | /api/v1/scheduling/appointments/{ulid}/complete | Termin als stattgefunden abschließen — Schließt den Termin als stattgefunden ab. Ein Rumpf ist nicht nötig. | scheduling.appointment.manage | ulid, + body |
POST | /api/v1/scheduling/appointments/{ulid}/no-show | Termin als nicht wahrgenommen vermerken — Vermerkt den Termin als nicht wahrgenommen. Ein Rumpf ist nicht nötig. | scheduling.appointment.manage | ulid, + body |
POST | /api/v1/scheduling/appointments/{ulid}/reschedule | Termin verlegen — Verlegt den Termin auf einen neuen Zeitpunkt und benachrichtigt die Teilnehmer. | scheduling.appointment.reschedule · scheduling.appointment.manage | ulid, + body |
GET | /api/v1/scheduling/booking-pages | Collection of SchedulingBookingPage | scheduling.booking_page.view · scheduling.booking_page.manage | page, q, order[title], order[slug] |
POST | /api/v1/scheduling/booking-pages | Create a SchedulingBookingPage | scheduling.booking_page.manage | + body |
DELETE | /api/v1/scheduling/booking-pages/{ulid} | Delete a SchedulingBookingPage | scheduling.booking_page.manage | ulid |
GET | /api/v1/scheduling/booking-pages/{ulid} | Read one SchedulingBookingPage | scheduling.booking_page.view · scheduling.booking_page.manage | ulid |
PATCH | /api/v1/scheduling/booking-pages/{ulid} | Update a SchedulingBookingPage | scheduling.booking_page.manage | ulid, + body |
POST | /api/v1/scheduling/caldav-discovery | Create a SchedulingCalDavDiscovery | scheduling.connection.manage_own | + body |
GET | /api/v1/scheduling/calendar-connections | Collection of SchedulingCalendarConnection | scheduling.connection.manage_own | — |
POST | /api/v1/scheduling/calendar-connections/caldav | Create a SchedulingCalendarConnection | scheduling.connection.manage_own | + body |
POST | /api/v1/scheduling/calendar-connections/ics | Create a SchedulingCalendarConnection | scheduling.connection.manage_own | + body |
DELETE | /api/v1/scheduling/calendar-connections/{ulid} | Delete a SchedulingCalendarConnection | scheduling.connection.manage_own | ulid |
GET | /api/v1/scheduling/calendar-connections/{ulid} | Read one SchedulingCalendarConnection | scheduling.connection.manage_own | ulid |
PATCH | /api/v1/scheduling/calendar-connections/{ulid} | Update a SchedulingCalendarConnection | scheduling.connection.manage_own | ulid, + body |
GET | /api/v1/scheduling/calendar-connections/{ulid}/calendars | Collection of SchedulingAvailableCalendar | scheduling.connection.manage_own | id |
GET | /api/v1/scheduling/date-overrides | Collection of SchedulingDateOverride | scheduling.schedule.view · scheduling.schedule.manage | page, schedule |
POST | /api/v1/scheduling/date-overrides | Create a SchedulingDateOverride | scheduling.schedule.manage | + body |
DELETE | /api/v1/scheduling/date-overrides/{ulid} | Delete a SchedulingDateOverride | scheduling.schedule.manage | ulid |
GET | /api/v1/scheduling/date-overrides/{ulid} | Read one SchedulingDateOverride | scheduling.schedule.view · scheduling.schedule.manage | ulid |
PATCH | /api/v1/scheduling/date-overrides/{ulid} | Update a SchedulingDateOverride | scheduling.schedule.manage | ulid, + body |
GET | /api/v1/scheduling/event-type-kinds | Collection of SchedulingEventTypeKind | scheduling.event_type.view · scheduling.event_type.manage | page |
GET | /api/v1/scheduling/event-type-kinds/{key} | Read one SchedulingEventTypeKind | scheduling.event_type.view · scheduling.event_type.manage | key |
PATCH | /api/v1/scheduling/event-type-kinds/{key} | Update a SchedulingEventTypeKind | scheduling.event_type.manage | key, + body |
GET | /api/v1/scheduling/event-types | Collection of SchedulingEventType | scheduling.event_type.view · scheduling.event_type.manage | page, q, order[name], order[slug], order[durationMinutes], order[kind] |
POST | /api/v1/scheduling/event-types | Create a SchedulingEventType | scheduling.event_type.manage | + body |
DELETE | /api/v1/scheduling/event-types/{ulid} | Delete a SchedulingEventType | scheduling.event_type.manage | ulid |
GET | /api/v1/scheduling/event-types/{ulid} | Read one SchedulingEventType | scheduling.event_type.view · scheduling.event_type.manage | ulid |
PATCH | /api/v1/scheduling/event-types/{ulid} | Update a SchedulingEventType | scheduling.event_type.manage | ulid, + body |
GET | /api/v1/scheduling/resources | Collection of SchedulingResource | scheduling.resource.view · scheduling.resource.manage | page, q, order[name], order[kind] |
POST | /api/v1/scheduling/resources | Create a SchedulingResource | scheduling.resource.manage | + body |
DELETE | /api/v1/scheduling/resources/{ulid} | Delete a SchedulingResource | scheduling.resource.manage | ulid |
GET | /api/v1/scheduling/resources/{ulid} | Read one SchedulingResource | scheduling.resource.view · scheduling.resource.manage | ulid |
PATCH | /api/v1/scheduling/resources/{ulid} | Update a SchedulingResource | scheduling.resource.manage | ulid, + body |
GET | /api/v1/scheduling/routing-forms | Collection of SchedulingRoutingForm | scheduling.routing_form.view · scheduling.routing_form.manage | page, q, order[name], order[slug] |
POST | /api/v1/scheduling/routing-forms | Create a SchedulingRoutingForm | scheduling.routing_form.manage | + body |
DELETE | /api/v1/scheduling/routing-forms/{ulid} | Delete a SchedulingRoutingForm | scheduling.routing_form.manage | ulid |
GET | /api/v1/scheduling/routing-forms/{ulid} | Read one SchedulingRoutingForm | scheduling.routing_form.view · scheduling.routing_form.manage | ulid |
PATCH | /api/v1/scheduling/routing-forms/{ulid} | Update a SchedulingRoutingForm | scheduling.routing_form.manage | ulid, + body |
GET | /api/v1/scheduling/schedules | Collection of SchedulingSchedule | scheduling.schedule.view · scheduling.schedule.manage | page, q, order[name], order[timezone] |
POST | /api/v1/scheduling/schedules | Create a SchedulingSchedule | scheduling.schedule.manage | + body |
DELETE | /api/v1/scheduling/schedules/{ulid} | Delete a SchedulingSchedule | scheduling.schedule.manage | ulid |
GET | /api/v1/scheduling/schedules/{ulid} | Read one SchedulingSchedule | scheduling.schedule.view · scheduling.schedule.manage | ulid |
PATCH | /api/v1/scheduling/schedules/{ulid} | Update a SchedulingSchedule | scheduling.schedule.manage | ulid, + body |
Purpose texts that do not follow the standard pattern are taken verbatim from the interface description in the code.