Документация › Инструменты бота › Запись на время
Запись на время
Бот сам показывает свободное время и записывает клиента — простым способом через Google Calendar или «движком окошек» для нескольких специалистов.
⏱ 12 мин · 👤 для владельца · 🟢 live
За 30 секунд:
- Три способа записи — выберите под свой бизнес (ниже шпаргалка).
- Google Calendar — один специалист, простой график.
- Движок окошек — несколько мастеров, график в таблице, обеды/отпуска/ограничения.
- Google Таблицы — если вы уже ведёте слоты строками в таблице.
Как выбрать способ
| Ваша ситуация | Способ |
|---|---|
| Один мастер/кабинет, простой график | Google Calendar — бот смотрит занятость календаря и записывает |
| Несколько специалистов, график в таблице, есть обеды, отпуска, ограничения по дням/возрасту | Движок окошек — сервер сам считает свободные слоты, бот не ошибается |
| Вы уже ведёте слоты строками в таблице | Google Таблицы (см. статью про Таблицы) |
Способ A. Google Calendar (один специалист)
Что понадобится
- ☐ Google-календарь
- ☐ Доступ для сервис-аккаунта (одна кнопка в настройках функции)
Шаги
Проект → Функции → Создать → Из готового шаблона → Запись на время → группа «Google Calendar». Здесь 5 готовых действий: проверить свободное время, записать, перенести, показать записи, отменить.- В настройках укажите Календарь (
primaryдля основного или email другого календаря) и нажмите «Проверить подключение». - Откройте сервис-аккаунту доступ к календарю: на панели функции есть email сервис-аккаунта — добавьте его в доступ календаря с правами «Редактор».
- Настройте расписание работы: рабочие дни, часы, обед, длительность слота, минимальный запас до записи. Это настройки самой функции — бот будет предлагать только время внутри них.
⚠️ Важно. Расписание работы задаётся прямо в настройках функции «Проверить свободное время». Бот предлагает слоты строго в этих рамках.
📌 Пример (стоматология). Функция «Записать клиента» с длительностью слота 60 минут, рабочие дни Пн–Сб 9:00–19:00, запас 60 минут. Бот не запишет на ближайший час и не предложит воскресенье.
Способ B. Движок окошек (несколько специалистов)
Одна функция вместо цепочки «прочитай график → возьми занятость → посчитай сам». Сервер сам учитывает часы по дням, обеды, отпуска, ограничения дней и возраст, и отдаёт боту готовый список свободных слотов с именами специалистов.
Что понадобится
- ☐ Google-таблица с графиком специалистов
- ☐ Список услуг (заполняется в конструкторе — без JSON руками)
- ☐ (если берёте занятость из CRM) подключённая Education CRM
Формат листа-графика
Лист должен содержать колонки: специалист, услуга (предмет), минимальный возраст, семь колонок дней (пн…вс) с часами работы, обеды, комментарии. Имена колонок по умолчанию: «Преподаватель», «Предмет», «Минимальный возраст», «Обеды», «Комментарии». Если у вас они называются иначе — в настройках функции есть раздел «Колонки в листе называются иначе?».
В ячейках дней пишутся часы работы; комментарии понимают ограничения вроде «пробные только вт/чт/сб», маркеры «(без ПЗ)/(день ПЗ)». Непонятное ограничение → специалист скрывается с пометкой менеджеру (лучше не показать, чем показать недоступного).
Шаги
Создать → Запись на время → Свободные окошки для записи.- Укажите ID Google-таблицы с графиком и нажмите проверку подключения.
- Услуги заполняются в конструкторе: для каждой услуги — название (как в колонке «Предмет»), синонимы через запятую, минимальный возраст, и (если занятость из CRM)
branch_id/subject_idиз вашей Education CRM. - Источник занятости: «Education CRM» (берёт занятые уроки из CRM) или «Только график» (без CRM).
- Параметры окна: длительность слота, за сколько дней минимум можно записаться, горизонт показа (максимум 14 дней), окно работы бизнеса, таймзона.
💡 Совет. Не вводите JSON руками — конструктор услуг и колонок соберёт его за вас. Кнопка «Редактировать как JSON» оставлена на случай тонкой правки.
Проверь, что работает
Откройте функцию → «Проверить» → передайте услугу (и возраст, если нужен) → бот вернёт список свободных слотов. Для Calendar — проверьте, что слоты попадают в ваши рабочие часы.
Частые ошибки
| Симптом | Причина | Что нажать |
|---|---|---|
| Бот предлагает время вне рабочих часов | Расписание не настроено или взяты дефолты | Откройте функцию «Проверить свободное время», задайте часы/дни |
| «нет специалистов по услуге» | Название услуги не совпадает с колонкой «Предмет» | Сверьте название/синонимы в конструкторе услуг |
| Не считается занятость | Не подключена Education CRM или нет branch_id | Подключите CRM, заполните branch_id/subject_id |
Вопросы, которые обычно возникают
Можно показывать запись на сегодня?
Да — поставьте «Запись минимум за» = 0.
Сколько дней вперёд показывает движок окошек?
До 14 дней (горизонт настраивается).
🔧 Под капотом
- Движок окошек —
builtin_booking(find_free_slots): пересечение графика из Sheets ∩ RU-ограничений из комментариев ∩ занятости из edu-CRM. Модель не делает табличную математику — получает готовый ответ. - Google Calendar —
builtin_calendar; расписание читается из настроек функции (builtin_config): рабочие дни/часы/слот/запас/таймзона. - Услуги хранятся в
services_json, имена колонок — вcolumns_json; конструктор сериализует их за вас.
💬 Простыми словами
Представьте администратора, который наизусть знает график всех мастеров — кто когда работает, у кого обед, кто в отпуске, кого нельзя ставить детям. Клиент говорит «хочу на гитару» — администратор мгновенно называет реальные свободные окошки. Движок окошек — это и есть такой администратор внутри бота. А если мастер один — хватит простого календаря.
Дальше: → Бот выставляет счёт
Связано: Google Таблицы · Google Calendar
Не получилось? → Функция не срабатывает