arrow_back_iosВопросы
help

Как работает синхронизация с календарем Google в деталях?

check_circle
Google календарь уведомляет наш сервис об изменениях, и мы мгновенно обновляем занятость на своей стороне (но не чаще чем 1 раз в минуту). Дополнительно наш сервис и сам периодически опрашивает календарь — на случай, если вдруг уведомление не пришло. При завершении заказов мы производим предварительную синхронизацию, чтобы не случилось перебронирование.

В Google календарь

На календарь Google отправляются только заказы со статусами, которые блокируют время. При любом изменении данных заказа или бронирования мы сразу обновляем событие в Google календаре — и его время, и заголовок. Заголовок события всегда начинается со слова «Bukza» и следующего за ним числа участников в квадратных скобках (при бронировании совместных тарифов). Остальная часть заголовка формируется согласно указанному вами шаблону и может содержать любые данные заказа. Также мы помечаем отправленные в Google календарь события специальным внутренним свойством, чтобы отличать их от сторонних событий.

Из Google календаря

Мы получаем события из Google только в скользящем периоде с начала текущего месяца и до конца следующего года. Полученные события не преобразуются в полноценные бронирования, а только блокируют время ресурсов в Bukza. Повторяющиеся (циклические) события Google также учитываются — каждое вхождение серии блокирует соответствующее время в Bukza. Вхождения повторяющихся событий также ограничены скользящим периодом синхронизации.
При получении данных из Google календаря мы пропускаем события Bukza, чтобы их не задублировать. Изменения сторонних (не Bukza) событий на стороне Google календаря также отражаются в календаре Bukza при синхронизации. Но изменять события, помеченные текстом Bukza, в Google календаре не следует. Это изменение не влияет на оригинальное бронирование в нашей системе, а сами правки будут затёрты при следующем изменении заказа.
Если нужно, чтобы отдельное событие не занимало время, пометьте его в Google календаре как «Свободен» (Free) — такие события мы пропускаем.

Как мы защищаемся от перебронирования

Система не позволит завершить бронирование на стороне Bukza, если в этот же момент в вашем календаре Google появится событие на то же время. Для этого мы сначала занимаем время в Google календаре пустым событием без деталей заказа (шаблон заголовка не применяется) — оно закрепляет слот за нами. Затем заново получаем данные из Google календаря и проверяем, что время всё ещё доступно:
  • Если доступно — обновляем заголовок события финальными данными.
  • Если недоступно (слот уже занят) — бронирование не завершается, а пустое событие сразу удаляется.
Такая полная проверка работает, когда для календаря включены и отправка, и получение данных. Иначе:
  • Если включено только получение — мы просто гарантируем, что в момент завершения бронирования получили из Google календаря свежие данные.
  • Если включена только отправка — бронирование завершается без задержки: событие отправляется в Google календарь сразу после завершения брони, не задерживая вас и не прерывая процесс.
Защита от перебронирования выполняется только при переводе заказа из статуса, не занимающего время, в занимающий. Если управляющий меняет или добавляет бронирования в заказе, который уже занимает время, это действие не блокируется — даже если в Google календаре есть событие на то же время. Но в интерфейсе такая недоступность будет подсвечена.

Число занятых мест

В заголовке своего события вы можете добавлять число в квадратных скобках. Наша система будет воспринимать его, как число занятых мест ресурса - Число участников бронирования.
Если число занятых мест не указано, считается, что забронирован весь ресурс.
Не нашли ответа на ваш вопрос?
Задайте его нам на
mail_outline support@bukza.com