CalendarEvents
Introduction
CalendarEvents are appointments owned by a User, categorized by a Calendar, and optionally shared with Departments.
Recurring events are expanded into occurrences by the list endpoint. Individual dates can be excluded through DeletedRepeatingCalendarEvents.
The description field uses the shared Rich Text HTML format.
Model Definition
Alias
calendarEvent
Relations
Computed Properties
hash- Hashed representation of the eventidused in stable event URLs.color- Color of the related Calendar, or an empty string when no calendar is loaded.urlandstatic_url- Link to the calendar event page.
Capabilities
URL Context - Event URLs resolve to access-checked context containing dates, location, a description teaser, and an optional image.
Notifications - Creation and relevant updates can notify eligible users in assigned departments according to calendar notification settings; deleting the event also removes its notifications.
Interval Syntax
Daily
Every day
d:::1
Repeat every day.
Weekly
Every week
w:::1
Repeat every week.
Weekly
Weekdays
w:::1d::1,2,3,4,5
Repeat on Monday through Friday every week.
Monthly
Day of month
m:::1d::15
Repeat on the 15th day every month.
Monthly
Week and weekday
m:::1w::1d::1
Repeat on the first Monday every month.
Yearly
Day
y:::1d::1
Repeat yearly on the configured day.
Yearly
Week and weekday
y:::1w::1d::1
Repeat yearly by week and weekday.
End condition
Occurrence count
r:::5
End after five occurrences. Only valid for interval_end.
End condition
Date
d:::2027-12-31
End on a date. Only valid for interval_end.
List
List events visible to the authenticated user. Recurring events are expanded within the requested period.
Definition
GET /api/calendar-events
Request Keys
department_ids
integer[] | string
All visible
Department IDs as an array or comma-separated string.
calendar_ids
integer[] | string
All calendars
Calendar IDs as an array or comma-separated string.
period_start
date
No lower bound
Beginning of the occurrence period.
period_end
date
No upper bound
End of the occurrence period.
search
string
No search
Search title and description.
selects
string
All fields
Comma-separated fields to return for persisted events.
relations
string
user, calendar, departments
Pipe-separated relations. An empty value suppresses defaults.
limit
integer
No limit
Maximum results after persisted and recurring events are merged. Minimum 1.
order_field
string
created_at
Field used to order persisted events.
order_direction
string
desc
asc or desc.
Behavior
Results are limited by calendar permissions, event ownership, and shared departments.
Persisted events contain
repeat_date: false; generated recurring occurrences containrepeat_date: trueand occurrence-specificstartandendvalues.
Example Request
Example Response
Show
Show one event by numeric ID or hash.
Definition
GET /api/calendar-events/{calendarEvent}
Route Parameters
calendarEvent
integer | string
Event ID or hash.
Request Keys
selects
string
All fields
Comma-separated fields to return.
relations
string
user, calendar, departments
Pipe-separated relations.
Example Request
Example Response
Parse ICS
Parse an uploaded iCalendar file into event request data without persisting events.
Definition
POST /api/calendar-events/ics
Request Keys
calendar_events_ics*
file
iCalendar file to parse.
Keys with * are required.
Behavior
UTC timestamps are converted to the application timezone and normalized to whole seconds.
Text descriptions are converted into HTML paragraphs. Invalid recurrence rules produce
nullinterval values instead of failing the complete import.
Example Request
Example Response
Create
Create an event.
Definition
POST /api/calendar-events
Request Keys
title*
string
-
Event title.
all_day
boolean
false
Whether the event spans complete calendar days.
start*
datetime
-
Start date and time.
end*
datetime
-
End date and time.
interval_end
string | null
null
Recurrence end condition.
location
string | null
null
Event location.
description
string | null
null
Event description, usually HTML.
department_ids
integer[] | string
[]
Visible departments as an array or comma-separated string.
Keys with * are required.
Behavior
user_idis always set to the authenticated user.Department IDs are attached after event creation. Depending on notification settings, eligible users in these departments can receive a creation notification.
Example Request
Example Response
Update
Update an event.
Definition
PUT /api/calendar-events/{calendarEvent}
Route Parameters
calendarEvent
integer | string
Event ID or hash.
Request Keys
calendar_id
integer
New Calendar ID.
title
string
New event title.
all_day
boolean
New all-day state.
start
datetime
New start.
end
datetime
New end.
interval
string | null
New recurrence value.
interval_end
string | null
New recurrence end condition.
location
string | null
New location.
description
string | null
New description.
department_ids
integer[] | string
Replacement department IDs.
Behavior
user_idcannot be changed.Departments are synchronized only when
department_idsis non-empty. Send all desired IDs when replacing the assignment.Changes to title, description, location, dates, or all-day state can trigger update notifications.
Example Request
Example Response
Delete
Delete an event permanently and remove its related notifications.
Definition
DELETE /api/calendar-events/{calendarEvent}
Route Parameters
calendarEvent
integer | string
Event ID or hash.
Example Request
Example Response
Last updated