[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fcalendar-events\u002Flist":3,"docs-tabs-entities\u002Fcalendar-events\u002Flist":6},{"content":4,"lastmod":5},"\n## Список событий\n\n`GET \u002Fv1\u002Fcalendar-events`\n\nВозвращает события календаря за фиксированный период вокруг текущей даты: с месяца назад по три месяца вперёд.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|:-----:|-----------|---------|\n| `type` (query) | string | да | — | Тип календаря: `user`, `group`, `company_calendar` |\n| `ownerId` (query) | number | да | — | ID владельца календаря: сотрудник (`GET \u002Fv1\u002Fusers`) или рабочая группа |\n| `limit` (query) | number | нет | `50` | Количество записей (до 5000). При `limit > 50` Вайбкод автоматически запрашивает несколько страниц у Битрикс24 |\n| `offset` (query) | number | нет | `0` | Пропустить N записей. При `offset > 0` рекомендуется `limit ≤ 500` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events?type=user&ownerId=1&limit=10\" \\\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?type=user&ownerId=1&limit=10\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst params = new URLSearchParams({ type: 'user', ownerId: '1', limit: '10' })\nconst res = await fetch(`https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events?${params}`, {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`Найдено ${meta.total} событий`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst params = new URLSearchParams({ type: 'user', ownerId: '1', limit: '10' })\nconst res = await fetch(`https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalendar-events?${params}`, {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив событий (все поля — см. [Поля события](.\u002Ffields.md)) |\n| `meta.total` | number | Общее количество событий в выборке |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\nURL карточки любого события из массива `data` зависит от типа календаря:\n\n| `type` | URL |\n|---|---|\n| `user` | `https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F\u003CownerId>\u002Fcalendar\u002F?EVENT_ID=\u003Cid>&EVENT_DATE=\u003Cdd.mm.yyyy>` |\n| `group` | `https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fworkgroups\u002Fgroup\u002F\u003CownerId>\u002Fcalendar\u002F?EVENT_ID=\u003Cid>&EVENT_DATE=\u003Cdd.mm.yyyy>` |\n| `company_calendar` | `https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcalendar\u002F?EVENT_ID=\u003Cid>&EVENT_DATE=\u003Cdd.mm.yyyy>` |\n\n`\u003Cdd.mm.yyyy>` — дата начала события (поле `from`) в формате «день.месяц.год» через точку. `\u003Cportal>` — домен вашего портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 7773,\n      \"parentId\": 7773,\n      \"active\": true,\n      \"deleted\": false,\n      \"type\": \"user\",\n      \"ownerId\": 1,\n      \"name\": \"Созвон с командой\",\n      \"from\": \"2026-06-10T10:00:00+03:00\",\n      \"to\": \"2026-06-10T11:00:00+03:00\",\n      \"skipTime\": false,\n      \"durationSeconds\": 3600,\n      \"createdBy\": 1,\n      \"dateCreate\": \"06\u002F05\u002F2026 09:12:00 am\",\n      \"updatedAt\": \"06\u002F05\u002F2026 09:12:00 am\",\n      \"description\": \"Еженедельная синхронизация\",\n      \"accessibility\": \"busy\",\n      \"importance\": \"normal\",\n      \"isMeeting\": false,\n      \"meetingStatus\": \"H\",\n      \"meetingHost\": 1,\n      \"sectionId\": 3,\n      \"attendeeList\": [\n        { \"id\": 1, \"entryId\": \"7773\", \"status\": \"H\" }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"total\": 1,\n    \"hasMore\": false\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не переданы обязательные `type` и `ownerId`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_REQUIRED_PARAMS\",\n    \"message\": \"GET \u002Fv1\u002Fcalendar-events requires query parameters: type, ownerId. Example: GET \u002Fv1\u002Fcalendar-events?type=...&ownerId=...\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_REQUIRED_PARAMS` | Не переданы `type` и (или) `ownerId` |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `calendar` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Авто-пагинация.** При `limit > 50` Вайбкод автоматически запрашивает несколько страниц у Битрикс24 и собирает их в один ответ. Если общее количество событий больше `limit`, в `meta.hasMore` придёт `true`.\n\n**Регулярные события.** Событие с полем `rrule` в списке возвращается отдельным элементом на каждое вхождение серии, попадающее в окно выборки. У всех элементов общий `id` и `parentId`, отличаются только `from` \u002F `to`.\n\n## Смотрите также\n\n- [Создать событие](.\u002Fcreate.md)\n- [Получить событие](.\u002Fget.md)\n- [Поля события](.\u002Ffields.md)\n","2026-07-07",{}]