Get a List of Calendar Events calendar.event.get
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 retrieves a list of calendar events.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
type* |
Calendar type:
|
|
ownerId* |
Identifier of the calendar owner. For the company calendar, the |
|
from |
Start date for the selection. Default value is one month before the current date |
|
to |
End date for the selection. Default value is three months after the current date |
|
section |
Array of calendar identifiers |
|
modified_since |
The moment from which modified events are needed. Format: ISO 8601 with a mandatory time zone, The method returns events whose modification date is greater than or equal to the passed value, including deleted events. For details, see Retrieving Changes. An empty string is treated as if the parameter was not passed |
Retrieving Changes
The modified_since parameter lets you sync a calendar with an external system without reloading all events.
-
On the first sync, retrieve events without
modified_sinceand store the largestTIMESTAMP_X_ISOvalue from the response. -
On the next sync, pass this value to
modified_since. TheTIMESTAMP_X_ISOvalue can be passed as is.
How change retrieval works:
-
the boundary is inclusive, with one-second precision. Events modified within the same second are returned again, so process them by
IDto avoid duplicates -
the
fromandtodate range still applies together withmodified_since. If an event is outside the selection period, its change is not returned -
deleted events are returned with
DELETED=Y, and theirTIMESTAMP_X_ISOholds the moment of deletion. Withoutmodified_since, the method does not return deleted events -
a recurring event is returned as a separate record for each occurrence within the selection period, all with the same
ID. This also applies to deleted recurring events -
an attendee's response to an invitation does not change the event modification date, so it is not included in the changes
Code Examples
How to Use Examples in Documentation
-
Get user events with
id=1for the period from2024-06-20to2024-08-20cURL (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":1,"from":"2024-06-20","to":"2024-08-20","section":[21,44]}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.getcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"user","ownerId":1,"from":"2024-06-20","to":"2024-08-20","section":[21,44],"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/calendar.event.get// 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', params: { type: 'user', ownerId: 1, from: '2024-06-20', to: '2024-08-20', section: [21, 44], }, 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 getCalendarEvents() { 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', params: { type: 'user', ownerId: 1, from: '2024-06-20', to: '2024-08-20', section: [21, 44], }, 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', getCalendarEvents) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.calendar.event.get( type="user", owner_id=1, from_date="2024-06-20", to="2024-08-20", section=[ 21, 44, ], ).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', [ 'type' => 'user', 'ownerId' => 1, 'from' => '2024-06-20', 'to' => '2024-08-20', 'section' => [21, 44], ] ); $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', { type: 'user', ownerId: 1, from: '2024-06-20', to: '2024-08-20', section: [21, 44] } );require_once('crest.php'); $result = CRest::call( 'calendar.event.get', [ 'type' => 'user', 'ownerId' => 1, 'from' => '2024-06-20', 'to' => '2024-08-20', 'section' => [21, 44] ] ); 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", b24.Params{ "type": "user", "ownerId": 1, "from": "2024-06-20", "to": "2024-08-20", "section": []int{21, 44}, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("calendar.event.get: %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}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.getcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"company_calendar","ownerId":0,"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/calendar.event.get// 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', params: { type: 'company_calendar', ownerId: 0, }, 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 getCalendarEvents() { 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', params: { type: 'company_calendar', ownerId: 0, }, 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', getCalendarEvents) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.calendar.event.get( type="company_calendar", owner_id=0, ).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', [ 'type' => 'company_calendar', 'ownerId' => 0, ] ); $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', { type: 'company_calendar', ownerId: 0 } );require_once('crest.php'); $result = CRest::call( 'calendar.event.get', [ 'type' => 'company_calendar', 'ownerId' => 0 ] ); 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", b24.Params{ "type": "company_calendar", "ownerId": 0, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("calendar.event.get: %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 of the user with
id=1modified since2026-10-13T09:00:00+03:00, including deleted onescURL (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":1,"modified_since":"2026-10-13T09:00:00+03:00"}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.event.getcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"type":"user","ownerId":1,"modified_since":"2026-10-13T09:00:00+03:00","auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/calendar.event.get// 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', params: { type: 'user', ownerId: 1, modified_since: '2026-10-13T09:00:00+03:00', }, 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 getCalendarEvents() { 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', params: { type: 'user', ownerId: 1, modified_since: '2026-10-13T09:00:00+03:00', }, 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', getCalendarEvents) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: # The b24pysdk wrapper has no argument for modified_since, so call the method by name bitrix_response = bitrix_token.call_method( "calendar.event.get", { "type": "user", "ownerId": 1, "modified_since": "2026-10-13T09:00:00+03:00", }, ) 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', [ 'type' => 'user', 'ownerId' => 1, 'modified_since' => '2026-10-13T09:00:00+03:00', ] ); $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', { type: 'user', ownerId: 1, modified_since: '2026-10-13T09:00:00+03:00' } );require_once('crest.php'); $result = CRest::call( 'calendar.event.get', [ 'type' => 'user', 'ownerId' => 1, 'modified_since' => '2026-10-13T09:00:00+03:00' ] ); 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", b24.Params{ "type": "user", "ownerId": 1, "modified_since": "2026-10-13T09:00:00+03:00", }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("calendar.event.get: %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": "1265",
"PARENT_ID": "1265",
"ACTIVE": "Y",
"DELETED": "N",
"CAL_TYPE": "user",
"OWNER_ID": "1",
"NAME": "Event Name",
"DATE_FROM": "12/11/2024 05:59:00 pm",
"DATE_TO": "12/11/2024 06:59:00 pm",
"ORIGINAL_DATE_FROM": null,
"TZ_FROM": "Europe/Berlin",
"TZ_TO": "Europe/Berlin",
"TZ_OFFSET_FROM": "7200",
"TZ_OFFSET_TO": "7200",
"DATE_FROM_TS_UTC": "1733932740",
"DATE_TO_TS_UTC": "1733936340",
"DT_SKIP_TIME": "N",
"DT_LENGTH": 3600,
"EVENT_TYPE": null,
"CREATED_BY": "1",
"DATE_CREATE": "12/05/2024 01:48:41 pm",
"TIMESTAMP_X": "12/05/2024 01:48:41 pm",
"DATE_CREATE_ISO": "2024-12-05T13:48:41+02:00",
"TIMESTAMP_X_ISO": "2024-12-05T13:48:41+02:00",
"DESCRIPTION": "Description for event",
"DT_FROM": null,
"DT_TO": null,
"PRIVATE_EVENT": "",
"ACCESSIBILITY": "free",
"IMPORTANCE": "normal",
"IS_MEETING": true,
"MEETING_STATUS": "H",
"MEETING_HOST": "1",
"MEETING": {
"HOST_NAME": "User Name",
"NOTIFY": false,
"REINVITE": false,
"ALLOW_INVITE": false,
"HIDE_GUESTS": false,
"MEETING_CREATOR": 1,
"LANGUAGE_ID": "de",
"MAIL_FROM": ""
},
"LOCATION": "test location",
"REMIND": [
{
"type": "min",
"count": 50
}
],
"COLOR": "#9dcf00",
"TEXT_COLOR": "",
"RRULE": {
"FREQ": "WEEKLY",
"BYDAY": {
"MO": "MO",
"WE": "WE"
},
"INTERVAL": 1,
"UNTIL": "12/24/2024",
"~UNTIL": "12/24/2024",
"UNTIL_TS": 1734998400
},
"EXDATE": "11/28/2024;12/05/2024;12/12/2024;12/19/2024;12/26/2024",
"DAV_XML_ID": "20241211T155900Z-534185204b362e9be7e261e92ccd9078@b24evo.lan",
"G_EVENT_ID": "",
"DAV_EXCH_LABEL": "",
"CAL_DAV_LABEL": "",
"VERSION": "1",
"ATTENDEES_CODES": [
"U1"
],
"RECURRENCE_ID": 1272,
"RELATIONS": {
"ORIGINAL_RECURSION_ID": 1271,
"COMMENT_XML_ID": "EVENT_1271_12/23/2024"
},
"SECTION_ID": "4",
"SYNC_STATUS": null,
"UF_CRM_CAL_EVENT": [
"CO_1",
"L_5"
],
"UF_WEBDAV_CAL_EVENT": false,
"SECTION_DAV_XML_ID": null,
"DATE_FROM_FORMATTED": "Wed Dec 11 2024 17:59:00",
"DATE_TO_FORMATTED": "Wed Dec 11 2024 18:59:00",
"IS_DAYLIGHT_SAVING_TZ": "N",
"SECT_ID": "4",
"OPTIONS": null,
"ATTENDEE_LIST": [
{
"id": 1,
"entryId": "1265",
"status": "H"
}
],
"COLLAB_ID": null,
"~RRULE_DESCRIPTION": "every week on: Mon, Wed, from 12/11/2024 to 12/24/2024",
"attendeesEntityList": [
{
"entityId": "user",
"id": 1
}
],
"~DESCRIPTION": "Description for event",
"~USER_OFFSET_FROM": 7200,
"~USER_OFFSET_TO": 7200
}
],
"time": {
"start": 1733412607.646361,
"finish": 1733412607.956879,
"duration": 0.3105177879333496,
"processing": 0.0637059211730957,
"date_start": "2024-12-05T15:30:07+00:00",
"date_finish": "2024-12-05T15:30:07+00:00"
}
}
Returned Data
|
Name |
Description |
|
result |
Array of 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": "The mandatory parameter \"type\" is not specified for the method \"calendar.event.get\""
}
|
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 string |
The mandatory parameter "type" is not specified for the method "calendar.event.get" |
Required parameter |
|
|
empty string |
Access denied |
Access to the method is prohibited for external users |
|
|
|
Invalid parameter value for "modified_since" |
The |
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 |