Get a List of Upcoming Events calendar.event.get.nearest
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:
calendarWho can execute the method: any user
The method calendar.event.get.nearest retrieves a list of upcoming events.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
type |
Calendar type:
|
|
ownerId |
Identifier of the calendar owner. Pass |
|
days |
Number of days to retrieve, starting from the current date. Default is |
|
forCurrentUser |
Output the list of events for the current user. Default is |
|
maxEventsCount |
Maximum number of events to display. No limit by default |
|
detailUrl |
Calendar link template, for example If the parameter is passed, each event in the response has a |
Note
To select a calendar type, pass type and ownerId together. The ownerId value does not affect the list of returned events. For the company calendar, pass type: company_calendar and ownerId: 0.
If forCurrentUser: true is passed, or type and ownerId are not specified, the method forcibly switches to the current user's calendar: type: user and forCurrentUser: true.
Code Examples
How to Use Examples in Documentation
-
Get events for the current user for the next 10 days.
cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPBX24.jsPHP CRestGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"user","ownerId":2,"days":10,"forCurrentUser":true,"maxEventsCount":100,"detailUrl":"/company/personal/user/#user_id#/calendar/"}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.get.nearestcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"user","ownerId":2,"days":10,"forCurrentUser":true,"maxEventsCount":100,"detailUrl":"/company/personal/user/#user_id#/calendar/","auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/calendar.event.get.nearest// 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 CalendarEventItem = { ID: string NAME: string DATE_FROM: string DATE_TO: string TIMESTAMP_X_ISO?: string DELETED: string } try { const response = await $b24.actions.v2.call.make<CalendarEventItem[]>({ method: 'calendar.event.get.nearest', params: { type: 'user', ownerId: 2, days: 10, forCurrentUser: true, maxEventsCount: 100, detailUrl: '/company/personal/user/#user_id#/calendar/', }, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const events = response.getData()!.result events.forEach((event) => console.info('Event:', event.ID, event.NAME, event.DATE_FROM, event.DATE_TO)) } } 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 getNearestCalendarEvents() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'calendar.event.get.nearest', params: { type: 'user', ownerId: 2, days: 10, forCurrentUser: true, maxEventsCount: 100, detailUrl: '/company/personal/user/#user_id#/calendar/', }, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const events = response.getData().result events.forEach((event) => console.info('Event:', event.ID, event.NAME, event.DATE_FROM, event.DATE_TO)) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getNearestCalendarEvents) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.calendar.event.get.nearest( type="user", owner_id=2, days=10, for_current_user=True, max_events_count=100, detail_url="/company/personal/user/#user_id#/calendar/", ).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.get.nearest', [ 'type' => 'user', 'ownerId' => 2, 'days' => 10, 'forCurrentUser' => true, 'maxEventsCount' => 100, 'detailUrl' => '/company/personal/user/#user_id#/calendar/', ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); // Your required data processing logic processData($result); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error getting calendar events: ' . $e->getMessage(); }BX24.callMethod( 'calendar.event.get.nearest', { type: 'user', ownerId: 2, days: 10, forCurrentUser: true, maxEventsCount: 100, detailUrl: '/company/personal/user/#user_id#/calendar/' } );require_once('crest.php'); $result = CRest::call( 'calendar.event.get.nearest', [ 'type' => 'user', 'ownerId' => 2, 'days' => 10, 'forCurrentUser' => true, 'maxEventsCount' => 100, 'detailUrl' => '/company/personal/user/#user_id#/calendar/' ] ); 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.get.nearest", b24.Params{ "type": "user", "ownerId": 2, "days": 10, "forCurrentUser": true, "maxEventsCount": 100, "detailUrl": "/company/personal/user/#user_id#/calendar/", }) if err != nil { return fmt.Errorf("calendar.event.get.nearest: %w", err) } // The response arrives as json.RawMessage — unmarshal it // into a struct matching the response shape shown below on this page. fmt.Printf("%s\n", res.Result) -
Get events from the Company Calendar.
cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPBX24.jsPHP CRestGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"company_calendar","ownerId":0,"forCurrentUser":false}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.get.nearestcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"company_calendar","ownerId":0,"forCurrentUser":false,"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/calendar.event.get.nearest// 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 CalendarEventItem = { ID: string NAME: string DATE_FROM: string DATE_TO: string TIMESTAMP_X_ISO?: string DELETED: string } try { const response = await $b24.actions.v2.call.make<CalendarEventItem[]>({ method: 'calendar.event.get.nearest', params: { type: 'company_calendar', ownerId: 0, forCurrentUser: false, }, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const events = response.getData()!.result events.forEach((event) => console.info('Event:', event.ID, event.NAME, event.DATE_FROM, event.DATE_TO)) } } 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 getNearestCalendarEvents() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'calendar.event.get.nearest', params: { type: 'company_calendar', ownerId: 0, forCurrentUser: false, }, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const events = response.getData().result events.forEach((event) => console.info('Event:', event.ID, event.NAME, event.DATE_FROM, event.DATE_TO)) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getNearestCalendarEvents) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.calendar.event.get.nearest( type="company_calendar", owner_id=0, for_current_user=False, ).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.get.nearest', [ 'type' => 'company_calendar', 'ownerId' => 0, 'forCurrentUser' => false, ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); // Your required data processing logic processData($result); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error getting calendar events: ' . $e->getMessage(); }BX24.callMethod( 'calendar.event.get.nearest', { type: 'company_calendar', ownerId: 0, forCurrentUser: false } );require_once('crest.php'); $result = CRest::call( 'calendar.event.get.nearest', [ 'type' => 'company_calendar', 'ownerId' => 0, 'forCurrentUser' => false ] ); 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.get.nearest", b24.Params{ "type": "company_calendar", "ownerId": 0, "forCurrentUser": false, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("calendar.event.get.nearest: %w", err) } // The response arrives as json.RawMessage — unmarshal it // into a struct matching the response shape shown below on this page. fmt.Printf("%s\n", res.Result)
Response Handling
HTTP status: 200
{
"result": [
{
"ID": "8373",
"PARENT_ID": "8373",
"ACTIVE": "Y",
"DELETED": "N",
"CAL_TYPE": "user",
"OWNER_ID": "1269",
"NAME": "Sales team meeting",
"DATE_FROM": "11/20/2026 10:00:00 am",
"DATE_TO": "11/20/2026 11:00:00 am",
"ORIGINAL_DATE_FROM": null,
"DATE_FROM_TS_UTC": "1795147200",
"DATE_TO_TS_UTC": "1795150800",
"DT_SKIP_TIME": "N",
"DT_LENGTH": 3600,
"EVENT_TYPE": null,
"CREATED_BY": "1269",
"DATE_CREATE": "10/27/2026 07:14:36 pm",
"TIMESTAMP_X": "10/27/2026 07:14:36 pm",
"DESCRIPTION": "Discussing the plan for the week",
"DT_FROM": null,
"DT_TO": null,
"PRIVATE_EVENT": "",
"ACCESSIBILITY": "busy",
"IMPORTANCE": "normal",
"IS_MEETING": true,
"MEETING_STATUS": "H",
"MEETING_HOST": "1269",
"MEETING": {
"HOST_NAME": "Klaus Weber",
"NOTIFY": true,
"REINVITE": false,
"ALLOW_INVITE": false,
"HIDE_GUESTS": false,
"MEETING_CREATOR": 1269,
"LANGUAGE_ID": "de",
"MAIL_FROM": ""
},
"LOCATION": "Meeting room 1",
"REMIND": [
{
"type": "min",
"count": 15
}
],
"COLOR": "#9cbe1c",
"TEXT_COLOR": "",
"RRULE": "",
"EXDATE": "",
"DAV_XML_ID": "20261120T070000Z-1de13363db84ad6757cacd3954782b9f@your-domain.bitrix24.com",
"G_EVENT_ID": "",
"DAV_EXCH_LABEL": "",
"CAL_DAV_LABEL": "",
"VERSION": "1",
"ATTENDEES_CODES": [
"U1269",
"U1271"
],
"RECURRENCE_ID": null,
"RELATIONS": "",
"SECTION_ID": "157",
"SYNC_STATUS": null,
"UF_CRM_CAL_EVENT": null,
"UF_WEBDAV_CAL_EVENT": null,
"SECTION_DAV_XML_ID": null,
"DATE_FROM_FORMATTED": "Fri Nov 20 2026 10:00:00",
"DATE_TO_FORMATTED": "Fri Nov 20 2026 11:00:00",
"IS_DAYLIGHT_SAVING_TZ": "N",
"SECT_ID": "157",
"OPTIONS": null,
"ATTENDEE_LIST": [
{
"id": 1269,
"entryId": "8373",
"status": "H"
},
{
"id": 1271,
"entryId": "8375",
"status": "Q"
}
],
"COLLAB_ID": null,
"attendeesEntityList": [
{
"entityId": "user",
"id": 1269
},
{
"entityId": "user",
"id": 1271
}
],
"~DESCRIPTION": "Discussing the plan for the week",
"~USER_OFFSET_FROM": 0,
"~USER_OFFSET_TO": 0,
"DT_FROM_TS": 1795158000,
"DT_TO_TS": 1795161600,
"~URL": "https://your-domain.bitrix24.com/company/personal/user/1269/calendar/?EVENT_ID=8373&EVENT_DATE=11%2F20%2F2026",
"~WEEK_DAY": "Fri",
"~FROM_TO_HTML": "11/20/2026, 10:00 am - 11:00 am",
"~detailUrl": "/company/personal/user/1269/calendar/?EVENT_ID=8373&EVENT_DATE=11%2F20%2F2026%2010%3A00%3A00%20am",
"TIMESTAMP_X_ISO": "2026-10-27T19:14:36+03:00",
"DATE_CREATE_ISO": "2026-10-27T19:14:36+03:00"
}
],
"time": {
"start": 1793117687,
"finish": 1793117687.886115,
"duration": 0.8861150741577148,
"processing": 0,
"date_start": "2026-10-27T19:14:47+03:00",
"date_finish": "2026-10-27T19:14:47+03:00",
"operating_reset_at": 1793118240,
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
Array of upcoming calendar events (detailed description). If there are no events in the selected period, the array is empty |
|
time |
Information about the request execution time |
Event Object
|
Name |
Description |
|
ID |
Event identifier |
|
PARENT_ID |
Identifier of the parent event |
|
ACTIVE |
Flag indicating whether the event is active. Possible values:
The calendar.event.getbyid method does not return this field |
|
DELETED |
Flag indicating whether the event is deleted. Possible values:
The |
|
CAL_TYPE |
Type of calendar in which the event is located |
|
OWNER_ID |
Identifier of the calendar owner:
|
|
NAME |
Event name |
|
DATE_FROM |
Start date of the event |
|
DATE_TO |
End date of the event |
|
ORIGINAL_DATE_FROM |
Start date of the original event for recurring events |
|
TZ_FROM |
Timezone of the event start date. The calendar.event.get.nearest method does not return this field |
|
TZ_TO |
Timezone of the event end date. The calendar.event.get.nearest method does not return this field |
|
TZ_OFFSET_FROM |
Time offset of the event start time relative to UTC in seconds. The calendar.event.get.nearest method does not return this field |
|
TZ_OFFSET_TO |
Time offset of the event end time relative to UTC in seconds. The calendar.event.get.nearest method does not return this field |
|
DATE_FROM_TS_UTC |
Start date and time of the event in timestamp format. Despite the field name, the value is shifted by the server time zone offset, so it cannot be read as UTC time. The exact start time is defined by the |
|
DATE_TO_TS_UTC |
End date and time of the event in timestamp format. Despite the field name, the value is shifted by the server time zone offset, so it cannot be read as UTC time. The exact end time is defined by the |
|
DT_SKIP_TIME |
Flag indicating that the event lasts all day. Possible values:
|
|
DT_LENGTH |
Duration of the event in seconds |
|
EVENT_TYPE |
Type of event |
|
CREATED_BY |
Identifier of the user who created the event |
|
DATE_CREATE |
Date the event was created |
|
TIMESTAMP_X |
Date the event was modified |
|
DATE_CREATE_ISO |
Date the event was created, in ISO 8601 format with the account time zone offset, for example The field is not returned if the creation date is empty |
|
TIMESTAMP_X_ISO |
Date the event was modified, in ISO 8601 format with the account time zone offset. Pass this value to the |
|
DESCRIPTION |
Description of the event |
|
DT_FROM |
Service field. Returned with the The calendar.event.getbyid method does not return this field |
|
DT_TO |
Service field. Returned with the The calendar.event.getbyid method does not return this field |
|
PRIVATE_EVENT |
Mark indicating that the event is private. Possible values:
|
|
ACCESSIBILITY |
Availability of participants during the event. Possible values:
|
|
IMPORTANCE |
Importance of the event. Possible values:
|
|
IS_MEETING |
Indicator of a meeting with event participants. Possible values:
|
|
MEETING_STATUS |
Status of participation in the event. Possible values:
|
|
MEETING_HOST |
Identifier of the user hosting the event |
|
MEETING |
Meeting settings (detailed description) |
|
LOCATION |
Identifier or name of the event location |
|
REMIND |
Array of objects describing event reminders (detailed description) |
|
COLOR |
Background color of the event |
|
TEXT_COLOR |
Text color of the event. If no color is set, an empty string The calendar.event.getbyid method does not return this field |
|
RRULE |
Recurrence of the event in the form of an object in terms of the iCalendar standard (detailed description). For a non-recurring event, an empty string |
|
EXDATE |
List of exception dates from the recurrence rule |
|
DAV_XML_ID |
Synchronization identifier |
|
G_EVENT_ID |
Synchronization identifier |
|
DAV_EXCH_LABEL |
Exchange synchronization identifier |
|
CAL_DAV_LABEL |
Synchronization identifier |
|
VERSION |
Version of event changes |
|
ATTENDEES_CODES |
Identifiers of event participants |
|
RECURRENCE_ID |
Identifier of the original event when editing only the current one |
|
RELATIONS |
Object for recurring events with information about relationships to the original event (detailed description). For a non-recurring event, an empty string |
|
SECTION_ID |
Identifier of the calendar in which the event is located |
|
SYNC_STATUS |
Synchronization status of the event |
|
UF_CRM_CAL_EVENT |
Array of identifiers of CRM objects linked to the event, for example |
|
UF_WEBDAV_CAL_EVENT |
Array of identifiers of files linked to the event |
|
SECTION_DAV_XML_ID |
Synchronization identifier of the event calendar |
|
DATE_FROM_FORMATTED |
Formatted start date of the event |
|
DATE_TO_FORMATTED |
Formatted end date of the event |
|
IS_DAYLIGHT_SAVING_TZ |
Flag indicating daylight saving time in the
|
|
SECT_ID |
Identifier of the calendar in which the event is located |
|
OPTIONS |
Additional parameters of an event with a category, for example the category identifier |
|
ATTENDEE_LIST |
Array of objects describing event participants and their participation statuses (detailed description) |
|
COLLAB_ID |
Identifier of the collaboration in which the event was created |
|
~RRULE_DESCRIPTION |
Text description of the event recurrence rule |
|
attendeesEntityList |
Array of objects describing users — event participants (detailed description) |
|
~DESCRIPTION |
Description of the event |
|
~USER_OFFSET_FROM |
Time offset of the event start time relative to the current user's timezone |
|
~USER_OFFSET_TO |
Time offset of the event end time relative to the current user's timezone |
|
DT_FROM_TS |
Start date and time of the event in timestamp format, adjusted to the current user's time zone. Only the calendar.event.get.nearest method returns this field |
|
DT_TO_TS |
End date and time of the event in timestamp format, adjusted to the current user's time zone. Only the calendar.event.get.nearest method returns this field |
|
~URL |
Link to the event in the calendar. Only the calendar.event.get.nearest method returns this field |
|
~WEEK_DAY |
Abbreviated name of the day of the week on which the event starts. Only the calendar.event.get.nearest method returns this field |
|
~detailUrl |
Link to the event built from the template in the Only the calendar.event.get.nearest method returns this field, if the |
|
~FROM_TO_HTML |
Date and time of the event as a display string, for example Only the calendar.event.get.nearest method returns this field |
MEETING Object
|
Name |
Description |
|
HOST_NAME |
Name of the user hosting the event |
|
NOTIFY |
Flag for notifying about confirmation or decline of participants |
|
REINVITE |
Flag for requesting re-confirmation of participation when editing the event |
|
ALLOW_INVITE |
Flag allowing participants to invite others to the event |
|
HIDE_GUESTS |
Flag for hiding the list of participants |
|
MEETING_CREATOR |
Identifier of the event creator |
|
LANGUAGE_ID |
Language identifier for event notifications |
|
MAIL_FROM |
Sender's address for notifications |
REMIND Object
|
Name |
Description |
|
type |
Time type of the reminder
|
|
count |
Numerical value of the time interval |
RRULE Object
|
Name |
Description |
|
FREQ |
Frequency of recurrence
|
|
BYDAY |
Days of the week
|
|
INTERVAL |
Interval between recurrences |
|
UNTIL |
End date of recurrences |
|
~UNTIL |
End date of recurrences. Technical field |
|
UNTIL_TS |
End date of recurrences in timestamp format |
RELATIONS Object
|
Name |
Description |
|
ORIGINAL_RECURSION_ID |
Identifier of the original event for recurring events created when editing |
|
COMMENT_XML_ID |
Identifier of the original event for single events created when editing from recurring ones |
ATTENDEE_LIST Objects
|
Name |
Description |
|
id |
Identifier of the user |
|
entryId |
Identifier of the event |
|
status |
Status of the event participant. Possible values:
|
attendeesEntityList Object
|
Name |
Description |
|
entityId |
Event participant object type |
|
id |
Identifier of the event participant |
Error Handling
HTTP status: 400
{
"error": "",
"error_description": "Access denied"
}
|
Name |
Description |
|
error |
String error code. It consists of digits, Latin letters, and underscores. It may arrive empty — in that case only |
|
error_description |
Error message for the developer. Do not show it to the end user without processing |
Possible Error Codes
|
Status |
Code |
Description |
Value |
|
|
Empty value |
Access denied |
Access to the calendar type is restricted or the user has not activated the calendar functionality |
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 |
Description |
|
|
|
An internal server error has occurred. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support |
|
|
|
The server returned an unexpected response. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
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 |
|
|
|
The request contains no authorization data: neither an access token nor a webhook code was passed |
|
|
|
Methods are called over the HTTPS protocol only |
|
|
|
The REST API is blocked due to overload. This is a manual individual block. To have it lifted, contact Bitrix24 technical support |
|
|
|
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 — |
|
|
|
No active webhook with the specified user identifier and secret code was 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 |
|
|
|
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 |
|
|
|
The access token has expired |
|
|
|
The application is installed, but the Bitrix24 administrator has granted access to it only to specific users |
|
|
|
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 |