arrow_back_ios

How does the Google Calendar integration work in detail?

Google Calendar notifies our service about changes, and we update the occupied time on our side immediately (but no more than once per minute). In addition, our service polls the calendar periodically on its own—in case a notification does not arrive. When an order is being completed, we perform a preliminary synchronization so that overbooking cannot happen.

Sending reservations to Google Calendar

Only orders with time-blocking statuses are sent to Google Calendar. Whenever any order or reservation data changes, we immediately update the event in Google Calendar—both its time and its title. The event title always starts with the word "Bukza", followed by the number of shares in square brackets (when booking shared price options). The rest of the title is built from the template you specify and can contain any order data. We also mark the events we send to Google Calendar with a special internal property, so that we can tell them apart from third-party events.

Getting events from Google Calendar

We import events from Google only within a rolling period: from the beginning of the current month through the end of the next year. Imported events are not converted into actual reservations; they only block resource time in Bukza. Recurring events from Google Calendar are also taken into account—each occurrence of the series blocks the corresponding time in Bukza. Occurrences of recurring events are also limited by the rolling synchronization period.
When we receive data from Google Calendar, we skip Bukza events to avoid duplicating them. Changes to third-party (non-Bukza) events made in Google Calendar are also reflected in the Bukza calendar during synchronization. However, you should not modify events marked with the Bukza text in Google Calendar. Such a change does not affect the original reservation in our system, and the edits themselves will be overwritten the next time the order changes.
If you want a specific event not to occupy time, mark it as "Free" in Google Calendar—we skip such events.

How we protect you from overbooking

The system will not let a reservation be completed on the Bukza side if an event for the same time appears in your Google Calendar at that very moment. To do this, we first occupy the time in Google Calendar with an empty event that carries no order details (the title template is not applied)—it holds the slot for us. We then fetch the data from Google Calendar again and check that the time is still available:
  • If it is available—we update the event title with the final data.
  • If it is not available (the slot is already taken)—the reservation is not completed, and the empty event is deleted right away.
This full check works when both sending and receiving are enabled for the calendar. Otherwise:
  • If only receiving is enabled—we simply guarantee that fresh data has been fetched from Google Calendar at the moment the reservation is completed.
  • If only sending is enabled—the reservation is completed without delay: the event is sent to Google Calendar right after the reservation is finished, without holding you up or interrupting the process.
Overbooking protection runs only when an order moves from a status that does not block time to one that does. If a manager changes or adds reservations in an order that already blocks time, that action is not blocked—even if there is an event for the same time in Google Calendar. The unavailability will, however, be highlighted in the interface.

Number of reserved shares

In the title of your own event, you can add a number in square brackets. Our system will interpret this as the number of reserved shares for the resource—the Total share count of the reservation.
If the number of reserved shares is not specified, the entire resource is considered booked.