Получить список событий календаря calendar.event.get

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: calendar

Кто может выполнять метод: любой пользователь

Метод calendar.event.get получает список событий календаря.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

type*
string

Тип календаря:

  • user — календарь пользователя
  • group — календарь группы
  • company_calendar — календарь компании

ownerId*
integer

Идентификатор владельца календаря.

Для календаря компании параметр ownerId имеет значение 0

from
date

Дата начала выборки.

Значение по умолчанию — месяц до текущей даты

to
date

Дата окончания выборки.

Значение по умолчанию — три месяца после текущей даты

section
array

Массив идентификаторов календарей

modified_since
string

Момент, начиная с которого нужны измененные события. Формат — ISO 8601 с обязательным часовым поясом: 2026-10-13T09:00:00+03:00 или 2026-10-13T06:00:00Z. Дробная часть секунд допускается и отбрасывается.

Метод вернет события, у которых дата изменения больше или равна переданному значению, включая удаленные. Подробнее — в разделе Получение изменений.

Пустая строка равнозначна отсутствию параметра

Получение изменений

Параметр modified_since позволяет синхронизировать календарь с внешней системой без повторной загрузки всех событий.

  1. При первой синхронизации получите события без modified_since и запомните наибольшее значение поля TIMESTAMP_X_ISO из ответа.

  2. При следующей синхронизации передайте это значение в modified_since. Значение из поля TIMESTAMP_X_ISO можно передать без преобразования.

Как работает выборка изменений:

  • граница включительная, точность — одна секунда. События, измененные в ту же секунду, придут повторно, поэтому обрабатывайте их по ID без дублей

  • ограничение по датам from и to действует и вместе с modified_since. Если событие находится за пределами периода выборки, его изменение не придет

  • удаленные события приходят со значением DELETED = Y, а в TIMESTAMP_X_ISO у них — момент удаления. Без modified_since метод удаленные события не возвращает

  • повторяющееся событие приходит отдельной записью на каждое повторение в периоде выборки, все записи с одним ID. Это относится и к удаленным повторяющимся событиям

  • ответ участника на приглашение не меняет дату изменения события, поэтому в выборку изменений не попадает

Примеры кода

Как использовать примеры в документации

  1. Получить события пользователя с id = 1 за период с 2024-06-20 по 2024-08-20

    curl -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.get
    
    curl -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",
            f"error: {error.error}",
            f"error_description: {error.error_description}",
            sep="\n",
        )
    except BitrixSDKException as error:
        print(f"Ошибка Bitrix SDK: {error.message}")
    except Exception as error:
        print(f"Непредвиденная ошибка: {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);
        // Нужная вам логика обработки данных
        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 и ctx уже созданы — см. раздел «SDK для Go»
    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)
    }
    
    // Ответ приходит как json.RawMessage — разберите его
    // в структуру под форму ответа, показанную ниже на этой странице.
    fmt.Printf("%s\n", res.Result)
    
  2. Получить события календаря компании.

    curl -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.get
    
    curl -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",
            f"error: {error.error}",
            f"error_description: {error.error_description}",
            sep="\n",
        )
    except BitrixSDKException as error:
        print(f"Ошибка Bitrix SDK: {error.message}")
    except Exception as error:
        print(f"Непредвиденная ошибка: {error}")
    
    try {
        $response = $b24Service
            ->core
            ->call(
                'calendar.event.get',
                [
                    'type'    => 'company_calendar',
                    'ownerId' => 0,
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        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 и ctx уже созданы — см. раздел «SDK для Go»
    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)
    }
    
    // Ответ приходит как json.RawMessage — разберите его
    // в структуру под форму ответа, показанную ниже на этой странице.
    fmt.Printf("%s\n", res.Result)
    
  3. Получить события пользователя с id = 1, измененные начиная с 2026-10-13T09:00:00+03:00, включая удаленные

    curl -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.get
    
    curl -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:
        # У параметра modified_since нет аргумента в обертке b24pysdk, поэтому вызываем метод по имени
        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",
            f"error: {error.error}",
            f"error_description: {error.error_description}",
            sep="\n",
        )
    except BitrixSDKException as error:
        print(f"Ошибка Bitrix SDK: {error.message}")
    except Exception as error:
        print(f"Непредвиденная ошибка: {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);
        // Нужная вам логика обработки данных
        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 и ctx уже созданы — см. раздел «SDK для Go»
    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)
    }
    
    // Ответ приходит как json.RawMessage — разберите его
    // в структуру под форму ответа, показанную ниже на этой странице.
    fmt.Printf("%s\n", res.Result)
    

Обработка ответа

HTTP-статус: 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/Riga",
            "TZ_TO": "Europe/Riga",
            "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": "ru",
                "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": "каждую неделю по: Пн, Ср, от 12/11/2024 до 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"
    }
}

Возвращаемые данные

Название
тип

Описание

result
array

Массив событий календаря (подробное описание). Если в периоде выборки событий нет, массив пустой

time
time

Информация о времени выполнения запроса

Объект события

Название
тип

Описание

ID
string

Идентификатор события

PARENT_ID
string

Идентификатор родительского события

ACTIVE
string

Признак активности события. Возможные значения:

  • Y — событие активно
  • N — событие неактивно

Метод calendar.event.getbyid поле не возвращает

DELETED
string

Флаг отображающий удалено ли событие. Возможные значения:

  • Y — событие удалено
  • N — событие не удалено

Значение Y приходит только в ответе calendar.event.get с параметром modified_since

CAL_TYPE
string

Тип календаря в котором находится событие

OWNER_ID
string

Идентификатор владельца календаря:

  • id пользователя для типа календаря user
  • id группы для типа календаря group

NAME
string

Название события

DATE_FROM
datetime

Дата начала события

DATE_TO
datetime

Дата окончания события

ORIGINAL_DATE_FROM
datetime

Дата начала оригинального события для повторяемых событий

TZ_FROM
string

Таймзона даты начала события.

Метод calendar.event.get.nearest поле не возвращает

TZ_TO
string

Таймзона даты окончания события.

Метод calendar.event.get.nearest поле не возвращает

TZ_OFFSET_FROM
string

Смещение времени начала события относительно UTC в секундах.

Метод calendar.event.get.nearest поле не возвращает

TZ_OFFSET_TO
string

Смещение времени окончания события относительно UTC в секундах.

Метод calendar.event.get.nearest поле не возвращает

DATE_FROM_TS_UTC
string

Дата и время начала события в формате timestamp.

Несмотря на название, значение сдвинуто на смещение часового пояса сервера, поэтому читать его как время UTC нельзя. Точное время начала задают поля DATE_FROM и TZ_FROM

DATE_TO_TS_UTC
string

Дата и время окончания события в формате timestamp.

Несмотря на название, значение сдвинуто на смещение часового пояса сервера, поэтому читать его как время UTC нельзя. Точное время окончания задают поля DATE_TO и TZ_TO

DT_SKIP_TIME
string

Флаг отображающий что событие длится целый день. Возможные значения:

  • Y — целый день
  • N — не целый день

DT_LENGTH
integer

Длительность события в секундах

EVENT_TYPE
string

Тип события

CREATED_BY
string

Идентификатор пользователя, который создал событие

DATE_CREATE
datetime

Дата создания события

TIMESTAMP_X
datetime

Дата изменения события

DATE_CREATE_ISO
string

Дата создания события в формате ISO 8601 со смещением часового пояса портала, например 2026-10-08T10:27:29+03:00.

Поле не возвращается, если дата создания не заполнена

TIMESTAMP_X_ISO
string

Дата изменения события в формате ISO 8601 со смещением часового пояса портала.

Значение можно передать в параметр modified_since метода calendar.event.get, чтобы получить события, измененные с этого момента. У всех экземпляров повторяющегося события значение одинаковое. Поле не возвращается, если дата изменения не заполнена

DESCRIPTION
string

Описание события

DT_FROM
string

Служебное поле. Приходит со значением null

Метод calendar.event.getbyid поле не возвращает

DT_TO
string

Служебное поле. Приходит со значением null

Метод calendar.event.getbyid поле не возвращает

PRIVATE_EVENT
string

Отметка, что событие частное. Возможные значения:

  • Y — частное
  • N или пустая строка — не частное

ACCESSIBILITY
string

Занятость участников во время события. Возможные значения:

  • busy — занят
  • absent — отсутствую
  • quest — под вопросом
  • free — свободен

IMPORTANCE
string

Важность события. Возможные значения:

  • high — высокая
  • normal — средняя
  • low — низкая

IS_MEETING
boolean

Признак встречи с участниками события. Возможные значения:

  • true — встреча с участниками
  • false — событие без участников

MEETING_STATUS
string

Статус участия в событии. Возможные значения:

  • Y — согласен
  • N — отказался
  • Q — приглашен, но еще не ответил
  • H — организатор события

MEETING_HOST
string

Идентификатор пользователя, ведущего событие

MEETING
object

Настройки встречи (подробное описание)

LOCATION
string

Идентификатор или название места проведения события

REMIND
array

Массив объектов с описанием напоминаний о событии (подробное описание)

COLOR
string

Цвет фона события

TEXT_COLOR
string

Цвет текста события. Если цвет не задан — пустая строка

Метод calendar.event.getbyid поле не возвращает

RRULE
object

Повторяемость события в виде объекта в терминах стандарта iCalendar (подробное описание). Для неповторяемого события — пустая строка

EXDATE
string

Список дат исключений из правила повторений

DAV_XML_ID
string

Идентификатор синхронизации

G_EVENT_ID
string

Идентификатор синхронизации

DAV_EXCH_LABEL
string

Идентификатор синхронизации с Exchange

CAL_DAV_LABEL
string

Идентификатор синхронизации

VERSION
string

Версия изменений события

ATTENDEES_CODES
array

Идентификаторы участников события

RECURRENCE_ID
string

Идентификатор оригинального события при редактировании только текущего

RELATIONS
object

Объект для повторяемых событий с информацией о связях с оригинальным событием (подробное описание). Для неповторяемого события — пустая строка

SECTION_ID
string

Идентификатор календаря в котором расположено событие

SYNC_STATUS
string

Статус синхронизации события

UF_CRM_CAL_EVENT
array

Массив идентификаторов объектов CRM, привязанных к событию, например CO_1 или L_5. Если привязок нет — null

UF_WEBDAV_CAL_EVENT
array

Массив идентификаторов файлов привязанных к событию

SECTION_DAV_XML_ID
array

Идентификатор синхронизации календаря события

DATE_FROM_FORMATTED
string

Форматированная дата начала события

DATE_TO_FORMATTED
string

Форматированная дата окончания события

IS_DAYLIGHT_SAVING_TZ
string

Признак перехода на летнее время в часовом поясе TZ_FROM. Возможные значения:

  • Y — в часовом поясе есть переход на летнее время
  • N — перехода нет

SECT_ID
string

Идентификатор календаря в котором расположено событие

OPTIONS
object

Дополнительные параметры события с категорией, например идентификатор категории CATEGORY_ID и количество участников ATTENDEES_COUNT. Для обычного события — null

ATTENDEE_LIST
array

Массив объектов, описывающих участников события и их статусы участия (подробное описание)

COLLAB_ID
integer

Идентификатор коллабы, в которой создано событие

~RRULE_DESCRIPTION
string

Текстовое описание правила повторения события

attendeesEntityList
array

Массив объектов, описывающих пользователей — участников события (подробное описание)

~DESCRIPTION
string

Описание события

~USER_OFFSET_FROM
integer

Смещение времени начала события относительно часового пояса текущего пользователя

~USER_OFFSET_TO
integer

Смещение времени окончания события относительно часового пояса текущего пользователя

DT_FROM_TS
integer

Дата и время начала события в формате timestamp с учетом часового пояса текущего пользователя.

Поле возвращает только метод calendar.event.get.nearest

DT_TO_TS
integer

Дата и время окончания события в формате timestamp с учетом часового пояса текущего пользователя.

Поле возвращает только метод calendar.event.get.nearest

~URL
string

Ссылка на событие в календаре.

Поле возвращает только метод calendar.event.get.nearest

~WEEK_DAY
string

Сокращенное название дня недели, на который приходится начало события.

Поле возвращает только метод calendar.event.get.nearest

~detailUrl
string

Ссылка на событие, собранная по шаблону из параметра detailUrl.

Поле возвращает только метод calendar.event.get.nearest, если передан параметр detailUrl

~FROM_TO_HTML
string

Дата и время события в виде строки для отображения, например 11/20/2026, 10:00 am - 11:00 am.

Поле возвращает только метод calendar.event.get.nearest

Объект MEETING

Название
тип

Описание

HOST_NAME
string

имя пользователя ведущего событие

NOTIFY
boolean

Флаг оповещения о подтверждении или отказе участников

REINVITE
boolean

Флаг запроса повторного подтверждения участия при редактировании события

ALLOW_INVITE
boolean

Флаг разрешения участникам приглашать других в событие

HIDE_GUESTS
boolean

Флаг скрытия списка участников

MEETING_CREATOR
integer

Идентификатор создателя события

LANGUAGE_ID
string

Идентификатор языка для уведомлений по событию

MAIL_FROM
string

Адрес отправителя для уведомлений

Объект REMIND

Название
тип

Описание

type
string

Временной тип напоминания

  • min — минуты
  • hour – часы
  • day — дни

count
integer

Числовое значение временного промежутка

Объект RRULE

Название
тип

Описание

FREQ
string

Частота повторения

  • DAILY — ежедневно
  • WEEKLY — еженедельно
  • MONTHLY — ежемесячно
  • YEARLY — ежегодно

BYDAY
object

Дни недели

  • SU — воскресенье
  • MO — понедельник
  • TU — вторник
  • WE — среда
  • TH — четверг
  • FR — пятница
  • SA — суббота

INTERVAL
integer

Интервал между повторениями

UNTIL
date

Дата окончания повторений

~UNTIL
date

Дата окончания повторений. Техническое поле

UNTIL_TS
integer

Дата окончания повторений в формате timestamp

Объект RELATIONS

Название
тип

Описание

ORIGINAL_RECURSION_ID
integer

Идентификатор оригинального события для повторяемых созданных при редактировании

COMMENT_XML_ID
string

Идентификатор оригинального события для одиночных, созданных при редактировании из повторяемых

Объекты ATTENDEE_LIST

Название
тип

Описание

id
integer

Идентификатор пользователя

entryId
string

Идентификатор события

status
string

Статус участника события. Возможные значения:

  • Y — согласен
  • N — отказался
  • Q — приглашен, но еще не ответил
  • H — организатор события

Объект attendeesEntityList

Название
тип

Описание

entityId
string

Тип объекта участника события

id
integer

Идентификатор участника события

Обработка ошибок

HTTP-статус: 400

{
    "error": "",
    "error_description": "Не задан обязательный параметр \"type\" для метода \"calendar.event.get\""
}

Название
тип

Описание

error
string

Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только error_description

error_description
string

Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки

Возможные коды ошибок

Статус

Код

Описание

Значение

400

Пустое значение

Не задан обязательный параметр "type" для метода "calendar.event.get"

Не передан обязательный параметр type

400

Пустое значение

Доступ запрещен

Запрещен доступ к методу для внешних пользователей

400

ERROR_ARGUMENT

Недопустимое значение параметра "modified_since"

В modified_since передано значение без часового пояса, без секунд, с пробелом вместо T, несуществующая дата или значение не строкового типа

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

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

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение