Интеграция с Google Calendar

Здравствуйте, друзья.

В этом уроке я хотела бы рассказать о том, как можно легко настроить синхронизацию бронирований с календарем Google.

Давайте предположим, что у нас уже есть простой ресурс для аренды 4-х квадроциклов по часам, у которого уже есть какие-то бронирования.

Среди тарифов мы имеем как разделяемый, для бронирования по одному квадроциклу, так и эксклюзивный для бронирования всех.

Кроме этого у нас имеется Google-календарь, на котором также имеются бронирования, как многодневные, так и часовые.

Для начала нам нужно открыть доступ для Bukza к нашему календарю. Для этого нужно перейти в настройки календаря. Затем открыть вкладку “Открыть общий доступ к этому календарю” и добавить нового пользователя с адресом google-calendar@bukza-service.iam.gserviceaccount.com и возможностью вносить изменения. После этого нужно нажать кнопку “Сохранить”.

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

Теперь откроем базовые настройки нашего ресурса и перейдем к редактированию основных настроек. Здесь мы видим кнопку “ДОБАВИТЬ GOOGLE КАЛЕНДАРЬ”. Нажмем на нее и в появившуюся форму вставим скопированный ранее идентификатор календаря Google.

Ниже мы видим две опции для экспорта и импорта бронирований.

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

Второй флаг требуется выставить, если мы хотим, чтобы события в календаре Google блокировали время нашего ресурса в Bukza. При этом будет происходить автоматическая синхронизация с календарем Google через определенные интервалы времени и в обязательном порядке при каждом бронировании в Bukza, чтобы исключить случаи перебронирования. Стоит отметить, что все внутренние бронирования, которые Bukza сама создала в Google календаре, помечены в нем особым образом, и они импортироваться и задваиваться не будут. Также стоит понимать, что импортируемые бронирования не появятся в списке бронирований в Bukza, а лишь только займут время на календаре и управлять ими можно только из Google календаря или же из систем, которые там их создали.

Теперь давайте выставим оба флага и сохраним эти настройки. При этом сразу произойдет полная синхронизация наших бронирований и событий в календаре Google.

Как мы видим все события из Google календаря и вправду заняли время на виджете. И наоборот бронирования из Bukza теперь стали видны на календаре Google. Здесь мы можем заметить, что количество занятых участников помечается в заголовке нашего события в виде числа в квадратных скобках. Если же такой пометки в заголовке не имеется, то считается, что занят весь ресурс, то есть в нашем случае - все 4 квадроцикла.

Теперь давайте сымитируем критическую ситуацию, когда происходит одновременное бронирование на Google календаре и в Bukza. И попробуем забронировать. При этом система производит предварительную синхронизацию и не дает нам забронировать.

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

Также при необходимости вы можете настроить импорт и экспорт из нескольких календарей одновременно, просто добавив еще один календарь в настройках ресурса.

Ну вот и все. Теперь мы научились синхронизировать наш виджет c Google календарями и сможем использовать их для синхронизации с внешними системами и агрегаторами, если они поддерживают импорт в Google календарь.

Всем спасибо!