[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fcalendar-events\u002Ffields":3,"docs-tabs-entities\u002Fcalendar-events\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля события\n\n`GET \u002Fv1\u002Fcalendar-events\u002Ffields`\n\nВозвращает схему полей события: тип, признак readonly, доступные batch-операции.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data.fields).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | RO | Описание |\n|------|-----|:--:|---------|\n| `id` | number | да | ID события |\n| `parentId` | number | да | ID родительского события (для повторяющихся событий совпадает с `id` исходного) |\n| `active` | boolean | да | Активность события. Возвращается в списке `GET \u002Fv1\u002Fcalendar-events`, в карточке `GET \u002Fv1\u002Fcalendar-events\u002F:id` отсутствует |\n| `deleted` | boolean | да | Признак удаления |\n| `name` | string | | Название |\n| `description` | string | | Описание |\n| `type` | string | | Тип календаря: `user`, `group`, `company_calendar` |\n| `ownerId` | number | | ID владельца календаря. Сотрудник: `GET \u002Fv1\u002Fusers` |\n| `from` | datetime | | Начало (ISO 8601) |\n| `to` | datetime | | Окончание (ISO 8601) |\n| `skipTime` | boolean | | Событие на весь день. При `true` длительность фиксируется в 24 часа |\n| `durationSeconds` | number | да | Продолжительность события в секундах |\n| `importance` | string | | Важность: `high`, `normal`, `low` |\n| `accessibility` | string | | Занятость: `busy`, `quest`, `free`, `absent` |\n| `location` | string | | Место проведения |\n| `color` | string | | Цвет события (HEX) |\n| `textColor` | string | | Цвет текста события (HEX). Возвращается в списке `GET \u002Fv1\u002Fcalendar-events`, в карточке `GET \u002Fv1\u002Fcalendar-events\u002F:id` отсутствует |\n| `sectionId` | number | | ID секции календаря |\n| `isPrivate` | boolean | | Приватное событие |\n| `isMeeting` | boolean | | Событие-встреча с приглашениями |\n| `attendees` | number[] | | Массив ID приглашённых сотрудников для записи. **Только для записи** — в ответах событий это поле не возвращается, участники доступны в `attendeeList`, `attendeesCodes` |\n| `attendeesCodes` | string[] | да | Внутренние коды участников Битрикс24 (формат `U\u003Cid>`) |\n| `attendeeList` | array | да | Расширенный список участников: `{ id, entryId, status }`, где `status` — `Y` (принято), `H` (хост), `Q` (под вопросом), `N` (отклонено) |\n| `remind` | array | | Настройки напоминаний |\n| `rrule` | object | | Расписание повторения регулярного события: периодичность (`FREQ`), интервал (`INTERVAL`), дни недели (`BYDAY`), граница серии (`UNTIL` или `COUNT`). На чтение `BYDAY` приходит объектом-словарём вида `{\"MO\":\"MO\"}`, а `UNTIL` — строка-дата в формате региональных настроек портала, которую Битрикс24 подставляет даже при заданном `COUNT` |\n| `createdBy` | number | да | ID создателя события. Поиск: `GET \u002Fv1\u002Fusers` |\n| `dateCreate` | string | да | Дата создания. Строка в формате Битрикс24, зависящем от региональных настроек портала (например `08.06.2026 17:29:51` или `06\u002F08\u002F2026 05:29:51 pm`). Это не ISO 8601 — не разбирать фиксированным парсером |\n| `updatedAt` | string | да | Дата последнего изменения. Строка в том же формате региональных настроек портала, что и `dateCreate`. Это не ISO 8601 |\n| `meetingStatus` | string | да | Статус участия владельца календаря: `Y` (принято), `H` (хост), `Q` (под вопросом), `N` (отклонено) |\n| `meetingHost` | number | да | ID организатора встречи. Поиск: `GET \u002Fv1\u002Fusers` |\n| `eventType` | string | да | Технический тип события (для системных событий) |\n| `syncStatus` | string | да | Статус синхронизации с внешними календарями |\n| `recurrenceId` | number | да | ID серии повторяющихся событий |\n| `collabId` | number | да | ID коллабораций (при участии внешних пользователей) |\n\nНезаполненные скалярные поля возвращаются как `null`, пустые массивы — как `[]`. В минимальном событии `null` приходит, например, в `eventType`, `description`, `location`, `color`, `textColor`, `rrule`, `recurrenceId`, `syncStatus`, `collabId`, а `remind` приходит пустым массивом `[]`.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"name\": { \"type\": \"string\", \"readonly\": false },\n      \"type\": { \"type\": \"string\", \"readonly\": false },\n      \"ownerId\": { \"type\": \"number\", \"readonly\": false },\n      \"from\": { \"type\": \"datetime\", \"readonly\": false },\n      \"to\": { \"type\": \"datetime\", \"readonly\": false },\n      \"skipTime\": { \"type\": \"boolean\", \"readonly\": false },\n      \"durationSeconds\": { \"type\": \"number\", \"readonly\": true },\n      \"importance\": { \"type\": \"string\", \"readonly\": false },\n      \"accessibility\": { \"type\": \"string\", \"readonly\": false },\n      \"sectionId\": { \"type\": \"number\", \"readonly\": false },\n      \"attendees\": { \"type\": \"array\", \"readonly\": false },\n      \"rrule\": { \"type\": \"object\", \"readonly\": false },\n      \"dateCreate\": { \"type\": \"string\", \"readonly\": true },\n      \"updatedAt\": { \"type\": \"string\", \"readonly\": true }\n    },\n    \"batch\": [\"create\", \"update\", \"delete\"]\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'calendar' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `calendar` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Создать событие](.\u002Fcreate.md)\n- [Обновить событие](.\u002Fupdate.md)\n- [Список событий](.\u002Flist.md)\n","2026-07-07",{}]