Интеграции
Интеграция Telegram-бота с Google Calendar
Опубликовано
Задача
Бот показывает свободные окна и записывает клиента в Google Calendar. Слот занят, если на это время уже есть событие.
Проблема
Два человека открывают одно окно. Оба получают «вы записаны», а в календаре остаётся одна встреча или две на одно время.
Реальный сценарий
Клиент выбирает услугу и день. Бот читает занятые интервалы и предлагает свободные. После подтверждения создаётся событие. Если между чтением и записью окно забрал другой человек, второй получает отказ и новый список, а не тихое двойное бронирование.
Как устроен обмен
Календарь — источник занятости. Бот не держит отдельную таблицу слотов, которая расходится с событиями. Событие пишут в согласованный календарь сотрудника или услуги. Фраза «я вас записал» без события в календаре не считается записью. Сам сценарий визита разобран в боте для записи.
Что можно и чего нельзя
Можно показать свободные окна и создать событие. Нельзя гарантировать слот, если его не проверили в момент записи. Бот не наводит порядок в календаре, куда личные дела ставят без правила.
Польза
Администратор не сверяет чат с календарём вечером. Второй клиент не оказывается в том же окне без явного отказа.
Шаги внедрения
Выбирают календарь, длительность услуги и кто имеет право создавать события. Проходят две записи в одно окно почти одновременно, отмену и занятый день. После этого бота открывают клиентам, а запись в личные сообщения отключают.
Вопросы
Два клиента выбрали одно окно. Что увидит второй?
Отказ и новый список свободных окон, если событие на это время уже создано.
Слоты хранятся в боте?
Нет. Занятость читают из календаря при показе окон и ещё раз в момент записи.
Личная встреча сотрудника занимает слот?
Да, если она стоит событием в том же календаре. Бот увидит это время как занятое.