API · v1 · stabil
CODEMETA OSDeveloper Center
Konsole öffnen
Entity · booking_links

Booking Link Schema

Schema-ID
booking_link
Collection
booking_links
Permissions
  • Lesenbooking_link_view
  • Anlegenbooking_link_create
  • Ändernbooking_link_edit
  • Löschenbooking_link_delete

Felder

Booking Link Schema

booking_links4 Permissions

Schema for validating booking link entities

namestringerforderlich
1–200 Zeichen
slugstringoptional
3–100 ZeichenPatternnullable
serviceIduuidoptional
assignedUserIdsuuid[]optional
Default: []
technicianModestringoptional

all_required = alle Techniker müssen frei sein (1-to-many), any_one = ein verfügbarer reicht (1-of-many)

all_requiredany_one
Default: "any_one"
assignmentModeOverridestringoptional

Only relevant when technicianMode=any_one

any_availablecustomer_choosessmart_assignnull
nullable
durationOverrideintegeroptional
1530456090120null
nullable
descriptionOverridestringoptional

Per-link description, mirroring booking_service.description. Same override pattern as durationOverride/locationOverride: the booking page and the created calendar_event take this value over service.description; null (the default, and the value on every link created before this field existed) falls back to the service. Needed because the system services behind the Vorgangs-Links are tenant-wide singletons — editing one link must not rewrite the text shown by every other link on the same service.

nullable
priceOverrideintegeroptional

Per-link price in cents, mirroring booking_service.price. Falls back to service.price when null. Currency and priceDisplayMode stay on the service — they are presentation, not amount.

≥ 0nullable
availabilityWindowsobject[]erforderlich
min 1 Items
modestringoptional

recurring = weekday-based, fixed = specific date or date range

recurringfixed
Default: "recurring"
labelstringoptional
max 100 Zeichennullable
weekdaysinteger[]optional

ISO weekdays (1=Mo, 7=Su). Required for mode=recurring, empty for mode=fixed.

Default: []
fixedDatedateoptional

Specific date (YYYY-MM-DD). Required for mode=fixed.

nullable
fixedDateEnddateoptional

Optional end date for a date range. Only for mode=fixed.

nullable
startTimestringerforderlich
Pattern
endTimestringerforderlich
Pattern
validFromdateoptional
nullable
validUntildateoptional
nullable
schedulingPolicyobjectoptional
minLeadTimeHoursintegererforderlich
0 – 720Default: 24
maxLeadTimeDaysintegererforderlich
1 – 180Default: 30
slotIntervalMinutesintegererforderlich
153060
Default: 30
maxBookingsTotalintegeroptional
≥ 1nullable
maxBookingsPerCustomerintegeroptional
≥ 1nullable
linkedPartyIdstringoptional

Pre-selected company (Firma). When set, a booking made through this link stamps the created calendar_event with this partyId as linkedPartyId (takes precedence over the party derived from the customer email).

Patternnullable
linkedContactPartyIdstringoptional

Pre-selected contact person (Kontakt, a PERSON party — usually an employee of linkedPartyId). When set, a booking made through this link adds this person as a type=party participant on the created calendar_event.

Patternnullable
linkedProjectIdstringoptional

When set, a booking made through this link stamps the created calendar_event with referenceType=PROJECT / referenceId=linkedProjectId so it appears in the project Termine tab. Legacy shortcut for linkedReferenceType=PROJECT — still written by the project meeting link (project-booking.routes.ts) and honoured as a fallback; the generic pair below wins when both are set.

Patternnullable
linkedReferenceTypestringoptional

Vorgang ("Auftrag") the booking belongs to. A booking made through this link stamps the created calendar_event with this referenceType/referenceId pair, so the appointment shows up on the ticket/project/task/asset it was booked for. Values mirror calendar_event.referenceType.

TICKETHR_TICKETPROJECTTASKCONTACT_PERSONASSETOPPORTUNITYnull
nullable
linkedReferenceIdstringoptional

Id of the linked Vorgang. Only meaningful together with linkedReferenceType.

Patternnullable
eventTitleOverridestringoptional

Optional title for the created calendar_event (e.g. project context). Falls back to "service.name — customer" when null.

max 200 Zeichennullable
locationOverrideobjectoptional

Per-link location, mirroring booking_service.location. Set when the appointment type differs per link — a ticket link is booked on site, by phone or remote depending on the case, while the shared system service can only carry one. The created calendar_event takes this value over service.location; null (the default, and the value on every link created before this field existed) keeps the previous behaviour of falling back to the service.

nullable
expiresAtdatetimeoptional
nullable
isActivebooleanoptional
Default: true
customWelcomeMessagestringoptional
nullable
customConfirmationMessagestringoptional
nullable
brandingobjectoptional
nullable

Standard-Endpoints

Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:

  • GET /api/v1/booking_links — Liste, paginiert + filterbar
  • GET /api/v1/booking_links/<id> — Einzelne Entity
  • POST /api/v1/booking_links — Anlegen
  • PATCH /api/v1/booking_links/<id> — Teil-Update
  • DELETE /api/v1/booking_links/<id> — Soft-Delete
  • GET /api/v1/booking_links/<id>/timeline — Audit + Aktivitäten

Suche