Документация / Календарь

Планирование встреч с помощью Calendar

Дайте людям возможность бронировать ваше время — по ссылке, через API или через агента во время звонка.

Последнее обновление:

Calendar позволяет людям записываться к вам на встречи. Вы создаёте типы событий, доступные для бронирования, задаёте свою доступность и делитесь ссылкой — либо поручаете одному из своих агентов бронировать время прямо во время звонка. Каждое бронирование, кем бы оно ни было сделано, проходит через одно и то же место, поэтому один и тот же слот невозможно занять дважды.

Из чего это состоит#

  • Member: человек или ресурс, к которому можно записаться (врач, парикмахер, «стойка регистрации»). Учётная запись участнику не нужна.
  • Event type: то, что можно забронировать у участника («30-минутная консультация», «чистка зубов»). Каждый тип предлагает одну или несколько длительностей и ссылается на расписание доступности.
  • Доступность: часы недели, в которые к участнику можно записаться, в его часовом поясе. Без неё забронировать ничего нельзя, поэтому задайте её в первую очередь.
  • Бронирование: одна зарезервированная встреча. У неё есть ссылочный идентификатор, и она отображается в разделе Bookings.

Каждая область — это отдельная страница в меню Calendar: Event Types, Availability, Bookings, Insights, Reminders, Webhooks, Roles & permissions, Integrations и Docs.

Настройка#

  1. Откройте Calendar в консоли и выберите или добавьте участника.
  2. На странице Availability выберите часовой пояс и часы по дням недели, затем нажмите Save. (Именно на этом шаге появляются свободные слоты.)
  3. На странице Event Types создайте тип события — название и одну или несколько длительностей (например, 15, 30, 60 минут).
  4. У каждого типа события есть ссылка для бронирования. Скопируйте её или откройте, чтобы увидеть публичную страницу бронирования: сетку месяца, свободное время и короткую форму.

Типы событий#

В редакторе типа события есть вкладки:

  • Setup — название, описание, длительности и место проведения (лично, по телефону или по ссылке).
  • Availability — какое расписание использует этот тип события (расписание участника по умолчанию или конкретное именованное расписание).
  • Limitsбуферы до и после каждого бронирования, минимальный срок, за который нужно бронировать, окно бронирования (насколько заранее можно бронировать) и лимиты бронирований (ограничение на то, сколько раз этот тип события можно забронировать за день, неделю или месяц). Оставьте ограничение равным 0, чтобы не ограничивать ничего.
  • Questions — дополнительные вопросы, на которые отвечает клиент при бронировании (короткий текст, длинный текст, выпадающий список или флажок), помимо имени, email и телефона. Любой из них можно сделать обязательным. Ответы сохраняются вместе с бронированием и показываются в разделе Bookings.
  • Advanced — сделать тип события повторяющимся по умолчанию, требовать подтверждения (каждое бронирование удерживается, пока его не одобрит менеджер команды), пометить его как скрытый (не показывать в публичном списке) или отметить, что он содержит медицинскую информацию (PHI). Для скрытого типа события можно сгенерировать приватную ссылку: секретную ссылку для бронирования, которая остаётся единственным способом до него добраться. Обновление ссылки отзывает старую.

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

Доступность и расписания#

У участника может быть несколько именованных расписаний (например, «Рабочие часы» и «Летние часы»), одно из которых отмечено как основное. В каждом расписании есть:

  • Weekly hours — дни и время, доступные для бронирования, в часовом поясе расписания.
  • Date overrides — заблокировать конкретную дату или задать для неё другие часы; для этого дня исключение имеет приоритет над недельным расписанием.

Создавать, переименовывать, назначать основным и удалять расписания можно на странице Availability. Типы событий затем ссылаются на то расписание, которое вы выберете.

Out of office задаётся один раз для каждого участника на той же странице и блокирует целый диапазон дат (праздники, отпуск) во всех расписаниях, которые использует этот участник. На эти дни бронирования не попадают.

Holidays работают так же, как out of office, но в виде переиспользуемых списков. Greek national holidays, включая переходящие, которые зависят от православной Пасхи, встроены изначально: выберите их для участника как есть либо скопируйте в собственный список, чтобы добавлять или убирать дни. Списков можно создать сколько угодно (например, государственные праздники плюс местные престольные праздники клиники) и выбрать, какие списки применяются к каждому участнику; участник может использовать сразу несколько списков. Каждая дата из применённого списка исключается из доступности: слоты не предлагаются и бронирование не принимается.

Бронирования#

Страница Bookings группирует бронирования на Upcoming, Past, Pending и Cancelled. В каждом бронировании можно перенести встречу, переназначить её другому участнику или отменить — а также подтвердить или отклонить те, что ждут одобрения. Ещё бронирование можно отметить как неявку, если человек не пришёл (время остаётся занятым, но попадает в долю неявок в Insights), и добавить внутренние заметки: приватные заметки для вашей команды, раскрываемые из строки бронирования, которые тот, кто бронировал, никогда не увидит.

Одобрение (требует подтверждения)#

Включите Requires confirmation для типа события, когда каждое бронирование должен одобрить человек, прежде чем оно станет окончательным. Тогда бронирование попадает в статус Pending: слот удерживается (чтобы его не занял кто-то другой), но приглашение в календарь и напоминание отправляются только после подтверждения. Тот, кто бронировал, видит сообщение «ожидает одобрения». Нажимать Confirm и отклонять бронирования могут только роли менеджер команды и администратор календаря (назначаются на странице Roles & permissions); отклонение освобождает слот. Пока вы не назначили ни одной роли, подтверждать и отклонять может любой пользователь консоли.

Бронирование во время звонка#

Привяжите календарь к агенту (задайте у агента calendar_id или привяжите календарь в консоли). После этого агент автоматически получает четыре встроенных инструмента:

  • check_availability: читает свободное время, прежде чем что-либо предложить.
  • book_meeting: фиксирует бронирование (во время звонка достаточно имени и телефона, диктовать email не нужно).
  • manage_booking: отменяет или переносит существующее бронирование по его идентификатору.
  • reassign_meeting: переносит бронирование на другого участника, который оказывает ту же услугу.

Агент бронирует ровно через то же место, что и веб-страница, поэтому звонок и посетитель сайта никогда не смогут занять один и тот же слот дважды.

Добавление на ваш сайт#

В типе события действие Embed выдаёт готовый код в четырёх вариантах: инлайн (страница бронирования загружается внутри вашей страницы), плавающая кнопка со всплывающим окном, всплывающее окно по клику на вашем собственном элементе и карточка для email. Можно задать тему оформления, скрыть подробности события и выбрать язык.

Из собственного кода#

Используйте API и SDK (или команду calendar в CLI), чтобы получать список типов событий, читать свободные слоты и бронировать, отменять или переносить встречи. Вкладка API reference на странице Docs перечисляет каждый эндпоинт и содержит кнопку Try it.

Уведомления и календари#

Когда участник встречи указывает email, он получает подтверждение с вложенным приглашением в календарь; при отмене отправляется уведомление об отмене. Подключите Google Calendar или Microsoft Outlook (на странице Integrations), чтобы бронирования появлялись там, а ваши существующие события автоматически блокировали ваши слоты. Каждый участник может подключить один сервис или оба сразу.

Видеозвонки#

Задайте для типа события место проведения Video call, и каждое бронирование автоматически получит ссылку на встречу из подключённого календаря участника: ссылку Google Meet в случае Google и ссылку Microsoft Teams в случае Outlook. Ссылка появляется на странице подтверждения бронирования, в письмах с подтверждением и напоминанием, а также в самом бронировании в консоли.

Вы можете уведомлять и себя: на странице Reminders перечислите получателей уведомлений, и о каждом новом бронировании (а также о каждом бронировании, ожидающем одобрения) на каждый адрес будет приходить письмо — на основной email вашей учётной записи, на стойку регистрации, кому угодно (до 10 адресов).

Письма календаря могут уходить через ваш собственный почтовый сервер с вашим адресом отправителя: календарь использует настройки SMTP AI-приложения, если вы их задали, либо вы можете указать для календаря его собственный сервер SMTP на той же странице. Если не настроено ни то, ни другое, письма доставляет отправитель платформы.

Webhooks (для них отведена отдельная страница в меню Calendar) отправляют каждое событие бронирования на выбранный вами URL, подписывая каждый запрос. Можно отправить тестовый запрос, посмотреть журнал доставок по каждой подписке и повторить одну из прошлых доставок.

Напоминания и повторяющиеся встречи#

Перед встречей можно отправить напоминание: участник получает письмо-напоминание (и срабатывает вебхук) до её начала. Настройте повторяющиеся бронирования (еженедельные созвоны, продолжающиеся сессии) — каждое повторение является настоящим бронированием, которое можно изменить или отменить отдельно.

Статистика#

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

Консоль

Эти страницы доступны только для чтения. Тестовый звонок, ключи API и актуальный справочник API находятся в консоли, где выполнен вход в ваш аккаунт.

Открыть консоль