Представьте такую ситуацию: потенциальный клиент находится на вашем сайте и заинтересован в продукте. Он хочет забронировать демо. Старый способ выглядит так: клиент отправляет email, вы отвечаете ссылкой на календарь, затем вы несколько раз согласовываете удобное время. Это медленно, и вы рискуете потерять его интерес.
Теперь представьте более удобный способ. Посетитель просто спрашивает вашего AI-агента: “Можно забронировать встречу?” Агент сразу проверяет ваш календарь, предлагает доступные слоты и бронирует встречу прямо в чате.

В этом преимущество подключения Cal.com к вашему агенту Quickchat AI. В этом руководстве мы разберем простую интеграцию. Всего за несколько минут вы сможете поручить AI работу с расписанием, чтобы новые лиды попадали в ваш календарь, не выходя из диалога.
Если вы используете Calendly вместо Cal.com, есть более короткий путь: Calendly предоставляет размещенный MCP-сервер, поэтому подключение выполняется в один клик, а не через набор вручную настроенных API Actions. В статье Создайте AI-ассистента для записи с Calendly показано, как это сделать, включая настройку ограничений на действия агента после подключения.
Зачем подключать Cal.com к AI-агенту?
Cal.com, это мощный инструмент для гибкой записи, а его API открывает возможности автоматизации. В сочетании с AI Actions от Quickchat он позволяет превратить чат на сайте в умного ассистента по расписанию.
Вот почему это существенно меняет процесс:
- Создайте удобный пользовательский опыт: Посетители могут забронировать звонок прямо в окне чата. Больше не нужно переключаться между вкладками, ссылками и email. Это быстро, современно и удобно.
- Получайте больше лидов: Убирая лишние шаги из процесса бронирования, вы снижаете вероятность того, что лид прервет процесс. Мгновенное подтверждение означает мгновенное решение.
- Уберите ручную работу: Ваш AI выполняет весь процесс записи, от проверки доступности до отправки приглашений. Календарь заполняется автоматически, а вы можете сосредоточиться на более важных задачах.
Как это работает?
Основная логика реализуется через два API-вызова, которые ваш AI-агент выполняет в Cal.com. Краткий обзор диалогового сценария:
- Запрос: Посетитель просит забронировать встречу. Ваш AI-агент корректно запрашивает предпочтительные даты и часовой пояс.
- Проверка доступности: Агент обращается к Cal.com, чтобы найти свободные временные слоты на основе заранее настроенных типов событий.
- Предложение: AI показывает пользователю доступное время. После выбора слота он запрашивает имя и email.
- Бронирование встречи: Затем агент вызывает API Cal.com, чтобы забронировать встречу, передавая выбранный слот и данные пользователя для завершения записи.
- Подтверждение: Cal.com продолжает процесс и автоматически отправляет приглашения в календарь вам и новому лиду.
Вот как может выглядеть такой диалог:

Что понадобится (предварительные требования)
Перед началом убедитесь, что у вас есть следующее:
- Аккаунт Cal.com: Бесплатного тарифа будет достаточно, если вы только начинаете. Вам понадобится как минимум один настроенный тип события (например, 30-минутный демозвонок). Зарегистрировать аккаунт Cal.com можно здесь.
- Агент Quickchat AI: Вам понадобится доступ для создания пользовательских AI Actions. Если у вас еще нет аккаунта, вы можете зарегистрироваться здесь.
- Ваш API-ключ Cal.com: В панели Cal.com перейдите в Settings → API keys. Нажмите Add, задайте имя ключа, укажите дату истечения срока действия и скопируйте токен. Он понадобится для аутентификации.

Совет: Хотя публичные типы событий в Cal.com доступны без API-ключа, использовать ключ настоятельно рекомендуется. Это помогает избежать ограничений по частоте запросов и обеспечивает готовность интеграции к будущим изменениям API.
Шаг 1: Создайте AI Action для проверки доступности
Сначала научим вашего AI-агента находить свободные временные слоты.
В панели Quickchat перейдите в Actions & MCPs → Custom Actions и нажмите Add Action.
1.1 Определите пользовательские входные данные
Нужно запросить у пользователя несколько ключевых данных, прежде чем проверять календарь. Определите поля, которые агент должен собрать:
| Field | Description | Example |
|---|---|---|
start | Начало диапазона дат для поиска (ISO 8601) | 2025-09-18T00:00Z |
end | Конец диапазона дат для поиска (ISO 8601) | 2025-09-25T23:59Z |
timeZone | Часовой пояс пользователя в формате IANA | Europe/Warsaw |

1.2 Настройте API-вызов
Теперь настройте запрос к Cal.com:
-
Метод:
GET -
URL API endpoint:
https://api.cal.com/v2/slots?eventTypeSlug=call&username=patryk-lasek&start={{start}}&end={{end}}&timeZone={{timeZone}}Важно: Замените
callна URL slug вашего типа события, аpatryk-lasekна ваше имя пользователя Cal.com. -
Заголовки:
| Header | Value | Required |
|---|---|---|
cal-api-version | 2024-09-04 | ✔︎ |
Authorization | Bearer <your_api_key> | Рекомендуется |

Заголовок cal-api-version обязателен. Без него запрос завершится ошибкой.
В интерфейсе Quickchat плейсхолдеры ({{start}}, {{end}}, {{timeZone}}) в URL будут автоматически заменены данными, которые агент соберет у пользователя.
После сохранения ваш агент сможет получать и показывать доступные временные слоты.
Шаг 2: Создайте AI Action для бронирования встречи
Когда доступность проверена, пора выполнить последний шаг: создать бронирование. Настроим второе действие.
2.1 Определите пользовательские входные данные
Для этого действия агенту нужно собрать следующее:
| Field | Description | Default Value | Required |
|---|---|---|---|
start | Выбранный временной слот в формате UTC: 2025-09-21T07:00:00Z | - | ✔︎ |
name | Полное имя участника | - | Необязательно |
email | Email-адрес участника | - | ✔︎ |
timeZone | Часовой пояс пользователя в формате IANA: Europe/Warsaw | - | ✔︎ |

Примечание о часовых поясах: Endpoint бронирования Cal.com требует, чтобы время start было в формате UTC. Ваш AI-агент должен выполнить это преобразование. Например, если пользователь в Варшаве (UTC+2) выбирает 11:00 AM, в API нужно отправить значение 09:00:00Z.
2.2 Настройте API-вызов
- Метод:
POST - URL API endpoint:
https://api.cal.com/v2/bookings - Заголовки:
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | ✔︎ |
cal-api-version | 2024-08-13 | ✔︎ |
Authorization | Bearer <your_api_key> | Рекомендуется |
Обратите внимание, что cal-api-version для этого endpoint отличается. Всегда проверяйте документацию Cal.com, чтобы указать правильную строку версии.

-
Тело: В редакторе действия Quickchat выберите
JSONдля тела и вставьте следующую структуру:{ "start": "{{start}}", "eventTypeSlug": "call", "username": "patryk-lasek", "attendee": { "name": "{{name}}", "email": "{{email}}", "timeZone": "{{timeZone}}" } }Не забудьте заменить
eventTypeSlugиusernameна ваши собственные данные. Информацияattendeeдолжна быть вложенным JSON-объектом, как показано выше.
Готово. После настройки и сохранения этого действия у вашего AI-агента есть все необходимое, чтобы удобно бронировать встречи от вашего имени.
Проверьте ваш Endpoint
Чтобы убедиться, что все работает правильно, вы можете протестировать обе AI Actions: откройте их, прокрутите вниз до раздела API Endpoint и нажмите “Test Response”:

Шаг 3: Протестируйте нового ассистента по расписанию
Перед тестированием убедитесь, что страница AI Actions соответствует настройке, показанной ниже:

Теперь можно протестировать сценарий. Перейдите в AI Preview в панели Quickchat и начните новый диалог. Попробуйте написать, например:
“Я хочу забронировать демо на следующей неделе.”
Понаблюдайте, как агент:
- Запрашивает предпочтительные даты и часовой пояс.
- Получает и показывает доступные слоты из вашего календаря Cal.com.
- Запрашивает имя и email после выбора времени.
- Подтверждает, что бронирование завершено.
Устранение распространенных проблем
Возникают ошибки? Ниже несколько типичных причин и способы их исправления:
- Получаете ошибку
403 Forbiddenили404 Not Found? Еще раз проверьте, что для действия бронирования используется методPOST. Cal.com отклонит запросыGET, отправленные на endpoint/bookings. - Видите ошибку
400 Bad Requestо полях attendee? Это почти всегда означает, что тело JSON отформатировано неправильно. Убедитесь, чтоname,emailиtimeZoneвложены в объектattendee, а не находятся на верхнем уровне. - Запрос не выполняется из-за отсутствующего заголовка?
Каждый endpoint Cal.com v2 требует заголовок
cal-api-version. Используйте2024-09-04для/slotsи2024-08-13для/bookings. - Встречи бронируются на неверное время?
Убедитесь, что время
startв запросе бронирования отправляется в UTC.
Заключение
Поздравляем. Всего с помощью двух AI Actions вы превратили агента Quickchat в ассистента по расписанию. Теперь он может выполнять весь процесс бронирования, обеспечивая удобный опыт для посетителей сайта и освобождая вас от утомительного ручного согласования времени.
Это только начало. Благодаря гибкости API Cal.com и AI Actions от Quickchat вы можете добавить SMS-напоминания, последующие email и другие пользовательские автоматизации, например запись каждого бронирования в HubSpot как контакта и сделки. Возможностей много!