Overview
Our powerful two-way sync feature allows your organization to pair Skedda spaces to Google Workspace (GW) room resources and have events/bookings on one side be synced with full integrity to the other.
This allows your users to review availability (of rooms/attendees) on the Google side and create/manage bookings that will be synced to the Skedda platform. Bookings (with or without attendees) can also be created/managed on the Skedda side and these will be synced to Google.
Check out our FAQs for more information!
How it works
This section outlines how two-way sync works for your organization if you're using Google.
1. Open your calendar
In Google Workspace, open your calendar:
2. Select the preferred date and time for your event
Select the preferred date and time for your event (this can change later depending on your attendees’ availability):
3. In the event composer that appears, click “More options”
In the event composer that appears, click “More options”:
4. Select the people (attendees) you’d like to meet with
The page that appears will allow you to search for the various guests (attendees) you want to add to your event:
5. Click "Rooms"
In order to secure the desired room for your event, click “Rooms” to be taken to the search option for the list of rooms available to you:
6. Add the room you’d like to book
Next, add the room you’d like to book for your event by searching for it in the search facility:
7. Click "Find a time"
Next, in order to make sure you choose the best time for your event (based on attendee and room availability), click “Find a time”:
8. Confirm final date/time details for your event
Now that you can view availability for all your attendees and the room you have selected. Choose the best time for your event:
9. Optionally add “Google Meet video conferencing” to the event
If required, you can add Google Meet video conferencing details to the event:
10. Save the event… booking synced to Skedda
This is where the magic happens... Once you save the event in Google, your booking will be synced to Skedda for the appropriate meeting room!
* Skedda-to-Google bookings *
As the name suggests, "two-way sync" allows you to make bookings for rooms in Skedda, and these will be synced to Google for the appropriate room!
Settings and setup
This section outlines the process you can follow to set up two-way sync for your venue.
1. Set your time granularity to 15 minutes
Two-way sync requires that you set your time granularity in Skedda to 15 minutes. This is to ensure that synced bookings from Google have the highest chance of aligning correctly with the strict intervals that always exist in Skedda.
You can set your time granularity to 15 minutes in your "Basics" settings page:
2. Remove all pricing rules
It's worth noting that both pricing rules and online payments aren't things we expect many prospective users of two-way sync to have in place, if any. In the likely case that this is true for your organization, feel free to skip these steps (step 2 and 3)!
Two-way sync requires that you remove all pricing rules from your Skedda system. This is because Google does not support the notion of chargeable bookings.
You can delete your pricing rules from your "Pricing" settings page:
3. Disable online payments
Two-way sync requires that you disable online payments in Skedda. This, as mentioned above, is because Google does not support the notion of chargeable bookings.
You can disable online payments from your "Online Payments" settings page:
4. Unlock the feature for your domain
If you don't already see your domain listed on the "Microsoft 365/Google Workspace" settings page, then the next step is to reach out to Skedda support. Ask for the feature to be enabled using the support chat widget in the bottom right.
As part of this process, we may need to verify the domain you want to use (i.e. the domain corresponding to your Google tenant) for security reasons.
5. Create your butler user
Special note: If you are switching from our one-way sync feature, you should already have a butler user in place. Please feel free to reuse this butler for two-way sync! We will ensure that the bookings for your butler from one-way sync are replaced as part of the move to two-way sync, so that your provider (Google) will reflect the bookings in Skedda at the point you initiate the sync.
The next step is to create the user account in your Google tenant that will serve as your butler. This needs to be done by a tenant administrator (i.e. someone in your organization with the ability to create user accounts).
Your tenant admin can refer to the GW docs if they need assistance creating a user account.
General recommendations for your butler user
Choose an account name that will make the nature of the account clear to everyone. We often recommend "Two-Way Sync Butler" (i.e. first name "Two-Way Sync", second name "Butler"), but you can also choose something like "Skedda Butler" or "Service Account".
We encourage you to appropriately secure the login to the butler user account considering your organization's usual policies. There should be no reason for anybody to need to log in to the butler account, so one approach could be to use a secure-password generator to set a very complex login password for the user and not share it with anyone (i.e. "throw it away"). In the rare case that you do ever need to log in to the butler account (e.g. perhaps to diagnose a full mailbox), then a tenant admin can reset the login in order to gain access.
The butler user needs nothing more than a standard calendar and mailbox, so follow the "least privilege" principle and avoid granting it access to other organizational resources.
The butler account should not be a "shared mailbox" account in Google. It should be a "normal" user account. If you use a "shared mailbox" account as a butler user, certain aspects of the integration may not work correctly (e.g. Google Meet conference links).
6. Connect Skedda to Google
Head to Settings => Microsoft 365 / Google Workspace in Skedda and click the button "Enable calendar sync".
The configuration items to complete are explained below:
In the configuration modal select your provider: "Google Workspace"
In the "Sync type" dropdown, select: Two-Way Sync
Enter the email of the butler you created in Step 5 in the "Butler" field.
When creating a booking in Skedda and adding attendees, the user can always enter a query to search their own contacts (which then display for selection in the dropdown list). If you check the "Allow users to search the full organizational directory" checkbox, the list will additionally include matches from the organization's full directory of users. This option also increases the number of "scopes" that you need to grant when you give Skedda permissions in your tenant.
Additionally, if this box is unchecked, we won’t be able to detect your users' personal details (first name, last name) and will have to use “Unknown” for these values if we have to create their Skedda account when placing their events in Skedda.
If you want Skedda to sync user photos from your provider and display them in useful areas of the Skedda interface, check the "Sync and display user photos" checkbox. See the dedicated support document on user photos for more information.
The person taking these steps needs to have the ability to add an API client for domain-wide-delegation in the Google Workspace tenant.
In the Google Admin portal, navigate to Security => API Controls => Domain-wide Delegation.
Choose to add a new API client. The client ID for Skedda's app is: 109008754067382315209. Also, copy and paste the comma-separated list of "scopes" required for your integration from the settings modal in Skedda (as shown in the big blue message). Here's how it should then look on the Google side:
Click "Authorize".
Save changes...
Once you've added the Skedda app to your tenant, you can click the "Save" button in Skedda. Skedda will then do a number of tests to make sure it can do everything it needs to do for the integration to work correctly. If these tests all pass, you're done connecting Skedda to your tenant and you can continue with the next step! If the tests don't pass, you've double-checked everything with respect to the validation error shown and you don't know how to proceed, reach out to Skedda support for assistance.
Finally...
For each room your want to sync with Skedda, you will need to grant one last permission to your Skedda butler user.
To do so, complete the following steps:
Using a Google administrator account with Calendar management privileges, navigate to your Google Calendar settings
If the room in question (the room you want to sync with Skedda) is not in your settings yet for my calendars list, add it by clicking "Add calendar" -> "Browse resources" -> and select the room itself by checking its box
Next, click on your room calendar in the "settings for my calendars list" -> "Share with specific people or groups" -> "Add people and groups"
Choose your Skedda butler user and assign the "Make changes to events" permission:
Repeat these steps for each room you'd like to sync with Skedda!
7. Create sync pairs in Skedda
Before you move forward with Step #7, please carefully read the following important note!
Important note: what happens when you activate Two-Way sync for your spaces/resources?
There are some significant impacts to enabling Two-Way Sync for your Skedda spaces and Google resources that we've outlined below. You should only proceed with this step if you're happy with the following things happening to your systems when you begin mapping space-resource pairs in Skedda.
Before we enumerate the steps, it's worth commenting on the general approach we've taken for the initial sync procedure. We consider the Google side the "primary source" of information for the initial sync, and the Skedda side a "secondary source". That is, our initial-sync procedure is designed to completely "clean out" the Skedda space (i.e. delete all existing Skedda bookings for the space), then fill it with all the information obtained from the events for the Google resource, then perform a "best-effort" restoration of the Skedda-side bookings that were cleaned out. In this way, we're able to retain as much information as possible from both sides, while ensuring basic sync integrity once the process has completed.
Here are the steps in detail:
(1) Finding and noting all upcoming bookings you have for the Skedda space
First, we'll find and note the upcoming bookings you have for the Skedda space being paired. We'll need these later in the process to achieve our "best effort" restore after populating Skedda with all events obtained from the Google side. The upcoming bookings that we note in this step are those which align with the basic requirements for two-way sync:
Only those bookings for "today or later" are noted for later restoration. Past bookings are not.
With the exception of “Internal” bookings, only those bookings with an actual booking holder are noted for later restoration, because we require all (non-”Internal”) bookings for synced spaces to have a booking holder with an active calendar on your provider (Google). "Casual-user" bookings and "Unavailable" bookings are hence not noted for later.
Bookings with an existing one-way sync relationship are noted for later restoration (as long as they also satisfy the above conditions).
Bookings with an existing two-way sync relationship with an external GW event are not noted for restoration (such bookings will however have an equivalent event on the Google side that will be copied over in the later step in the process, assuming the external resource in question is the same).
Note: Skedda won’t sync events that contain more than 10 booked synced resources, and will delete these in Google instead of placing them in Skedda during the initial sync. Before you proceed, please consider "breaking up" such resource bookings into individual events that do not reserve more than 10 resources at a time.
(2) Deleting any one-way sync bookings
Next, if any one-way sync bookings were found in the first step, we go and delete them from the "butler" calendar on the Google side. The intuition here is that these events will end up being recreated directly in the "resource" calendar, so we need to remove the equivalent "butler" events in order to prevent a double-up.
(3) Deleting all bookings from the Skedda space
Next, we delete all bookings from the Skedda space. Bookings for multiple spaces will be retained on Skedda for their other spaces (i.e. if you're pairing space A on Skedda with resource X on Google and there's an existing booking on Skedda for spaces A and B, then space A will be removed from that Skedda booking).
(4) Inspecting the external Google resource for all upcoming events
Next, we inspect the external Google resource, find all the upcoming events for it and add these to the Skedda side. In certain edge cases, events may not be able to be added to the Skedda side at all (i.e. events that span midnight, events that violate a Skedda space-sharing relationship). In such cases, the relevant organizers will be notified that their event has been cancelled.
In addition, some adjustments may be made to the events on the Google side in order to make a 2WS relationship possible for them:
We will appropriately adjust any events in your Google resource that do not have start and end times that end on 15-minute intervals.
We will shorten any repeating/recurring events in your Google resource to be for 730 occurrences into the future at the maximum. This is due to Google-side limitations for the sync function.
(5) "Best-effort" attempt to restore original Skedda bookings for the space
Finally, using the set generated from step 1, we do a "best-effort" attempt to restore the original Skedda bookings for the space. Note that all custom-field values and check-in information for these bookings will be lost. There are also a few cases in which a given booking will not be able to be restored at all. These include:
If it conflicts with a booking that was added from the Google side in step 4 above,
If the booking holder doesn't exist on the Google directory.
Lastly...
The initial sync process CANNOT be cancelled once it has been scheduled, so make sure you triple-check your pairing before you add it!
Back to Step #7...
Now that you've connected Skedda to Google, the last step involves creating sync pairs (mapping) between spaces in Skedda and their corresponding rooms/resources in Google. This guide assumes that you have already created rooms in Google.
To create sync pairs, under the "Sync Resources" section:
Click "Sync new resource"
In the modal that appears, select from the respective dropdowns:
the Skedda space you want to sync
the Google resource/room you want to sync
Click "Sync" to complete the pairing
Skedda will perform some background work to action your request (this takes place for a few minutes after you've clicked "Sync", so keep an eye on your settings page to check the progress of this step!)
Once you've paired your FIRST resource, STOP! Wait a few minutes until our background work is completed, refresh your browser, and inspect both your Google room and Skedda space for any inconsistencies. In the unlikely event that something has not gone as expected, please reach out to us so we can investigate further before you proceed with further pairing (you should be inspecting your resource-space combo for any inconsistencies "from today onwards").
You can then move on to pair your next resource after confirming that your first pair has synced successfully
8. Unsyncing space-resource pairs
You can unsync space-resource pairs by heading over to your "Microsoft 365 / Google Workspace" settings page, and clicking the "Unsync" button next to the space-resource pair you'd like to unsync.
Private Events
Skedda does support the syncing of private events in Google that are explicitly marked as “Private” by the event organizer.
If you have more complex privacy/visibility rules in Google that you want mirrored in Skedda, we recommend making use of our “Access & visibility” rules to set up policies that make sense for your organization.
FAQs
This section includes answers to a number of frequently asked questions about how Skedda's two-way sync feature works.
What happens if two-way sync "breaks"?
If two-way sync stops working for your organization, for any reason, our Support Team will reach out to you, as soon as we detect an error, with information on how to fix the issue. In general, the most likely reasons a sync will "break" are:
Resource deleted in provider: if you delete a resource on your provider side, but haven't unsynced the space-resource pairing in Skedda, then this will create an error and we'll see this flagged in our logs. Our team will reach out about this if we see it happen! (We do recommend, of course, that you "unsync" the pairing before you delete a resource in your provider to avoid this error altogether!)
Permissions revoked/error: Skedda relies on a number of permissions to be granted in order to make the two-way sync between your spaces and resources work. If these permissions are revoked for whatever reason, we will see this flagged in our logs. Our team will reach out about this if we see it happen. (Again, we recommend "unsyncing" their space-resource pairs in your Skedda account before changing any permissions you've given Skedda deliberately.)
If you delete a space in Skedda, we will automatically remove the sync pair that exists for the affected space, which will avoid triggering any errors on our side. The assumption here is that you are happy to take this action given that you're deleting the space on the Skedda side.
Are charged/paid bookings in Skedda supported by two-way sync?
No, charged/paid bookings in Skedda are not supported. This is because Google does not support the notion of chargeable bookings in the way Skedda does, and there's also no intuitive way to make users aware that they're making a booking for a space that will attract a charge via Google's interface.
Are overnight bookings supported?
No, overnight bookings are not supported. This is in keeping with our current platform logic and numerous customizable venue rules/logic that rely on booking durations being constrained to 24-hour calendar-day periods at the maximum.
If your users need to book out a meeting room for a purpose that will span across midnight, we recommend they create two bookings to cover the full duration across the two calendar days.
Are repeating bookings supported?
Yes, repeating bookings are supported! Google will limit recurring bookings for up to 1,080 days ahead (if you've specified this to be the uppermost limit), and Google will limit recurring bookings for up to around 730 occurrences.
Does two-way sync respect my Skedda venue rules?
To allow for the smoothest booking experience, all two-way sync bookings from Google will disregard venue rules in Skedda. Google doesn't respect Skedda's sophisticated rules engine and doesn't give us an opportunity to tell users that a booking they're making on the Google side wouldn't be "allowed" by your Skedda venue's rules before it gets made.
With this in mind, disregarding venue rules for all bookings made from the Google side allows for a no-hassle booking process for your meeting rooms, and allows your users to avoid the confusion that would have arisen from attempting a failed booking in Google with no insights as to why it wasn't allowed before making it.
Can we use two-way sync and one-way sync at the same time?
No, you can only use two-way sync or one-way sync at any given time - not both.
Can we set up an integration with both Microsoft and Google at the same time, or two separate Google tenants at the same time?
No, you can only integrate with one tenant/provider at any given time.
How does two-way sync handle "race conditions"?
"Race conditions" refer to the rare case where two bookings come in requesting the same space/resource at exactly the same time, one from Skedda and the other from Google.
In these cases, we will treat Skedda as the "system of record/ground truth" and remove the Google booking that conflicts with the booking in Skedda.
What happens with bookings that don't begin and end at 15-minute intervals?
Skedda will require that all two-way sync bookings from Google must have durations that respect the 15-minute time intervals set in the platform. This means that, for example, a booking that runs from 10:12 am - 13:51 pm will not be allowed to stay this way when synced.
Here are a few examples of what we mean:
Original booking | Changes to |
1:53 PM-2:07 PM | 1:45 PM-2:00 PM |
1:55 PM-2:05 PM | 1:45 PM-2:00 PM |
1:59 PM-2:01 PM | 1:45 PM-2:00 PM |
1:45 PM-1:46 PM | 1:45 PM-2:00 PM |
1:52 PM-2:06 PM | 1:45 PM-2:00 PM |
2:01 PM-2:16 PM | 2:00 PM-2:15 PM |
2:02 PM-2:18 PM | 2:00 PM-2:30 PM |
What is the logic behind such behavior? We apply the following adjustment logic to all cases:
We will round all bookings up to the closest 15-minute interval step.
We will choose the 15-minute interval time-point start that allows the adjusted booking to maximally cover the original event that came from the Google side.
In cases where there are two bookings that require adjustment and that tie, we will resolve these by using the earlier 15-minute interval.
This results in a clash-free system that provides your users with as close a booking as possible to the original booking they synced from Google.
It's important to clarify that this logic applies only to bookings that don't start and end at 15-minute intervals. The vast majority of "regular" booking durations will not require adjustment, for example, an 8:00 am - 8:15 am stand-up meeting, a 10:00 am - 11:00 am board meeting, a 13:00 pm - 13:30 pm project planning discussion, etc.
What happens with bookings that are shorter than 15 minutes?
As outlined above, our "adjustment logic" will kick in to round all bookings shorter than 15 minutes up to 15-minute bookings.
What subscription is required to use two-way sync?
Two-way sync is available to all Premium-tier subscriptions at no additional cost!
Why do I need to disable pricing rules and online payments, and select a 15-minute time granularity to use two-way sync?
Pricing rules and online payments
Pricing rules and online payments are not supported by Skedda's two-way sync feature. This is because Google does not support the notion of chargeable bookings in the way Skedda does, and there's also no intuitive way to make users aware that they're making a booking for a space that will attract a charge via Google's interface.
15-minute time granularity
Skedda requires that venues have a time granularity set in the platform settings that enforce uniform start/end times across set intervals of time: 15 minutes, 20 minutes, 30 minutes, and 1 hour. Bookings are not allowed to have start/end times that do not land on the intervals as set in the platform settings.
With this in mind, to ensure that the highest number of synced bookings from Google come through successfully without needing adjustment (as outlined in this FAQ), we require that venues set the smallest time granularity possible - 15 minutes.
Does two-way sync support custom fields?
No, custom fields are not supported for two-way sync bookings. This is because Google do not have equivalent fields to support the reception, and editing, of such custom fields found in normal Skedda bookings.
You can make bookings on the Skedda side and include custom fields, but these fields will not be synced across to bookings in Google.
What happens if a booking from Google "can't work" in Skedda?
If a booking from Google for a meeting room can't be synced to Skedda, the relevant user will receive an email notifying them of the reason for this issue. Generally, the only reasons a booking won't get synced are:
There is already a booking in place for the space in Skedda (i.e. very shortly before they attempted to book the space, it was booked by another user).
There is already a booking in place for a dependent space in Skedda (this will only be relevant if you use space-sharing rules for your meeting rooms).
The user attempted to sync an overnight booking from Google to Skedda (as outlined in this FAQ, these are not supported).
It has a recurrence rule that is not supported in Skedda (for example, an event that repeats on the 29th/30th/31st of the month)
What happens if a resource pairing fails while I'm setting it up?
Most likely, this will be as a result of a permission failure. When you click "Save" for the given space-resource pair, we'll add it to your list of pairs. At this point, we attempt to complete the subscription process. If we fail to complete the subscription process at this stage, we'll let you know with an error message.
In order to resolve this issue, we recommend that you double-check that you've assigned the correct permissions to Skedda, in order to support the two-way integration. These permissions are typically granted during the setup instructions that you'll find in the sections above. After this, you can remove the affected sync pair and attempt the pairing again.
If, after you've double-checked this, the error persists, please reach out to our team and we can assist further.
What happens if we unsync our spaces from our rooms/resources?
If you unsync your space pairings, we'll stop syncing bookings across Skedda and Google, and schedules between these two systems will no longer be kept current with each other.
Will our Google-side integrations work with two-way sync?
Bookings made from the Google-side with all the relevant controls in the event composer will be able to fire off any integrations that you've set up in this way.
As with one-way sync, all known 3rd-party integrations will not work for bookings initiated in Skedda.
Can users without an active calendar on our tenant/provider book two-way sync spaces?
No, all bookings for two-way sync spaces must have holders with active calendars on the tenant/provider that you've connected to Skedda for your two-way sync integration. We require an active calendar in order to place the synced booking from Skedda into Google, thus reserving the synced space.
If a user without a calendar on your tenant/provider attempts to make a booking, we'll remove the booking from Skedda and ensure that it is not synced to your external provider in order to ensure scheduling integrity across both platforms.
We enforce this constraint to ensure total scheduling integrity between your external provider and your spaces in Skedda. Without an active license (and, in turn, a calendar) the user in question wouldn't be able to access your resources in Google, and we therefore assume that you wouldn't want them making bookings for the same spaces in Skedda (which, as previously mentioned, would cause integrity issues across the two systems in any case).
Are private events supported?
Yes - we support events explicitly marked as ‘Private’ when they get made by the organizer. If you want a more advanced setup, be sure to make your Skedda ‘Access & visibility’ rules match what you’ve got configured in Google.
Can we use Two-Way Sync with our own meeting room tablets?
We support the use of Logitech Tap Schedulers in tandem with our Two-Way Sync feature. Furthermore, we also offer our own “tablet view” that you can use on a number of tablet devices readily available in most territories.
If you have another hardware provider you’re considering, feel free to reach out to us to discuss compatibility with our platform.
How many sync pairs can we set up?
You are currently limited to a maximum of 100 sync pairs for your two-way sync setup! This means that you can only connect 100 room resources to your spaces in a given Skedda venue you own.
If this limit is too low for your organization, please reach out to our Support Team and we'll share this feedback request with our Product Team!
Can we book rooms through group calendars?
No - all events must be booked by a single user, with an active and licensed Google calendar in place in order to be placed successfully by Skedda (we require a single user to be the holder of all bookings).
Can I create events directly on/as a room calendar in Google?
No - all events must be booked by a singular user calendar, with an active and licensed Google calendar in place, where the event created by that user secures the room by adding it to the event.
Questions?
Still have questions? Reach out to our team. We're here to help!