> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Events Calendar

> Returns events within a date range in FullCalendar-compatible format for display in booking and events calendars.

# Get Events Calendar

Returns published events within a given date range formatted for the [FullCalendar](https://fullcalendar.io/) library. Used alongside booking slots in the portal's calendar view to give customers a unified view of space bookings and events.

<Note>This endpoint uses the `/en/` legacy route prefix rather than `/api/public/`. It does not support `_shape` field shaping.</Note>

## Authentication

No authentication required.

## Query Parameters

<ParamField query="start" type="string" required>
  ISO 8601 UTC datetime for the start of the range. **Example**: `2026-03-01T00:00:00.000Z`
</ParamField>

<ParamField query="end" type="string" required>
  ISO 8601 UTC datetime for the end of the range. **Example**: `2026-03-31T23:59:59.999Z`
</ParamField>

## Response

Returns an `EventsCalendar` array — a flat list of `EventsCalendarEvent` objects, one per event that falls within the requested range.

### EventsCalendarEvent Fields

<ResponseField name="id" type="string" required>
  Unique event identifier (stringified integer) compatible with FullCalendar's `id` field.
</ResponseField>

<ResponseField name="title" type="string" required>
  Event display name shown on the calendar.
</ResponseField>

<ResponseField name="start" type="string" required>
  Event start datetime (ISO 8601).
</ResponseField>

<ResponseField name="end" type="string" required>
  Event end datetime (ISO 8601).
</ResponseField>

<ResponseField name="allDay" type="boolean">
  When `true`, the event is displayed as an all-day block in the calendar.
</ResponseField>

<ResponseField name="shortDescription" type="string">
  Brief summary displayed in the calendar event tooltip or popover.
</ResponseField>

<ResponseField name="businessName" type="string">
  Name of the coworking location that published the event.
</ResponseField>

<ResponseField name="location" type="string | null">
  Venue name or room identifier.
</ResponseField>

<ResponseField name="venueAddress" type="string | null">
  Full postal address of the event venue.
</ResponseField>

<ResponseField name="ticketsPage" type="string | null">
  External ticket purchase URL if the operator has set a custom tickets page.
</ResponseField>

<ResponseField name="webAddress" type="string | null">
  External event URL (e.g. a Zoom or Eventbrite link).
</ResponseField>

<ResponseField name="url" type="string">
  Portal-relative URL to the event detail page. Use this to navigate on calendar item click.
</ResponseField>

<ResponseField name="event" type="boolean">
  Always `true` — distinguishes event entries from booking entries when both are rendered in the same FullCalendar instance.
</ResponseField>

<ResponseField name="editable" type="boolean">
  Always `false` for event entries — events cannot be dragged or resized in the calendar.
</ResponseField>

<ResponseField name="ignoreTimezone" type="boolean">
  When `true`, FullCalendar should treat the `start`/`end` values as local times rather than converting from UTC.
</ResponseField>

<ResponseField name="resourceId" type="string">
  ID of the linked bookable resource, if the event is associated with a specific room or desk.
</ResponseField>

<ResponseField name="resourceName" type="string">
  Display name of the linked resource.
</ResponseField>

## Examples

### Fetch calendar events for March 2026

```http theme={null}
GET /en/bookings/fullCalendarEvents?start=2026-03-01T00:00:00.000Z&end=2026-03-31T23:59:59.999Z
```

```json theme={null}
[
  {
    "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

```typescript theme={null}
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

<ResponseField name="400 Bad Request" type="error">
  `start` or `end` is missing or not a valid ISO 8601 datetime string.
</ResponseField>

## Related Endpoints

| 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) |
