Calendar events
Events on the timeline: bookings, blocked periods or notes
The calendar event object
Attributes
iduuidUnique identifier
calendar_iduuid | nullIdentifier of the external calendar the event is imported from
created_atread-onlytimestamp with time zoneCreation timestamp
updated_atread-onlytimestamp with time zoneLast modification timestamp
durationread-onlyintegerNumber of nights of the event, or days for units rented per day
end_datedateEnd date of the event
ftstsvectorgenerated_titletextTitle of the event, generated from the unit name and the guest name
has_non_invoiced_itemsbooleanWhether the booking of the event has line items that are not on an invoice
has_open_paymentsbooleanWhether the booking of the event has payments that are due
notestextPrivate notes about the event
occupancyRecord<uuid, integer>Occupancy per capacity group
origintext | nullOrigin of the event
paddingsmallintPadding of the event due to cooldown time
start_datedateStart date of the event
statusCalendarEventStatusStatus of the event
titletextTitle of the event
typeCalendarEventTypeType of the event
uidtextIdentifier of the event in the external calendar
Related resources
Embed related resources in the response with the select parameter, for example select=*,bookings!booking_id(*). Resources related through more than one column need the column as a hint, like table!column(*).
external_calendars(*)object | nullThe external calendar referenced by calendar_id.
organizations!organization_id(*)object | nullThe organization referenced by organization_id.
booking_details(*)arrayThe booking details referencing this calendar event through booking_details.calendar_event_id.
calendar_event_notes(*)arrayThe calendar event notes referencing this calendar event through calendar_event_notes.calendar_event_id.
calendar_event_updates(*)arrayThe calendar event updates referencing this calendar event through calendar_event_updates.calendar_event_id.
line_items(*)arrayThe line items referencing this calendar event through line_items.event_id.
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"calendar_id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"duration": 0,
"end_date": "2026-10-30",
"generated_title": "Summer cottage",
"has_non_invoiced_items": false,
"has_open_payments": false,
"notes": "A short description.",
"occupancy": {},
"origin": "",
"padding": 0,
"start_date": "2026-10-30",
"status": "CONFIRMED",
"title": "Summer cottage",
"type": "booking",
"uid": ""
}curl -X GET "https://api.bookingmood.com/v1/calendar_events?limit=10&select=*,bookings!booking_id(*),external_calendars(*)" \
-H "Authorization: Bearer YOUR_API_KEY"List calendar events
Filters
idFilter<uuid>Unique identifier
calendar_idFilter<uuid | null>Identifier of the external calendar the event is imported from
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
durationFilter<integer>Number of nights of the event, or days for units rented per day
end_dateFilter<date>End date of the event
ftsFilter<tsvector>generated_titleFilter<text>Title of the event, generated from the unit name and the guest name
has_non_invoiced_itemsFilter<boolean>Whether the booking of the event has line items that are not on an invoice
has_open_paymentsFilter<boolean>Whether the booking of the event has payments that are due
notesFilter<text>Private notes about the event
occupancyFilter<Record<uuid, integer>>Occupancy per capacity group
originFilter<text | null>Origin of the event
paddingFilter<smallint>Padding of the event due to cooldown time
start_dateFilter<date>Start date of the event
statusFilter<CalendarEventStatus>Status of the event
titleFilter<text>Title of the event
typeFilter<CalendarEventType>Type of the event
uidFilter<text>Identifier of the event in the external calendar
Responses
200A list of calendar events with the selected columns
206Partial Content
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
code, message, details and hint. See the introduction for more on errors.GET /calendar_eventscurl -X GET "https://api.bookingmood.com/v1/calendar_events?select=*&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"calendar_id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"duration": 0,
"end_date": "2026-10-30",
"generated_title": "Summer cottage",
"has_non_invoiced_items": false,
"has_open_payments": false,
"notes": "A short description.",
"occupancy": {},
"origin": "",
"padding": 0,
"start_date": "2026-10-30",
"status": "CONFIRMED",
"title": "Summer cottage",
"type": "booking",
"uid": ""
}
]Delete calendar events
Filters
Without filters, this request deletes all calendar events you have access to. Always filter on at least one column, e.g. id=eq.{id}.
idFilter<uuid>Unique identifier
calendar_idFilter<uuid | null>Identifier of the external calendar the event is imported from
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
durationFilter<integer>Number of nights of the event, or days for units rented per day
end_dateFilter<date>End date of the event
ftsFilter<tsvector>generated_titleFilter<text>Title of the event, generated from the unit name and the guest name
has_non_invoiced_itemsFilter<boolean>Whether the booking of the event has line items that are not on an invoice
has_open_paymentsFilter<boolean>Whether the booking of the event has payments that are due
notesFilter<text>Private notes about the event
occupancyFilter<Record<uuid, integer>>Occupancy per capacity group
originFilter<text | null>Origin of the event
paddingFilter<smallint>Padding of the event due to cooldown time
start_dateFilter<date>Start date of the event
statusFilter<CalendarEventStatus>Status of the event
titleFilter<text>Title of the event
typeFilter<CalendarEventType>Type of the event
uidFilter<text>Identifier of the event in the external calendar
Responses
200The deleted calendar events with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
code, message, details and hint. See the introduction for more on errors.DELETE /calendar_eventscurl -X DELETE "https://api.bookingmood.com/v1/calendar_events?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"calendar_id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"duration": 0,
"end_date": "2026-10-30",
"generated_title": "Summer cottage",
"has_non_invoiced_items": false,
"has_open_payments": false,
"notes": "A short description.",
"occupancy": {},
"origin": "",
"padding": 0,
"start_date": "2026-10-30",
"status": "CONFIRMED",
"title": "Summer cottage",
"type": "booking",
"uid": ""
}
]Update calendar events
Filters
Without filters, this request updates all calendar events you have access to. Always filter on at least one column, e.g. id=eq.{id}.
idFilter<uuid>Unique identifier
calendar_idFilter<uuid | null>Identifier of the external calendar the event is imported from
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
durationFilter<integer>Number of nights of the event, or days for units rented per day
end_dateFilter<date>End date of the event
ftsFilter<tsvector>generated_titleFilter<text>Title of the event, generated from the unit name and the guest name
has_non_invoiced_itemsFilter<boolean>Whether the booking of the event has line items that are not on an invoice
has_open_paymentsFilter<boolean>Whether the booking of the event has payments that are due
notesFilter<text>Private notes about the event
occupancyFilter<Record<uuid, integer>>Occupancy per capacity group
originFilter<text | null>Origin of the event
paddingFilter<smallint>Padding of the event due to cooldown time
start_dateFilter<date>Start date of the event
statusFilter<CalendarEventStatus>Status of the event
titleFilter<text>Title of the event
typeFilter<CalendarEventType>Type of the event
uidFilter<text>Identifier of the event in the external calendar
Body
Partial<CalendarEvent>Read-only attributes are set by the database and can't be written.
Responses
200The updated calendar events with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.
400The request is malformed, for example an unknown column, an invalid filter or an invalid body.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
409The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.
code, message, details and hint. See the introduction for more on errors.PATCH /calendar_eventscurl -X PATCH "https://api.bookingmood.com/v1/calendar_events?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"end_date": "2026-10-30"
}'[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"calendar_id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"duration": 0,
"end_date": "2026-10-30",
"generated_title": "Summer cottage",
"has_non_invoiced_items": false,
"has_open_payments": false,
"notes": "A short description.",
"occupancy": {},
"origin": "",
"padding": 0,
"start_date": "2026-10-30",
"status": "CONFIRMED",
"title": "Summer cottage",
"type": "booking",
"uid": ""
}
]