# Прочитать план дня

`GET /v1/tasks/day-plan`

Возвращает задачи, которые владелец ключа поставил в план на текущий день в виджете рабочего дня Битрикс24.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|----------|
| `expand` (query) | string | нет | Единственное значение — `tasks`: в ответ добавляется массив `data.tasks` с объектами задач. Без параметра приходят только идентификаторы |

Других query-параметров у метода нет: любой из них отклоняется с `400 INVALID_PARAMS`.

## Примеры

### curl — личный ключ

```bash
curl "https://vibecode.bitrix24.tech/v1/tasks/day-plan?expand=tasks" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl "https://vibecode.bitrix24.tech/v1/tasks/day-plan?expand=tasks" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/day-plan?expand=tasks', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { success, data } = await res.json()
console.log(data.taskIds)
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/day-plan?expand=tasks', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()
console.log(data.taskIds)
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|----------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | object | План дня |
| `data.taskIds` | number[] | Идентификаторы задач плана дня в порядке плана. Пустой массив, если план пуст |
| `data.tasks` | object[] | Только при `expand=tasks`. Задачи плана с теми же полями, что в [списке задач](/docs/entities/tasks/list). Все поля — [Поля задачи](/docs/entities/tasks/fields) |

## Пример ответа

Запрос с `expand=tasks`, в плане две задачи. Показаны основные поля задач:

```json
{
  "success": true,
  "data": {
    "taskIds": [4125, 4127],
    "tasks": [
      {
        "id": 4125,
        "title": "Подготовить отчёт",
        "status": 2,
        "responsibleId": 1317,
        "groupId": 155,
        "stageId": 625,
        "deadline": "2026-10-19T18:00:00.000Z"
      },
      {
        "id": 4127,
        "title": "Согласовать договор",
        "status": 5,
        "responsibleId": 1317,
        "groupId": 155,
        "stageId": 625,
        "deadline": "2026-10-19T18:00:00.000Z"
      }
    ]
  }
}
```

Без `expand` приходит только массив идентификаторов:

```json
{
  "success": true,
  "data": {
    "taskIds": [4125, 4127]
  }
}
```

## Пример ответа при ошибке

400 — передан неподдерживаемый query-параметр или другое значение `expand`:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Only expand=tasks is supported"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 400 | `INVALID_PARAMS` | `expand` не равен `tasks` или передан другой query-параметр |
| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |
| 401 | `TOKEN_MISSING` | У ключа нет действующего токена Битрикс24 |
| 403 | `SCOPE_DENIED` | У ключа нет скоупа `task` или `tasks` |
| 422 | `BITRIX_ERROR` | Битрикс24 отклонил запрос, текст в `message` |
| 502 | `BITRIX_ERROR` | Битрикс24 вернул план неожиданной структуры: `Invalid day plan response` |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

- **Только свой план.** Метод читает план дня того пользователя Битрикс24, от имени которого работает ключ. Прочитать план другого сотрудника нельзя. Ключ только для чтения подходит.
- **Через API план не заполняется.** Задачи добавляют в план вручную в виджете рабочего дня Битрикс24, кнопкой «выбрать из списка» в блоке «План на день». Запуск таймера задачи в план её не добавляет.
- **Завершённая задача остаётся в плане.** После завершения её идентификатор по-прежнему приходит в `taskIds`.
- **Чтение сокращает план до 30 задач, и сокращение сохраняется.** Если в плане больше 30 задач, вызов возвращает 30, а лишние задачи из плана удаляются насовсем. Удаляется не обязательно последняя добавленная задача.
- **План дня и «Мой план» — разные списки.** Стадии «Моего плана» задаются [переносом задачи](/docs/tasks/move-stage) и читаются фильтром `filter[stagesId]` в [списке задач](/docs/entities/tasks/list). На план дня они не влияют.

## Смотрите также

- [Задачи: канбан, «Мой план» и план дня](/docs/tasks)
- [Стадии канбана задач](/docs/task-stages)
- [Перенести задачу с порядком](/docs/tasks/move-stage)
- [Список задач](/docs/entities/tasks/list)
- [Рабочий день](/docs/workday)
