For AI agents: markdown of this page — /docs-content-en/entities/booking-resources/update.md documentation index — /llms.txt

Update: Booking resources

PATCH /v1/booking-resources/:id

Requires booking scope. Writes require READWRITE. Body fields are flat, without an outer fields object. Setting work hours does not create a booking.

Bitrix24 enables client notifications by default. Explicitly disable all six is*NotificationOn switches to prevent SMS/WhatsApp notifications. Cards return booleans; writes accept booleans or Y/N.

Bitrix24 preserves omitted fields. Some cloud versions require a new code for type PATCH and reject the existing code as a duplicate; this returns 422. No automatic rename. The response contains the reread card. A failed reread does not undo the completed write.

Resource PATCH is refused with 422 BOOKING_RESOURCE_SCHEDULE_CONFLICT when saved work-hour slots exist. Native Bitrix24 update deletes slots even when only description changes. Explicitly remove the slots before editing and then set the intended schedule again. The pre-read is not atomic with schedule edits made directly in Bitrix24.

Parameters

Field Description
id Identifier from the resource list.
description Changed field.

Other card fields: senderCode, notification delays/repetitions, templateTypeInfo|Confirmation|Reminder|Feedback|Delayed.

Response fields

success: true, data: resource/type card with id, name and notification settings; fields can be null.

JSON
{
  "success": true,
  "data": {
    "id": 10,
    "name": "VIBE-PROBE Specialist",
    "description": "Appointment resource",
    "typeId": 7,
    "isMain": true,
    "isInfoNotificationOn": false,
    "isConfirmationNotificationOn": false,
    "isReminderNotificationOn": false,
    "isFeedbackNotificationOn": false,
    "isDelayedNotificationOn": false,
    "isCancellationNotificationOn": false
  }
}

Examples

cURL — personal key

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/booking-resources/10" -H "X-Api-Key: $VIBE_API_KEY" -H 'Content-Type: application/json' -d '{"description":"Updated"}'

cURL — OAuth

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/booking-resources/10" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $SESSION_TOKEN" -H 'Content-Type: application/json' -d '{"description":"Updated"}'

JavaScript — personal key

javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/booking-resources/10', {
  method: 'PATCH',
  headers: { 'X-Api-Key': apiKey, 'Content-Type': 'application/json' },
  body: JSON.stringify({"description":"Updated"}),
});
console.log(await response.json());

JavaScript — OAuth

javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/booking-resources/10', {
  method: 'PATCH',
  headers: { 'X-Api-Key': apiKey, Authorization: `Bearer ${sessionToken}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({"description":"Updated"}),
});
console.log(await response.json());

Errors

HTTP Code Condition
400 INVALID_PARAMS Malformed path/body/query
400 MISSING_REQUIRED_FIELDS Missing name for resource create or code for type create
400 READONLY_FIELD id in write body
401 TOKEN_MISSING No Bitrix24 credentials
403 SCOPE_DENIED Missing booking scope
403 WRITE_BLOCKED_READONLY_KEY Write with read-only key
404 ENTITY_NOT_FOUND Missing record
422 BITRIX_ERROR Bitrix24 business refusal
429 RATE_LIMITED Rate limit
502 BITRIX_RESPONSE_INVALID Invalid upstream payload
503 BITRIX_TIMEOUT Upstream timeout

Errors.

404 — record not found:

JSON
{"success":false,"error":{"code":"ENTITY_NOT_FOUND","message":"Booking record not found"}}