For AI agents: markdown of this page — /docs-content-en/entities/calendar-events/meeting-status-set.md documentation index — /llms.txt

Change meeting participation status

PUT /v1/calendar-events/:id/meeting-status

Accepts or declines an invitation to a calendar meeting, or withdraws the response to it. The status changes only for the employee the request runs as.

Parameters

Parameter Type Required Description
Parameterid (path) Typenumber Requiredyes DescriptionMeeting ID. Either the event ID in the organizer's calendar or the ID of the meeting copy in an invitee's calendar works — the copy's parentId field points to the organizer's event. List: GET /v1/calendar-events

Request fields (body)

Field Type Required Description
Fieldstatus Typestring Requiredyes DescriptionNew status: accepted — accept the invitation, declined — decline it, invited — withdraw the response. Any other value, including host, DECLINED, and the letters Y, N, Q, returns 400 INVALID_PARAMS

Examples

curl — personal key

Terminal
curl -X PUT "https://vibecode.bitrix24.com/v1/calendar-events/7773/meeting-status" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "declined"}'

curl — OAuth application

Terminal
curl -X PUT "https://vibecode.bitrix24.com/v1/calendar-events/7773/meeting-status" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "declined"}'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/7773/meeting-status', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    status: 'declined',
  }),
})

const { success, data } = await res.json()
console.log('Participation status:', data.status)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/calendar-events/7773/meeting-status', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    status: 'declined',
  }),
})

const { success, data } = await res.json()

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata.status Typestring DescriptionThe status read back after the write: accepted, declined, or invited

Response example

JSON
{
  "success": true,
  "data": {
    "status": "declined"
  }
}

Error response example

422 — the meeting organizer tries to change their own status:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Bitrix24 did not persist meeting status"
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_PARAMS Descriptionid must be a positive safe integer — id is not a positive integer
HTTP400 CodeINVALID_PARAMS Descriptionstatus must be accepted, declined or invited — status is missing or not in the list
HTTP400 CodeFST_ERR_CTP_EMPTY_JSON_BODY DescriptionThe Content-Type: application/json header is sent, but the request body is empty
HTTP404 CodeENTITY_NOT_FOUND DescriptionCalendar record not found — no event with this id exists
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 did not persist meeting status — the status stayed unchanged after the write. The meeting organizer gets this response: their host status cannot be changed
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 did not return a participation status — the employee was not invited to this meeting. The status does not change
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 did not confirm meeting status — Bitrix24 did not confirm the write
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 rejected the request; the error text is in message. This is the response for an event that is not a meeting: isMeeting is false
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY DescriptionThe key is in read-only mode. error.details contains the key mode and the URL of the page where the mode is switched
HTTP403 CodeBITRIX_ACCESS_DENIED DescriptionBitrix24 denied the employee access due to insufficient permissions
HTTP403 CodeSCOPE_DENIED DescriptionThe API key does not have the calendar scope
HTTP401 CodeMISSING_API_KEY DescriptionThe X-Api-Key header is missing
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no configured tokens
HTTP429 CodeRATE_LIMITED DescriptionBitrix24 rejected the call under its request rate limit for the portal
HTTP502 CodeBITRIX_UNAVAILABLE DescriptionBitrix24 is unavailable or returned a response of an unexpected shape
HTTP503 CodeBITRIX_TIMEOUT DescriptionBitrix24 did not respond in time

Full list of common API errors — Errors.

Known specifics

  • Retrying is safe. Writing the same status again returns 200 with the same value, so the request can be retried after a network failure or a 503.
  • The organizer sees the response. After the write, the employee's status changes in the event's attendeeList field — GET /v1/calendar-events/:id: Y — accepted, N — declined, Q — has not responded.

See also