Пример бота для записи на услугу в Google Календарь

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

Не мог не попробовать потестировать Google App Script в паре с Google Calendar. Было интересно также поработать в JavaScript с объектами класса Date. Есть конечно нюансы, к которым привыкаешь быстро, но в начале вообще не мог понять откуда выпадают исключения? Почему не работает? ...

На самом деле все просто, нужно читать мануалы - там все расписано.

Получился бот для записи на услугу.

При старте пользователю выводиться информация в текстовом формате, можно прикрепить картинку. Кнопки Записаться и Мои записи

Что было интересного в этом проекте:

Ну конечно же это форма записи, которая состоит из 5 шагов:

  1. Выбор даты
  2. Выбор времени
  3. Телефон
  4. ФИО
  5. Выбор типа оплаты

При выводе шага выбора даты, нужно выводить дни месяца в формате календаря

Необходимо было обязательно учесть некоторые моменты:

  1. По каждому дню проверить наличие времени для записи
  2. Учесть на какое максимальное количество дней возможна запись, в моем примере это 90 дней вперед
  3. Учесть текущее время при проверке, чтобы не показывать текущий день если в нем например уже нет времени для записи

Режим работы

workHours: ["09:00", "17:00"],
serviceDurationInMinutes: 30,
afterToday: 90

где:

  1. workHours - это режим работы
  2. serviceDurationInMinutes - длительность услуги в минутах
  3. afterToday - на сколько дней вперед от текущей даты можно записаться

Выходные и обеденный перерыв можно указать в самом Google календаре (используйте возможности повтора события), при выводе формы в боте это будет учтено. 

Расписывать код примера здесь не буду, практически все кто заглядывает на этот сайт ищут готовые решения, и только некоторым интересен сам процесс создания бота. Им предлагаю скачать файлы бота и посмотреть исходный код - все прокомментировано в лучших традициях. Если возникнут вопросы - welcome to forum!

Установка бота

Из новых настроек, которых нет в предыдущих примерах (в других статьях) появился только идентификатор календаря calendar: "" , который по умолчанию равен логину учетной записи Google, если вы создадите новый календарь в учетной записи Google, искать нужно в настройках календаря в разделе Интеграция календаря / Идентификатор календаря

В остальном также как и в установке примера Бот-магазин - в статье есть видео-инструкция.

Исходники BotAppointment.zip
36.2
2 комментария
Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте бот @iMakeBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.

  • Mikhail Belousov [2 недели назад]

    Доброго времени суток, для чего нужен файл BotAppointment с настройками роутера, куда его? 

  • Mikhail Belousov [2 недели назад]

    При первой отладке initApp выводит
    Invalid argument: id