Events

Update an event

Updates the given fields with the app's rules: archived event refused, end after start (checked when dates are sent), locked venue refused, venue availability, time zone following a venue change, billed party pushed to the unsigned quotes, calendars synchronised, timeline entries. Omitted fields stay as they are. With status, the status change has the effects of POST /events/{id}/status (notification, reasons cleared, Slack, calendars, webhook); the other fields are written first, so a refused field never leaves a half-applied status. Role permission: data.write; changing status or stage_id also needs events.manage.

patch/events/{id}

Request

  • Base URL: https://joinways.app/api/v1
  • URL: https://joinways.app/api/v1/events/{id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://joinways.app/oauth/authorize, token URL https://joinways.app/api/oauth/token, scopes: mcp.write)

Headers

Idempotency-Keystring

Optional client-generated key (1 to 255 characters, e.g. a UUID v4) that makes the request idempotent for 24 hours: a retry with the same key replays the recorded response (marked Idempotency-Replayed: true) instead of executing the operation again. Same key with another body: 422 idempotency_key_reuse; while the first request runs: 409 idempotency_conflict. See the Idempotency section.

Request body

titlestring
start_datestring date-time
end_datestring date-time
status'option' | 'confirmed' | 'lost' | 'cancelled'

option = pending / tentative, confirmed = booked, lost = did not convert, cancelled = cancelled after booking.

stage_idstring uuid nullable

Custom stage under the (new) status; null clears it. Needs events.manage.

typestring
paxinteger
budgetnumber
venue_idstring uuid

A venue of the workspace. Changing it without space_ids drops the previous venue's spaces; the time zone follows unless given.

space_idsstring[]

Replaces the booked spaces; [] = the whole venue. Ignored for a venue only rented whole (booked_whole_only).

company_idstring uuid
contact_person_idstring uuid
assigned_to_account_idstring uuid

A member of the workspace.

timezonestring

IANA time zone.

sourcestring
flexibleboolean
confirmed_amount_excl_taxnumber
quote_to_platformboolean

Bill the quotes to the booking platform of source. Clears billing_company_id.

billing_company_idstring uuid nullable

Bill the quotes to this company instead of the client; null = the client. Clears quote_to_platform.

selected_datesstring[] nullable

[], null or a single day reverts to a contiguous range.

Example request

{
  "status": "confirmed",
  "day_hours": [
    {
      "date": "2026-11-12",
      "start": "09:00",
      "end": "18:00"
    },
    {
      "date": "2026-11-13",
      "start": "19:00",
      "end": "02:00"
    }
  ]
}

Response

The updated event.

idstring uuid
account_idstring uuid
event_numberinteger nullable
internal_referencestring nullable
titlestring
descriptionstring nullable
typestring nullable
categorystring nullable
status'option' | 'confirmed' | 'lost' | 'cancelled'

option = pending / tentative, confirmed = booked, lost = did not convert, cancelled = cancelled after booking.

status_changed_atstring date-time nullable
stage_idstring uuid nullable
stage_changed_atstring date-time nullable
paxinteger nullable
start_datestring date-time
end_datestring date-time nullable
selected_datesstring[] nullable
timezonestring nullable
is_virtualboolean nullable
flexibleboolean nullable
languagestring nullable
venue_idstring uuid nullable

The venue (internally location_id).

locationstring nullable

Free-text place (legacy), not the venue.

addressstring nullable
citystring nullable
postal_codestring nullable
countrystring nullable
sourcestring nullable
source_lead_idstring uuid nullable

Primary request (lead) of the event.

budgetnumber nullable
expected_revenuenumber nullable
currencystring nullable
confirmed_amountnumber nullable
confirmed_amount_excl_taxnumber nullable
cancellation_fee_excl_taxnumber nullable
confirmed_atstring date-time nullable
loss_reasonstring nullable
loss_reason_detailstring nullable
cancellation_reasonstring nullable
cancellation_reason_detailstring nullable
tagsstring[] nullable
notesstring nullable
company_idstring uuid nullable
contact_person_idstring uuid nullable
assigned_to_account_idstring uuid nullable
created_bystring uuid nullable
billing_company_idstring uuid nullable

Third-party company the quotes are billed to (instead of the client).

quote_to_platformboolean nullable

The quotes are billed to the booking platform of source.

event_group_idstring uuid nullable
external_linkstring nullable
setup_typestring nullable
setup_notesstring nullable
catering_notesstring nullable
dietary_notesstring nullable

Diets and allergies (« Contraintes alimentaires »), for the whole event.

technical_notesstring nullable
service_notesstring nullable
beo_contextstring nullable
beo_remarksstring nullable
scheduleobject[] nullable

BEO program lines (see BeoUpdate.schedule).

beo_public_urlstring uri nullable

Shareable, no-login URL of the public BEO page.

archived_atstring date-time nullable
archived_bystring uuid nullable
created_atstring date-time nullable
updated_atstring date-time nullable

Example response

{
  "status": "confirmed",
  "day_hours": [
    {
      "date": "2026-11-12",
      "start": "09:00",
      "end": "18:00"
    },
    {
      "date": "2026-11-13",
      "start": "19:00",
      "end": "02:00"
    }
  ],
  "beo_public_url": "https://joinways.app/beo/8f3c2a1e-…"
}

Changes

No recorded changes to this operation across all 1 revision of this API.