Get Events Calendar
Returns published events within a given date range formatted for the FullCalendar library. Used alongside booking slots in the portal’s calendar view to give customers a unified view of space bookings and events.
This endpoint uses the /en/ legacy route prefix rather than /api/public/. It does not support _shape field shaping.
Authentication
No authentication required.
Query Parameters
ISO 8601 UTC datetime for the start of the range. Example: 2026-03-01T00:00:00.000Z
ISO 8601 UTC datetime for the end of the range. Example: 2026-03-31T23:59:59.999Z
Response
Returns an EventsCalendar array — a flat list of EventsCalendarEvent objects, one per event that falls within the requested range.
EventsCalendarEvent Fields
Unique event identifier (stringified integer) compatible with FullCalendar’s id field.
Event display name shown on the calendar.
Event start datetime (ISO 8601).
Event end datetime (ISO 8601).
When true, the event is displayed as an all-day block in the calendar.
Brief summary displayed in the calendar event tooltip or popover.
Name of the coworking location that published the event.
Venue name or room identifier.
Full postal address of the event venue.
External ticket purchase URL if the operator has set a custom tickets page.
External event URL (e.g. a Zoom or Eventbrite link).
Portal-relative URL to the event detail page. Use this to navigate on calendar item click.
Always true — distinguishes event entries from booking entries when both are rendered in the same FullCalendar instance.
Always false for event entries — events cannot be dragged or resized in the calendar.
When true, FullCalendar should treat the start/end values as local times rather than converting from UTC.
ID of the linked bookable resource, if the event is associated with a specific room or desk.
Display name of the linked resource.
Examples
Fetch calendar events for March 2026
GET /en/bookings/fullCalendarEvents?start=2026-03-01T00:00:00.000Z&end=2026-03-31T23:59:59.999Z
[
{
"id": "412",
"resourceId": "",
"resourceName": "",
"title": "Morning Yoga & Mindfulness",
"shortDescription": "Start your week with a guided yoga session open to all levels.",
"businessName": "Downtown Coworking Hub",
"location": "Studio Room B",
"venueAddress": null,
"ticketsPage": null,
"webAddress": null,
"start": "2026-03-23T07:30:00",
"end": "2026-03-23T08:15:00",
"allDay": false,
"editable": false,
"ignoreTimezone": false,
"event": true,
"url": "/events/412"
},
{
"id": "420",
"resourceId": "15",
"resourceName": "Main Conference Room",
"title": "Startup Pitch Night",
"shortDescription": "Watch 8 local startups pitch to a panel of investors.",
"businessName": "Downtown Coworking Hub",
"location": "Main Conference Room",
"venueAddress": null,
"ticketsPage": null,
"webAddress": null,
"start": "2026-03-28T18:00:00",
"end": "2026-03-28T21:00:00",
"allDay": false,
"editable": false,
"ignoreTimezone": false,
"event": true,
"url": "/events/420"
}
]
TypeScript Integration
import endpoints from '@/api/endpoints'
import { EventsCalendar } from '@/types/endpoints/EventsCalendar'
import { useData } from '@/api/fetchData'
import { DateTime } from 'luxon'
const start = DateTime.now().startOf('month')
const end = DateTime.now().endOf('month')
const endpoint = endpoints.events.calendar(start, end)
const { resource: calendarEvents } = useData<EventsCalendar>(httpClient, endpoint.url)
Usage in Portal
| Context | Source file |
|---|
Bookings search / resource calendar (/bookings) | src/views/public/bookings/useBookingsSearchData.tsx |
Error Responses
start or end is missing or not a valid ISO 8601 datetime string.
| Method | Endpoint | Description |
|---|
GET | /api/public/events | Paginated events list with full event metadata |
GET | /api/public/events/{id} | Full detail for a specific event |
GET | /en/bookings/fullCalendarBookings | Bookings in FullCalendar format (same calendar) |