Update Event calendar.event.update

Choose a tool for developing with an AI agent:

  • use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
  • use the MCP server to develop a REST API integration in your own project. The agent refers to the official REST documentation

Scope: calendar

Who can execute the method: any user

The calendar.event.update method updates an existing event.

Method Parameters

Required parameters are marked with *

Name
type

Description

id*
integer

Event identifier.

You can obtain the identifier using the calendar.event.get or calendar.event.get.nearest methods

type*
string

Calendar type:

  • user — user calendar
  • group — group calendar
  • company_calendar — company calendar

ownerId*
integer

Calendar owner identifier.

For the company calendar, the ownerId parameter is 0

from
datetime|date

Start date and time of the event.

You can specify the date without time. To do this, pass the value Y in the skip_time parameter

to
datetime|date

End date of the event.

You can specify the date without time. To do this, pass the value Y in the skip_time parameter

from_ts
integer

Date and time in timestamp format. Can be used instead of the from parameter

to_ts
integer

Date and time in timestamp format. Can be used instead of the to parameter

section
integer

Calendar identifier

name
string

Event name

skip_time
string

Pass the date value without time in the from and to parameters. Possible values:

  • Y — use only the date
  • N — use date and time

Date format according to ISO-8601 standard

timezone_from
string

Timezone of the start date and time of the event. Default is the current user's timezone.

The value should be passed as a string, for example, Europe/Riga.

Timezone handling features

timezone_to
string

Timezone of the end date and time of the event. Default value is the current user's timezone.

The value should be passed as a string, for example, Europe/Riga.

Timezone handling features

description
text

Event description

color
string

Background color of the event.

HEX format, for example #9cbe1c. In a JSON request body, pass # as is. In a URL string, encode # as %23: color=%239cbe1c

text_color
string

Text color of the event.

HEX format, for example #283033. In a JSON request body, pass # as is. In a URL string, encode # as %23: text_color=%23283033

accessibility
string

Availability during the event time:

  • busy — busy
  • absent — absent
  • quest — tentative
  • free — free

importance
string

Event importance:

  • high — high
  • normal — medium
  • low — low

private_event
string

Mark indicating that the event is private. Possible values:

  • Y — private
  • N — not private

recurrence_mode
string

Parameter for partial editing of a recurring event. Possible values:

  • this — changes apply only to the current event. Must specify current_date_from.
  • next — changes apply to the current and all following events. Must specify current_date_from.
  • all — changes apply to all events in the recurrence chain

current_date_from
date

Date of the current event for partial editing of a recurring event.

Required only for recurrence_mode with values this or next

rrule
object

Recurrence of the event in the form of an object according to the iCalendar standard (detailed description)

is_meeting
string

Indicator of a meeting with event participants. Possible values:

  • Y — meeting with participants
  • N — meeting without participants

For a meeting with participants, pass the list of participants in attendees

location
string

Location. You can pass an arbitrary string, for example Office, 3rd floor.

To book a meeting room, pass a string in the form calendar_<meeting room ID>, for example calendar_1. The method checks whether the meeting room is free at the specified time

doCheckOccupancy
string

Whether to check the occupancy of the meeting room from location. Possible values:

  • Y — check. If the meeting room is occupied, the method returns the CALENDAR_LOCATION_OCCUPANCY_CONFLICT error
  • N — do not check

Default is Y

remind
array

Array of objects describing reminders for the event (detailed description)

attendees
array

List of participant identifiers for the event.

If you pass is_meeting = Y and do not pass attendees, the attendee list will be cleared. If you do not pass is_meeting, the current attendee list will be retained

host
integer

Meeting organizer identifier.

The parameter is applied only together with is_meeting = Y. For an event that is not a meeting, it is ignored.

If you pass is_meeting = Y without host, the user on whose behalf the method is executed becomes the organizer. If you pass neither is_meeting nor host, the current organizer is kept.

The parameter does not grant permissions to the calendar, does not change the user on whose behalf the method is executed, and does not add the organizer to the attendee list automatically.

You can retrieve the current organizer identifier in the response of the calendar.event.getbyid and calendar.event.get methods in the MEETING_HOST field

meeting
object

Object with meeting parameters (detailed description)

crm_fields
array

Array of CRM object identifiers to link to the event. To link objects, list their identifiers with prefixes:

  • CO_ — company
  • C_ — contact
  • L_ — lead
  • D_ — deal

Timezone Handling Features

When working with event dates and times, you can use two approaches:

  1. Full date format with timezone.

    Use the ISO-8601 format with timezone specified in the from and to parameters:

    • 2025-03-20T15:00:00+02:00 — with offset
    • 2025-08-05T10:00:00+11:00 — with offset
    • 2025-08-04T23:00:00Z — with UTC specified

    The timezone_from and timezone_to parameters are ignored since the timezone is already specified in the date.

  2. Simple date format with separate timezone parameters.

    Use the simple format in the from and to parameters:

    • 2025-03-20 15:00:00
    • 2025-08-05 10:00:00
    • 2025-08-05T10:00:00

    Specify the timezone in the timezone_from and timezone_to parameters:

    • Europe/Riga
    • America/New_York
    • Asia/Tokyo

    If only timezone_from is specified, its value will be used for timezone_to.

Priority of timezone parameter processing:

  • Highest priority. If the from and to parameters are specified in full format with timezone, the timezone_from and timezone_to parameters are ignored.
  • Medium priority. If a simple date format is used and timezone_from and timezone_to parameters are specified, they are used.
  • Lowest priority. If the date format is simple and timezone parameters are not specified, the current user's timezone is used.

rrule Parameter

Name
type

Description

FREQ
string

Recurrence frequency

  • DAILY — daily
  • WEEKLY — weekly
  • MONTHLY — monthly
  • YEARLY — yearly

COUNT
integer

Number of recurrences

INTERVAL
integer

Interval between recurrences

BYDAY
array

Days of the week

  • SU — Sunday
  • MO — Monday
  • TU — Tuesday
  • WE — Wednesday
  • TH — Thursday
  • FR — Friday
  • SA — Saturday

UNTIL
date

End date of recurrences

remind Parameter

Name
type

Description

type
string

Time type of reminder

  • min — minutes
  • hour – hours
  • day — days

count
integer

Numerical value of the time interval

meeting Parameter

Name
type

Description

notify
boolean

Flag for notification of confirmation or refusal from participants

reinvite
boolean

Flag for requesting re-confirmation of participation when editing the event

allow_invite
boolean

Flag allowing participants to invite others to the event

hide_guests
boolean

Flag for hiding the list of participants

Code Examples

How to Use Examples in Documentation

curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"id":699,"type":"user","ownerId":2,"name":"Changed Event Name","description":"New description for event","from":"2024-06-17","to":"2024-06-17","skip_time":"Y","section":5,"color":"#9cbe1c","text_color":"#283033","accessibility":"free","importance":"normal","is_meeting":"Y","private_event":"Y","recurrence_mode":"next","current_date_from":"2024-12-04","remind":[{"type":"min","count":10}],"location":"London","attendees":[1,2,3],"host":2,"meeting":{"notify":true,"reinvite":false,"allow_invite":false,"hide_guests":false},"rrule":{"FREQ":"WEEKLY","BYDAY":["MO","WE"],"COUNT":10,"INTERVAL":1},"crm_fields":["C_5","L_11"]}' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.update
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"id":699,"type":"user","ownerId":2,"name":"Changed Event Name","description":"New description for event","from":"2024-06-17","to":"2024-06-17","skip_time":"Y","section":5,"color":"#9cbe1c","text_color":"#283033","accessibility":"free","importance":"normal","is_meeting":"Y","private_event":"Y","recurrence_mode":"next","current_date_from":"2024-12-04","remind":[{"type":"min","count":10}],"location":"London","attendees":[1,2,3],"host":2,"meeting":{"notify":true,"reinvite":false,"allow_invite":false,"hide_guests":false},"rrule":{"FREQ":"WEEKLY","BYDAY":["MO","WE"],"COUNT":10,"INTERVAL":1},"crm_fields":["C_5","L_11"],"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/calendar.event.update
        
// This snippet is an ES module: top-level await requires type="module" or a bundler.
        // $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
        import { Text } from '@bitrix24/b24jssdk'
        import type { B24Frame } from '@bitrix24/b24jssdk'
        
        declare const $b24: B24Frame
        
        // Shape of the payload returned in result (match the "response handling" section of the page)
        type CalendarEventUpdateResult =
          | number
          | {
              originalDate: string
              originalDavXmlId: string
              instanceTz: string
              recEventId: number
              id: number
            }
        
        try {
          const response = await $b24.actions.v2.call.make<CalendarEventUpdateResult>({
            method: 'calendar.event.update',
            params: {
              id: 699,
              type: 'user',
              ownerId: 2,
              name: 'Changed Event Name',
              description: 'New description for event',
              from: '2024-06-17',
              to: '2024-06-17',
              skip_time: 'Y',
              section: 5,
              color: '#9cbe1c',
              text_color: '#283033',
              accessibility: 'free',
              importance: 'normal',
              is_meeting: 'Y',
              private_event: 'Y',
              recurrence_mode: 'next',
              current_date_from: '2024-12-04',
              remind: [
                {
                  type: 'min',
                  count: 10,
                },
              ],
              location: 'London',
              attendees: [1, 2, 3],
              host: 2,
              meeting: {
                notify: true,
                reinvite: false,
                allow_invite: false,
                hide_guests: false,
              },
              rrule: {
                FREQ: 'WEEKLY',
                BYDAY: ['MO', 'WE'],
                COUNT: 10,
                INTERVAL: 1,
              },
              crm_fields: ['C_5', 'L_11'],
            },
            requestId: Text.getUuidRfc4122()
          })
        
          // The payload is available only on a successful response
          if (!response.isSuccess) {
            console.error(response.getErrorMessages().join('; '))
          } else {
            const result = response.getData()!.result
            console.info('Updated calendar event:', result)
          }
        } catch (error) {
          // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
          console.error(error)
        }
        
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
        <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
        <script>
          async function updateCalendarEvent() {
            try {
              // Initialize the SDK inside a Bitrix24 frame
              const $b24 = await B24Js.initializeB24Frame()
        
              const response = await $b24.actions.v2.call.make({
                method: 'calendar.event.update',
                params: {
                  id: 699,
                  type: 'user',
                  ownerId: 2,
                  name: 'Changed Event Name',
                  description: 'New description for event',
                  from: '2024-06-17',
                  to: '2024-06-17',
                  skip_time: 'Y',
                  section: 5,
                  color: '#9cbe1c',
                  text_color: '#283033',
                  accessibility: 'free',
                  importance: 'normal',
                  is_meeting: 'Y',
                  private_event: 'Y',
                  recurrence_mode: 'next',
                  current_date_from: '2024-12-04',
                  remind: [
                    {
                      type: 'min',
                      count: 10,
                    },
                  ],
                  location: 'London',
                  attendees: [1, 2, 3],
                  host: 2,
                  meeting: {
                    notify: true,
                    reinvite: false,
                    allow_invite: false,
                    hide_guests: false,
                  },
                  rrule: {
                    FREQ: 'WEEKLY',
                    BYDAY: ['MO', 'WE'],
                    COUNT: 10,
                    INTERVAL: 1,
                  },
                  crm_fields: ['C_5', 'L_11'],
                },
                requestId: B24Js.Text.getUuidRfc4122()
              })
        
              // The payload is available only on a successful response
              if (!response.isSuccess) {
                console.error(response.getErrorMessages().join('; '))
                return
              }
        
              const result = response.getData().result
              console.info('Updated calendar event:', result)
            } catch (error) {
              // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
              console.error(error)
            }
          }
        
          document.addEventListener('DOMContentLoaded', updateCalendarEvent)
        </script>
        
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
        
        try:
            bitrix_response = client.calendar.event.update(
                bitrix_id=699,
                type="user",
                owner_id=2,
                name="Changed Event Name",
                description="New description for event",
                from_date="2024-06-17",
                to="2024-06-17",
                skip_time="Y",
                section=5,
                color="#9cbe1c",
                text_color="#283033",
                accessibility="free",
                importance="normal",
                is_meeting="Y",
                private_event="Y",
                recurrence_mode="next",
                current_date_from="2024-12-04",
                remind=[
                    {
                        "type": "min",
                        "count": 10,
                    },
                ],
                location="London",
                attendees=[
                    1,
                    2,
                    3,
                ],
                host=2,
                meeting={
                    "notify": True,
                    "reinvite": False,
                    "allow_invite": False,
                    "hide_guests": False,
                },
                rrule={
                    "FREQ": "WEEKLY",
                    "BYDAY": [
                        "MO",
                        "WE",
                    ],
                    "COUNT": 10,
                    "INTERVAL": 1,
                },
                crm_fields=[
                    "C_5",
                    "L_11",
                ],
            ).response
            result = bitrix_response.result
            print(result)
        except BitrixAPIError as error:
            print(
                "Bitrix API error",
                f"error: {error.error}",
                f"error_description: {error.error_description}",
                sep="\n",
            )
        except BitrixSDKException as error:
            print(f"Bitrix SDK error: {error.message}")
        except Exception as error:
            print(f"Unexpected error: {error}")
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'calendar.event.update',
                    [
                        'id'              => 699,
                        'type'            => 'user',
                        'ownerId'         => 2,
                        'name'            => 'Changed Event Name',
                        'description'     => 'New description for event',
                        'from'            => '2024-06-17',
                        'to'              => '2024-06-17',
                        'skip_time'       => 'Y',
                        'section'         => 5,
                        'color'           => '#9cbe1c',
                        'text_color'      => '#283033',
                        'accessibility'   => 'free',
                        'importance'      => 'normal',
                        'is_meeting'      => 'Y',
                        'private_event'   => 'Y',
                        'recurrence_mode' => 'next',
                        'current_date_from' => '2024-12-04',
                        'remind'          => [
                            [
                                'type'  => 'min',
                                'count' => 10
                            ]
                        ],
                        'location'        => 'London',
                        'attendees'       => [1, 2, 3],
                        'host'            => 2,
                        'meeting'         => [
                            'notify'      => true,
                            'reinvite'    => false,
                            'allow_invite' => false,
                            'hide_guests' => false,
                        ],
                        'rrule'           => [
                            'FREQ'     => 'WEEKLY',
                            'BYDAY'    => ['MO', 'WE'],
                            'COUNT'    => 10,
                            'INTERVAL' => 1,
                        ],
                        'crm_fields'      => ['C_5', 'L_11']
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo 'Success: ' . print_r($result, true);
            // Your data processing logic
            processData($result);
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error updating calendar event: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'calendar.event.update',
            {
                id: 699,
                type: 'user',
                ownerId: 2,
                name: 'Changed Event Name',
                description: 'New description for event',
                from: '2024-06-17',
                to: '2024-06-17',
                skip_time: 'Y',
                section: 5,
                color: '#9cbe1c',
                text_color: '#283033',
                accessibility: 'free',
                importance: 'normal',
                is_meeting: 'Y',
                private_event: 'Y',
                recurrence_mode: 'next',
                current_date_from: '2024-12-04',
                remind: [
                    {
                        type: 'min',
                        count: 10
                    }
                ],
                location: 'London',
                attendees: [1, 2, 3],
                host: 2,
                meeting: {
                    notify: true,
                    reinvite: false,
                    allow_invite: false,
                    hide_guests: false,
                },
                rrule: {
                    FREQ: 'WEEKLY',
                    BYDAY: ['MO', 'WE'],
                    COUNT: 10,
                    INTERVAL: 1,
                },
                crm_fields: ['C_5', 'L_11']
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'calendar.event.update',
            [
                'id' => 699,
                'type' => 'user',
                'ownerId' => 2,
                'name' => 'Changed Event Name',
                'description' => 'New description for event',
                'from' => '2024-06-17',
                'to' => '2024-06-17',
                'skip_time' => 'Y',
                'section' => 5,
                'color' => '#9cbe1c',
                'text_color' => '#283033',
                'accessibility' => 'free',
                'importance' => 'normal',
                'is_meeting' => 'Y',
                'private_event' => 'Y',
                'recurrence_mode' => 'next',
                'current_date_from' => '2024-12-04',
                'remind' => [
                    [
                        'type' => 'min',
                        'count' => 10
                    ]
                ],
                'location' => 'London',
                'attendees' => [1, 2, 3],
                'host' => 2,
                'meeting' => [
                    'notify' => true,
                    'reinvite' => false,
                    'allow_invite' => false,
                    'hide_guests' => false,
                ],
                'rrule' => [
                    'FREQ' => 'WEEKLY',
                    'BYDAY' => ['MO', 'WE'],
                    'COUNT' => 10,
                    'INTERVAL' => 1,
                ],
                'crm_fields' => ['C_5', 'L_11']
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        
// client and ctx are already created — see the Go SDK section
        res, err := client.Core().Call(ctx, "calendar.event.update", b24.Params{
        	"id":                699,
        	"type":              "user",
        	"ownerId":           2,
        	"name":              "Changed Event Name",
        	"description":       "New description for event",
        	"from":              "2024-06-17",
        	"to":                "2024-06-17",
        	"skip_time":         "Y",
        	"section":           5,
        	"color":             "#9cbe1c",
        	"text_color":        "#283033",
        	"accessibility":     "free",
        	"importance":        "normal",
        	"is_meeting":        "Y",
        	"private_event":     "Y",
        	"recurrence_mode":   "next",
        	"current_date_from": "2024-12-04",
        	"remind": []b24.Params{
        		{
        			"type":  "min",
        			"count": 10,
        		},
        	},
        	"location":  "London",
        	"attendees": []int{1, 2, 3},
        	"host":      2,
        	"meeting": b24.Params{
        		"notify":       true,
        		"reinvite":     false,
        		"allow_invite": false,
        		"hide_guests":  false,
        	},
        	"rrule": b24.Params{
        		"FREQ":     "WEEKLY",
        		"BYDAY":    []string{"MO", "WE"},
        		"COUNT":    10,
        		"INTERVAL": 1,
        	},
        	"crm_fields": []string{"C_5", "L_11"},
        })
        if err != nil {
        	return fmt.Errorf("calendar.event.update: %w", err)
        }
        
        var value b24.ID
        if err := json.Unmarshal(res.Result, &value); err != nil {
        	return fmt.Errorf("parse response: %w", err)
        }
        fmt.Println("result:", value)
        

Response Handling

HTTP status: 200

{
            "result": 1246,
            "time": {
                "start": 1733318565.183275,
                "finish": 1733318565.695058,
                "duration": 0.5117831230163574,
                "processing": 0.29406094551086426,
                "date_start": "2024-12-04T13:22:45+00:00",
                "date_finish": "2024-12-04T13:22:45+00:00"
            }
        }
        
{
            "result": {
                "originalDate": "12/24/2024 05:59:00 pm",
                "originalDavXmlId": "20241205T124346Z-e3ccab8aebc16d0c5cccecb63fef2bc3@b24evo.lan",
                "instanceTz": "Europe/Riga",
                "recEventId": 1261,
                "id": 1260
            },
            "time": {
                "start": 1733402626.139122,
                "finish": 1733402626.740063,
                "duration": 0.6009409427642822,
                "processing": 0.3765721321105957,
                "date_start": "2024-12-05T12:43:46+00:00",
                "date_finish": "2024-12-05T12:43:46+00:00"
            }
        }
        

Returned Data

Name
type

Description

result
integer

Identifier of the updated event

time
time

Information about the request execution time

Name
type

Description

result
object

Data of the new series of the recurring event (detailed description)

time
time

Information about the request execution time

result Object

Name
type

Description

originalDate
datetime

Start date of the new series of the recurring event

originalDavXmlId
string

Event identifier for synchronization

instanceTz
string

Event timezone

recEventId
integer

Identifier of the new series of the recurring event

id
integer

Identifier of the previous series of the recurring event

Error Handling

HTTP status: 400

{
            "error": "",
            "error_description": "The mandatory parameter \"ownerId\" is not specified for the method \"calendar.event.update\""
        }
        

Meeting room occupancy errors are returned with HTTP status 200:

{
            "error": "CALENDAR_LOCATION_OCCUPANCY_CONFLICT",
            "error_description": "The meeting room is occupied at the specified time",
            "additional": {
                "occupancy": {
                    "dates": [],
                    "truncated": false
                }
            }
        }
        

Name
type

Description

error
string

String error code. It consists of digits, Latin letters, and underscores. It may arrive empty — in that case only error_description shows the reason

error_description
string

Error message for the developer. Do not show it to the end user without processing

Possible Error Codes

Status

Code

Description

Value

400

Empty value

The mandatory parameter "id" is not specified for the method "calendar.event.update"

The required parameter id is not provided

400

Empty value

The mandatory parameter "ownerId" is not specified for the method "calendar.event.update"

The required parameter ownerId is not provided

400

Empty value

The mandatory parameter "type" is not specified for the method "calendar.event.update"

The required parameter type is not provided

400

Empty value

Invalid parameter value for "name"

Incorrect data format in the name field

400

Empty value

Invalid parameter value for "description"

Incorrect data format in the description field

400

Empty value

Access denied

Updating events in the specified calendar is prohibited

400

Empty value

You have specified an invalid calendar section ID or the current user does not have access to it

An identifier of an inaccessible or non-existent calendar is provided

400

Empty value

Invalid edit type for recurring event

An incorrect value for the recurrence_mode field is provided

400

Empty value

Event to CRM association list must be an array

Incorrect data format in the crm_fields field

400

Empty value

Error while editing event

Another error

400

Empty value

Invalid parameter value for "doCheckOccupancy"

A value other than Y or N is passed in doCheckOccupancy

200

CALENDAR_LOCATION_OCCUPANCY_CONFLICT

The meeting room is occupied at the specified time

The meeting room from location is occupied at the specified time or does not exist. The response contains the additional.occupancy object with the fields dates — an array of occupancy dates in the YYYY-MM-DDThh:mm:ssZ format, and truncated — a flag indicating that the list of dates is incomplete. Dates are returned only if the user has access to view them; otherwise, the array is empty

200

CALENDAR_LOCATION_OCCUPANCY_INVALID_INTERVAL

ROOM OCCUPANCY INTERVAL IS INVALID

The availability of the meeting room from location cannot be checked against the event dates. The error occurs if an event with a meeting room starts on or before January 1, 1970, including when other fields of such an event are updated. To save the changes without the check, pass doCheckOccupancy with the value N

200

CALENDAR_LOCATION_OCCUPANCY_LOCKED

The meeting room is currently selected for another event. Try again later or select another one

Another event is booking the meeting room at this moment. Repeat the request later

Statuses and System Error Codes

HTTP Status: 4xx, 5xx

The errors described below are returned by the REST API itself, not by the logic of a specific method. They can arrive in response to any method.

Status

Code
Error Message

Description

500

INTERNAL_SERVER_ERROR
Internal server error

An internal server error has occurred. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

The server returned an unexpected response. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support

503

QUERY_LIMIT_EXCEEDED
Too many requests

The request intensity limit has been exceeded

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

The method is blocked because the request resource intensity limit has been exceeded. The block is lifted automatically once the accumulated execution time of the method no longer exceeds the limit

401

NO_AUTH_FOUND
Wrong authorization data

The request contains no authorization data: neither an access token nor a webhook code was passed

401

INVALID_REQUEST
Https required

Methods are called over the HTTPS protocol only

401

OVERLOAD_LIMIT
REST API is blocked due to overload

The REST API is blocked due to overload. This is a manual individual block. To have it lifted, contact Bitrix24 technical support

401

ACCESS_DENIED
REST is available only on commercial plans

REST API access is not active for this account. In Bitrix24 Cloud, check the current plan or trial status: Vibe+ plans include REST API access, while Essentials plans do not. A webhook receives a different error message — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

No active webhook with the specified user identifier and secret code was found

404

ERROR_METHOD_NOT_FOUND
Method not found!

No method with this name was found. The name is misspelled, the method does not exist in the REST API, or it is unavailable without the required scope

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

The request requires broader permissions than the token has: for a webhook these are the permissions granted to it, for an application it is the scope. For an application, the error message ends with provided by the access token

401

expired_token
The access token provided has expired

The access token has expired

401

user_access_error
The user does not have access to the application

The application is installed, but the Bitrix24 administrator has granted access to it only to specific users

403

PORTAL_DELETED
Portal was deleted

The public part of the site is closed. To open it on an on-premise installation, disable the "Temporary closure of the public part of the site" option. Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site

Continue Learning