---
title: "Replace a calendar event."
method: PUT
path: "/calendar/v0-nsfw/events/{id}"
tags: ["CalendarEvent"]
---

# Replace a calendar event.

`PUT /calendar/v0-nsfw/events/{id}`

## Request

- Base URL: `https://api.apaleo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.apaleo.com/calendar/v0-nsfw/events/{id}`
- Auth: OAuth 2
  - Implicit: `https://identity.apaleo.com/connect/authorize`
  - Scopes: `calendar-events.manage`, `admin`

Replace a calendar event. propertyIds is required (an empty list is rejected).
Omitting recurrence turns the event into a one-off.<br>You must have this scope: 'calendar-events.manage'.<br>For fine-grained clients, you must have this permission: 'core.calendar_events.modify'.

## Path parameters

- `id` string, required

## Request body

- ReplaceCalendarEventModel
  - `title` string, required: The title of the calendar event.
  - `description` string, nullable: The description of the calendar event.
  - `from` string, date, required: The first date the calendar event takes place.
  - `to` string, date, required: The last date the calendar event takes place.
  - `category` 'ConcertsAndMusic' | 'Sports' | 'ArtsAndEntertainment' | 'ConferencesAndBusiness' | 'CommunityAndLifestyle' | 'PublicHoliday' | 'SchoolHoliday' | 'Other', required: The category of the calendar event.
  - `propertyIds` string[], required: The ids of the properties this calendar event applies to. Submitting an empty list is rejected.
  - `recurrence` CalendarEventRecurrenceModel
    - `frequency` 'Daily' | 'Weekly' | 'Monthly' | 'Yearly', required: How often the event repeats.
    - `interval` integer, nullable: The number of frequency units between occurrences. Defaults to 1 when omitted.
    - `end` string, date, nullable: The date after which the event no longer recurs. Recurs indefinitely when omitted.

## Response `200`

Success.

- CalendarEventModel
  - `id` string, required: The id of the calendar event.
  - `title` string, required: The title of the calendar event.
  - `description` string, nullable: The description of the calendar event.
  - `from` string, date, required: The first date the calendar event takes place.
  - `to` string, date, required: The last date the calendar event takes place.
  - `category` 'ConcertsAndMusic' | 'Sports' | 'ArtsAndEntertainment' | 'ConferencesAndBusiness' | 'CommunityAndLifestyle' | 'PublicHoliday' | 'SchoolHoliday' | 'Other', required: The category of the calendar event.
  - `propertyIds` string[], required: The ids of the properties this calendar event currently applies to. Sorted A–Z by property code.
  - `recurrence` CalendarEventRecurrenceModel
    - `frequency` 'Daily' | 'Weekly' | 'Monthly' | 'Yearly', required: How often the event repeats.
    - `interval` integer, nullable: The number of frequency units between occurrences. Defaults to 1 when omitted.
    - `end` string, date, nullable: The date after which the event no longer recurs. Recurs indefinitely when omitted.
  - `actions` ActionModelCalendarEventActionNotAllowedCalendarEventActionReason[], nullable: Present only with expand=actions.
    - `action` 'Patch' | 'Delete' | 'DeleteOccurrence' | 'Split' | 'Fork' | 'OverrideOccurrence', required
    - `isAllowed` boolean, required
    - `reasons` ActionReasonModelNotAllowedCalendarEventActionReason[], nullable
      - `code` 'PatchNotAllowedWithoutPermissionOnEveryProperty' | 'DeleteNotAllowedWithoutPermissionOnEveryProperty' | 'DeleteOccurrenceNotAllowedForNonRecurringEvent' | 'DeleteOccurrenceNotAllowedForOnlyRemainingOccurrence' | 'SplitNotAllowedForNonRecurringEvent' | 'SplitNotAllowedAtFirstOccurrence' | 'SplitNotAllowedAtLastOccurrence' | 'SplitNotAllowedWithoutPermissionOnEveryProperty' | 'ForkNotAllowedForSinglePropertyEvent' | 'OverrideOccurrenceNotAllowedForNonRecurringEvent', required
      - `message` string, required

## Other responses

- `400`: Bad request.
- `401`: You are unauthorized.
- `403`: Forbidden.
- `404`: Not Found
- `415`: Unsupported media type.
- `422`: Validation errors in the request body or query params.
- `499`: Client closed request.
- `500`: An unexpected error occurred.
- `503`: The server is currently unavailable. Please try later.

---

[API](https://skmtc.dev/apaleo/apis/apaleo-calendar-api-not-safe-for-work.md) - [All operations](https://skmtc.dev/apaleo/apis/apaleo-calendar-api-not-safe-for-work/llms.txt) - [OpenAPI document](https://skmtc.dev/apaleo/apis/apaleo-calendar-api-not-safe-for-work/revisions/e3f959069a09?raw)
