Пошаговые инструкции intermediate 13 мин

Как сделать ИИ-агента для календаря и встреч

Пошаговая инструкция по AI-агенту для календаря: Google Calendar, Outlook, CalDAV, free/busy, таймзоны, подбор слотов, создание встреч и approval.

AI-агенты автоматизация Инструкция Outlook календарь встречи Google Calendar CalDAV

Что получится

ИИ-агент для календаря помогает не “жить за человека”, а убрать рутину вокруг встреч: найти свободные слоты, предложить время, создать событие, добавить участников, подготовить повестку, перенести встречу и записать итог в CRM или задачу.

Хорошая первая версия не меняет календарь молча. Она проверяет доступность, предлагает варианты и просит подтвердить создание, перенос или отмену события. Это особенно важно, если календарь рабочий, а участники находятся в разных часовых поясах.

Где такой агент полезен

  • Продажи: назначить демо после письма или заявки.
  • Поддержка: запланировать созвон с клиентом по сложному обращению.
  • Рекрутинг: согласовать интервью с кандидатом и командой.
  • Руководитель: найти окно для 1:1 или планерки.
  • Обучение: записать человека на консультацию или вебинар.
  • Внутренняя операционка: переносить встречи, собирать повестку и напоминать о подготовке.

Шаг 1. Опишите разрешенные действия

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

Для первой версии обычно достаточно пяти действий:

  • прочитать свободное и занятое время;
  • найти несколько подходящих слотов;
  • создать черновик события;
  • отправить приглашение после подтверждения;
  • перенести встречу только после approval.

Отмену встреч, массовые рассылки приглашений и изменение чужих календарей лучше оставить на второй этап.

Шаг 2. Выберите календарный API

Для Google Workspace используйте Google Calendar API. Он позволяет работать с событиями, календарями, правами доступа и free/busy-запросами. Для Outlook и Microsoft 365 берите Microsoft Graph Calendar API: он умеет создавать события, читать календарь, получать занятость и искать подходящее время встречи.

CalDAV нужен, если календарь живет в совместимом сервере без удобного vendor API. Это открытый протокол для доступа к календарным данным, но в production с ним часто больше ручной работы: авторизация, форматы событий, повторяющиеся встречи и разные реализации серверов.

Шаг 3. Настройте минимальные права

Не давайте агенту право редактировать все календари сразу.

  • Для подбора времени достаточно чтения free/busy.
  • Для создания события нужен доступ на запись в конкретный календарь.
  • Для изменения и удаления событий нужны отдельные права.
  • Для корпоративного сценария лучше использовать OAuth и delegated access, а не пароль пользователя.

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

Шаг 4. Нормализуйте входной запрос

Пользователь редко пишет идеально: “давай во вторник после обеда”, “на следующей неделе после 15”, “созвон на полчаса с Иваном”. Агент должен превратить это в структуру.

{
  "intent": "schedule_meeting",
  "duration_minutes": 30,
  "time_window": {
    "date_from": "2026-05-25",
    "date_to": "2026-05-29",
    "preferred_part_of_day": "afternoon"
  },
  "participants": ["ivan@example.com"],
  "timezone": "Asia/Yekaterinburg",
  "needs_approval": true
}

Структура важнее красивого текста. Если агент не понял дату, длительность или участников, он должен задать уточняющий вопрос, а не угадывать.

Шаг 5. Работайте с таймзонами явно

Таймзоны - главный источник тихих ошибок в календарях. Храните время в ISO-формате, всегда указывайте timezone и показывайте человеку итог в понятном виде.

Минимальные правила:

  • у каждого участника должна быть известна или предполагаема таймзона;
  • слот должен проверяться в календаре каждого обязательного участника;
  • в интерфейсе подтверждения показывайте время и локальную таймзону;
  • не создавайте событие, если дата была распознана неоднозначно;
  • отдельно проверяйте переходы на летнее время, если участники из разных регионов.

Шаг 6. Получите занятость

Не нужно читать все детали чужих встреч. Для подбора времени чаще достаточно free/busy: календарь возвращает интервалы, когда участник занят, без раскрытия названий встреч.

Алгоритм простой:

  • взять желаемое окно дат;
  • получить занятость обязательных участников;
  • вычесть занятые интервалы из рабочего времени;
  • исключить слишком ранние, поздние и короткие окна;
  • вернуть 3-5 вариантов.

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

Шаг 7. Добавьте правила выбора слота

Модель может помочь объяснить выбор, но вычислять слоты лучше обычным кодом.

Правила могут быть такими:

  • встреча только в рабочие часы;
  • не ставить встречи в обед;
  • оставлять буфер 10-15 минут между созвонами;
  • не ставить больше трех внешних встреч подряд;
  • учитывать приоритет участников;
  • не занимать фокус-блоки и отпуск;
  • для клиента предлагать ближайшие 3 рабочих дня.

Так агент становится предсказуемым: он не “решает по настроению”, а применяет понятные правила.

Шаг 8. Создавайте событие через подтверждение

Перед созданием события покажите человеку карточку:

  • название встречи;
  • дата, время и таймзона;
  • длительность;
  • участники;
  • ссылка на созвон, если нужна;
  • описание и повестка;
  • что агент изменит в календаре;
  • кнопки “создать”, “изменить”, “отмена”.

После подтверждения агент создает событие и записывает id события в audit log. Это нужно для переноса, отмены и разбора ошибок.

Шаг 9. Подготовьте повестку

Календарный агент полезнее, если он не только ставит событие, но и помогает подготовиться.

Для встречи можно автоматически собрать:

  • тему и цель;
  • 3-5 пунктов повестки;
  • ссылку на CRM-карточку или тикет;
  • краткую историю переписки;
  • список документов;
  • вопросы, которые нужно уточнить на созвоне.

Если агент использует письма, CRM или документы, он должен показывать источники и не придумывать факты.

Шаг 10. Обрабатывайте переносы и отмены

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

Безопасный порядок:

  • найти событие по id или по контексту;
  • показать человеку найденное событие;
  • предложить новые слоты;
  • получить подтверждение;
  • обновить событие;
  • отправить уведомление участникам;
  • записать изменение в audit log.

Если найдено несколько похожих событий, агент должен спросить, какое именно переносить.

Шаг 11. Добавьте интеграции

Календарь редко живет отдельно. После создания встречи агент может:

  • добавить заметку в CRM;
  • поставить задачу менеджеру;
  • отправить письмо с подтверждением;
  • создать ссылку на Zoom, Google Meet или Microsoft Teams;
  • подготовить документ с повесткой;
  • отправить напоминание в Telegram или Slack.

Каждую интеграцию подключайте как отдельный инструмент с ограниченными правами. Не смешивайте “создать событие”, “отправить письмо” и “обновить CRM” в одну непрозрачную операцию.

Шаг 12. Протестируйте на реальных сценариях

Соберите тестовый набор:

  • “созвон завтра после обеда”;
  • “найди 30 минут на следующей неделе”;
  • “перенеси встречу с Иваном на пятницу”;
  • “назначь демо с клиентом из другого часового пояса”;
  • “поставь встречу, но не раньше 11:00”;
  • “отмени последнюю встречу с подрядчиком”.

Проверяйте не только ответ модели, но и фактическое событие в календаре: время, таймзону, участников, описание, ссылку на созвон и уведомления.

Минимальная архитектура

ИИ-агент для календаря состоит из шести блоков.

  • Calendar connector: Google Calendar API, Microsoft Graph Calendar API или CalDAV.
  • Intent parser: извлекает дату, длительность, участников и ограничения.
  • Availability engine: считает свободные слоты обычным кодом.
  • Policy layer: рабочие часы, буферы, запреты и приоритеты.
  • Approval UI: показывает будущие изменения перед записью.
  • Action layer: создает, переносит, отменяет событие и пишет audit log.

Модель лучше использовать для понимания запроса и подготовки текста, а не для математического расчета пересечений интервалов.

Частые вопросы

Можно ли агенту сразу создавать встречи без подтверждения?

Для личного теста можно, но для рабочего календаря лучше начинать с подтверждения. Автоматическое создание допустимо только для простых сценариев с понятными правилами: например, запись на консультацию в заранее выделенные свободные слоты.

Что безопаснее: читать календарь полностью или free/busy?

Free/busy безопаснее, потому что агенту не нужны названия и описания всех встреч, чтобы подобрать время. Детали событий стоит читать только там, где это действительно нужно: перенос конкретной встречи, подготовка повестки или поиск связанной CRM-записи.

Как не ошибиться с часовыми поясами?

Всегда храните дату, время и timezone явно. Перед записью показывайте человеку финальный вариант: “27 мая 2026, 15:00, Asia/Yekaterinburg”. Если дата или зона неоднозначны, агент должен уточнить.

Можно ли подключить Zoom, Google Meet или Teams?

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

Что делать с повторяющимися встречами?

Для первой версии лучше не редактировать серии встреч автоматически. Повторяющиеся события, исключения и перенос одного экземпляра легко сломать. Начните с одиночных событий, а серии добавляйте после отдельного тестирования.

Дальше по теме

Похожие материалы