# Change event status

Archives or restores an event.
Requires `SITE_CALENDAR:WRITE`.

Endpoint: PATCH /calendar/events/{eventId}/status
Version: 1.4.0
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer opaque

## Path parameters:

  - `eventId` (integer, required)
    ID of the event to archive or restore.

## Request fields (application/json):

  - `archive` (boolean, required)
    Set to true to archive the event (hidden from default listings but
kept and restorable), or false to restore a previously archived event.

## Response 200:

  - `200` (unknown)
    Event status changed

## Response 200 fields (application/json):

  - `data` (object)
    A calendar event. The set of populated fields depends on the event type and
on the information supplied when the event was created.

  - `data.id` (integer)
    Unique identifier of the event.

  - `data.type` (string)
    Event type key (matches the `key` of an entry from the event types list).
    Example: VISIT

  - `data.starts_at` (string)
    Event start, UTC datetime (`YYYY-MM-DDTHH:MM:SSZ`).
    Example: 2026-01-15T09:00:00Z

  - `data.ends_at` (string)
    Event end, UTC datetime (`YYYY-MM-DDTHH:MM:SSZ`).
    Example: 2026-01-15T10:00:00Z

  - `data.all_day` (boolean)
    True when the event lasts the whole day and the time portion is not significant.

  - `data.title` (string | null)
    Title displayed on the event.

  - `data.location` (string | null)
    Address or place where the event takes place.

  - `data.location_geo` (object | null)
    Geographic coordinates of the location, when known.

  - `data.location_geo.lat` (number)
    Latitude in decimal degrees.
    Example: 48.8566

  - `data.location_geo.lng` (number)
    Longitude in decimal degrees.
    Example: 2.3522

  - `data.sequence_duration` (integer | null)
    Duration of a single booking slot, in minutes.

  - `data.gathering_gauge` (integer | null)
    Maximum number of attendees that can book the same slot.

  - `data.commute_duration` (integer | null)
    Travel time reserved before the event, in minutes.

  - `data.communicate_location` (boolean | null)
    Whether the location may be shared with attendees.

  - `data.is_confidential` (boolean | null)
    When true, the event details are hidden from non-participants; the slot still shows as busy.

  - `data.remind_time_in_min` (integer | null)
    Reminder lead time before the event start, in minutes.

  - `data.appointment_mode` (string | null)
    How the appointment is conducted:
- `OFFICE`: at the agency office
- `PHONE`: by phone
- `PRODUCT`: on-site at the property
- `VISIO`: video conference
    Enum: "OFFICE", "PHONE", "PRODUCT", "VISIO", null

  - `data.participants` (array)
    Users (agents) attending the event.

  - `data.participants.ext_user_id` (integer)
    Identifier of the participating user (agent).

  - `data.participants.is_creator` (boolean)
    True for the participant who created the event.

  - `data.participants.is_organizer` (boolean)
    True for the participant who owns/hosts the event.

  - `data.products` (array)
    Property listings linked to the event.

  - `data.products.ext_product_id` (string)
    Identifier of the linked property listing.

  - `data.products.ext_domain_id` (string)
    Identifier of the domain the listing belongs to.

  - `data.contacts` (array)
    Contacts (customers) linked to the event.

  - `data.contacts.ext_contact_id` (string)
    Identifier of the linked contact.

  - `data.contacts.ext_domain_id` (string)
    Identifier of the domain the contact belongs to.

  - `data.notes` (string | null)
    Free-text notes attached to the event.

  - `data.visio_url` (string | null)
    Link to the video-conference room (used when `appointment_mode` is `VISIO`).

  - `data.immo360_organizer_url` (string | null)
    Link used by the agent to host the live/virtual visit.

  - `data.immo360_participation_url` (string | null)
    Link shared with attendees to join the live/virtual visit.

  - `data.archived` (boolean | null)
    True when the event has been archived (hidden from default listings but restorable).

  - `data.parent_id` (integer | null)
    Identifier of the parent event when this entry is an occurrence of a recurring series.

  - `data.recurrence` (object | null)
    Recurrence definition of the event, when it is part of a recurring series.

## Response 401:

  - `401` (unknown)
    Authentication required

## Response 401 fields (application/json):

  - `error` (object)

  - `error.code` (string, required)

  - `error.message` (string, required)

## Response 403:

  - `403` (unknown)
    Insufficient permissions

## Response 403 fields (application/json):

  - `error` (object)

  - `error.code` (string, required)

  - `error.message` (string, required)

## Response 404:

  - `404` (unknown)
    Resource not found

## Response 404 fields (application/json):

  - `error` (object)

  - `error.code` (string, required)

  - `error.message` (string, required)

## Response 422:

  - `422` (unknown)
    Validation failed

## Response 422 fields (application/json):

  - `error` (object)

  - `error.code` (string)
    Enum: "VALIDATION_ERROR"

  - `error.message` (string)

  - `error.details` (array)

  - `error.details.field` (string)

  - `error.details.message` (string)

