For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Key
Relation
Type
Relation Field(s)

user

Belongs to

user_id

calendar

Belongs to

calendar_id

departments

Belongs to many

department_calendar_event

Computed Properties

  • hash - Hashed representation of the event id used in stable event URLs.

  • color - Color of the related Calendar, or an empty string when no calendar is loaded.

  • url and static_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

Interval
Variant
Syntax
Description

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

Key
Type
Default
Description

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 contain repeat_date: true and occurrence-specific start and end values.

Example Request

Example Response

Show

Show one event by numeric ID or hash.

Definition

GET /api/calendar-events/{calendarEvent}

Route Parameters

Parameter
Type
Description

calendarEvent

integer | string

Event ID or hash.

Request Keys

Key
Type
Default
Description

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

Key
Type
Description

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 null interval values instead of failing the complete import.

Example Request

Example Response

Create

Create an event.

Definition

POST /api/calendar-events

Request Keys

Key
Type
Default
Description

calendar_id*

integer

-

Related Calendar ID.

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

string | null

null

Recurrence value from Interval Syntax.

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_id is 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

Parameter
Type
Description

calendarEvent

integer | string

Event ID or hash.

Request Keys

Key
Type
Description

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_id cannot be changed.

  • Departments are synchronized only when department_ids is 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

Parameter
Type
Description

calendarEvent

integer | string

Event ID or hash.

Example Request

Example Response

Last updated