calendar-events
10 Endpunkte. Basis-URL: https://xapi.ambertech.cloud/api/v1
Entries in a date window, across the calendars this user may see#
/calendar/eventsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
from | Query | string | Start of the window, e.g. 2026-09-01 |
to | Query | string | End of the window, e.g. 2026-10-01 |
calendar_ids | Query | string[] | Calendars to read; comma separated or repeated. All visible ones when left out. |
tz | Query | string | The reader's time zone, e.g. Europe/Berlin. Decides which day a ticket deadline lands on. |
Antworten
- 200Entries returned
- 400Window missing, backwards or too wide
curl -X GET "https://xapi.ambertech.cloud/api/v1/calendar/events" \
-H "Authorization: Bearer $XISUITE_TOKEN"Create an entry on a calendar#
/calendar/eventsTokenRequest-Body
| Name | Typ | Beschreibung |
|---|---|---|
calendar_idPflicht | string | – |
summaryPflicht | string | – |
description | string | – |
location | string | – |
is_all_day | boolean | |
starts_at | string | Timed start with its offset, e.g. 2026-09-24T09:00:00+02:00 |
ends_at | string | Timed end with its offset |
start_date | string | All-day start, e.g. 2026-09-24 |
end_date | string | All-day end, exclusive: a single day ends on the next date |
timezone | string | IANA time zone, e.g. Europe/Berlin |
meeting_provider | string | Werte: |
meeting_url | string | – |
meeting_id | string | – |
generate_meeting | boolean | Create the Zoom meeting rather than taking a pasted link |
zoom_options | ZoomMeetingOptionsDto | How the generated Zoom meeting is set up; used only with generate_meeting |
custom_field_values | object | Values of the custom fields the calendar shows, keyed by field key |
watcher_ids | string[] | – |
links | CalendarEventLinkDto[] | – |
links[].typePflicht | string | Werte: |
links[].idPflicht | string | Id of the linked ticket, process, user or asset |
links[].remind | boolean | For a linked person: false leaves them out of the reminders |
reminders | CalendarReminderDto[] | This entry's reminders; null follows the calendar's default and an empty list turns them off |
reminders[].minutes_beforePflicht | number | Werte: |
reminders[].channelsPflicht | string[] | Werte: |
reminders[].repeat_times | number | Times to send it, spaced evenly up to the start; once when left out |
Antworten
- 201Entry created
- 400Dates, time zone, fields, followers or links rejected
- 403Edit access to that calendar required
curl -X POST "https://xapi.ambertech.cloud/api/v1/calendar/events" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"calendar_id":"…","summary":"…"}'Read one entry#
/calendar/events/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Antworten
- 200Entry returned
- 404Not found, or its calendar is not visible
curl -X GET "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Edit an entry#
/calendar/events/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
summary | string | – |
description | string | – |
location | string | – |
is_all_day | boolean | |
starts_at | string | Timed start with its offset, e.g. 2026-09-24T09:00:00+02:00 |
ends_at | string | Timed end with its offset |
start_date | string | All-day start, e.g. 2026-09-24 |
end_date | string | All-day end, exclusive: a single day ends on the next date |
timezone | string | IANA time zone, e.g. Europe/Berlin |
meeting_provider | string | Werte: |
meeting_url | string | – |
meeting_id | string | – |
generate_meeting | boolean | Create the Zoom meeting rather than taking a pasted link |
zoom_options | ZoomMeetingOptionsDto | How the generated Zoom meeting is set up; used only with generate_meeting |
custom_field_values | object | Values of the custom fields the calendar shows, keyed by field key |
watcher_ids | string[] | – |
links | CalendarEventLinkDto[] | – |
links[].typePflicht | string | Werte: |
links[].idPflicht | string | Id of the linked ticket, process, user or asset |
links[].remind | boolean | For a linked person: false leaves them out of the reminders |
reminders | CalendarReminderDto[] | This entry's reminders; null follows the calendar's default and an empty list turns them off |
reminders[].minutes_beforePflicht | number | Werte: |
reminders[].channelsPflicht | string[] | Werte: |
reminders[].repeat_times | number | Times to send it, spaced evenly up to the start; once when left out |
updated_at | string | The updated_at the client last read. When it no longer matches, the edit is rejected instead of overwriting someone else. |
Antworten
- 200Entry updated
- 409Someone else saved first; reload and try again
curl -X PATCH "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"summary":"…","description":"…","location":"…"}'Delete an entry#
/calendar/events/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Antworten
- 200Entry deleted
- 403Edit access to its calendar required
curl -X DELETE "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Replace what an entry is linked to#
/calendar/events/{id}/linksTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
linksPflicht | CalendarEventLinkDto[] | – |
links[].typePflicht | string | Werte: |
links[].idPflicht | string | Id of the linked ticket, process, user or asset |
links[].remind | boolean | For a linked person: false leaves them out of the reminders |
Antworten
- 200Links updated
curl -X PUT "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}/links" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"links":[]}'Replace who follows an entry#
/calendar/events/{id}/watchersTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
watcher_idsPflicht | string[] | User ids that follow this event |
Antworten
- 200Followers updated
- 400Someone named cannot see this calendar
curl -X PUT "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}/watchers" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"watcher_ids":[]}'The current settings of the entry's Zoom meeting, read from Zoom#
/calendar/events/{id}/zoom-meetingTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Antworten
- 200Meeting options; never a token
- 400No Zoom meeting made here, or Zoom refused
- 404Meeting deleted inside Zoom
curl -X GET "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}/zoom-meeting" \
-H "Authorization: Bearer $XISUITE_TOKEN"Create the Zoom meeting for an entry that has no link yet#
/calendar/events/{id}/zoom-meetingTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
zoom_options | ZoomMeetingOptionsDto | – |
zoom_options.use_pmi | boolean | Use the host personal meeting ID instead of a new one |
zoom_options.passcode_enabled | boolean | Require a passcode to join |
zoom_options.passcode | string | The passcode; left out, Zoom makes one. Up to 10 letters, digits or @ - _ * |
zoom_options.waiting_room | boolean | – |
zoom_options.encryption_type | string | Werte: |
zoom_options.host_video | boolean | – |
zoom_options.participant_video | boolean | – |
zoom_options.continuous_chat | boolean | Let people use the meeting chat before and after |
zoom_options.join_before_host | boolean | – |
zoom_options.mute_upon_entry | boolean | – |
zoom_options.auto_recording | string | Werte: |
zoom_options.recurrence | ZoomRecurrenceDto | – |
Antworten
- 201Entry returned with its link
- 400Already linked, has no start time, or came from elsewhere
- 403Edit access to the entry required
curl -X POST "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}/zoom-meeting" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"zoom_options":"…"}'Change the settings of the entry's Zoom meeting#
/calendar/events/{id}/zoom-meetingTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | Entry UUID |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
zoom_optionsPflicht | ZoomMeetingOptionsDto | – |
zoom_options.use_pmi | boolean | Use the host personal meeting ID instead of a new one |
zoom_options.passcode_enabled | boolean | Require a passcode to join |
zoom_options.passcode | string | The passcode; left out, Zoom makes one. Up to 10 letters, digits or @ - _ * |
zoom_options.waiting_room | boolean | – |
zoom_options.encryption_type | string | Werte: |
zoom_options.host_video | boolean | – |
zoom_options.participant_video | boolean | – |
zoom_options.continuous_chat | boolean | Let people use the meeting chat before and after |
zoom_options.join_before_host | boolean | – |
zoom_options.mute_upon_entry | boolean | – |
zoom_options.auto_recording | string | Werte: |
zoom_options.recurrence | ZoomRecurrenceDto | – |
Antworten
- 200Entry returned with its link
- 400No Zoom meeting made here, or Zoom refused
- 404Meeting deleted inside Zoom
- 409Meeting still being created
curl -X PATCH "https://xapi.ambertech.cloud/api/v1/calendar/events/{id}/zoom-meeting" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"zoom_options":"…"}'