G-Suite and Exchange Interop - Netwoven

G-Suite and Exchange Interop

By Arghya Roy  |  Published on November 28, 2017

G-Suite and Exchange Interop

1. Introduction

The document is intended for setting G-Suite and Exchange Calendar/Free/Busy Interop for user to allow sharing Free/ Busy and calendar across different organizations/domains. This can also be used to deploy the interop between O365 through on-premise exchange hybrid deployment in place.

2. Prerequisites

On port 443, enable inbound Internet connectivity so that the Exchange server can be reached by Google Calendar

3. Allow G-Suite Calendar users to see Exchange free/busy Data

a. Create an Exchange role account

– Create an Exchange role account—The Exchange role account should be a low-privilege account without an associated mailbox (mail-enabled user). The account will only be used for free/busy lookups. Google Calendar uses this account to authenticate to your Exchange server to look up the free/busy details of Exchange users.

Note: If you have an existing account that you use for OrgWide free/busy lookups from untrusted forests, you can reuse that account.

– Run the Set-AvailabilityConfig -OrgWideAccount command in the Exchange PowerShell (also known as the Exchange Management Shell).

G-Suite and Exchange Interop

b. Set up the Admin console

– In the Admin console of your primary domain, go to Apps and then G Suite and then Calendar.

G-Suite and Exchange Interop

– Click Calendar Interop management.

G-Suite and Exchange Interop

– Under Exchange Web Services URL, enter the URL of the Exchange Web Services (EWS) server associated with your Exchange server. This is the same Exchange server where you created the role account.

– In the Exchange Role Account box:

  • In the username@domain.com format, enter the Exchange role account username.
  • Click Enter Password and enter the password for the role account.
  • Renter the password to confirm.
G-Suite and Exchange Interop

– Ensure the Enable user availability lookups box is checked. Click Save changes.

4. Allow Exchange users to see G-suite user’s calendar free/busy data

a. Set up your G Suite users

– A G-Suite account with Google Calendar enabled.

– A mail contact on the Exchange server.

– Ensure that mail sent to the mail contact’s address is delivered to the user’s Gmail address for their G Suite account.

– Ensure that the mail contact appears in the Exchange Global Address List, so users can find it when setting up meetings.

– If a G Suite user also has an Exchange mailbox, make sure that the mailbox is hidden from the Global Address List. That way, the mail contact is selected (and the associated calendar availability is visible) when someone invites the user to a meeting.

– The Exchange server uses the role account to access G Suite so it can get the free/busy information of Calendar users. The account should be a standard user account and used only for Calendar interoperability.

– Open the credential generation tool >> https://calendar.google.com/Exchange/tools/authui

– Click Generate new credentials.

G-Suite and Exchange Interop

– When prompted, sign in as the Google role account, review the Terms of Service, and click Allow.

G-Suite and Exchange Interop

– Click Download to download the generated credentials. Save the credentials, as you’ll need them to add the availability address space to Exchange.

G-Suite and Exchange Interop

b. Add the availability address space

Open the Configuration tool. >>> https://calendar.google.com/Exchange/tools/configurator

Upload the credentials file for the Google role account that you generated in the previous step.

Enter the email of the local account on exchange that G-suite calendar can use to make “OrgWide” free/busy request.

Enter the name of the Google availability address space you wish to add to exchange.

Click Show Exchange setup.

G-Suite and Exchange Interop

– You are given a fragment of PowerShell code that can be pasted into the Exchange Management Shell of your Exchange server to configure the availability address space for the server.

G-Suite and Exchange Interop

– It will look like below

G-Suite and Exchange Interop

5. Verifying Free/Busy with Troubleshooting Tool

– Open the troubleshooting tool – For Calendar Interop >> https://calendar.google.com/Exchange/tools

– In the User to make free/busy query for box, enter the email address of the user, using one of the following options:

  • If you want to verify whether an Exchange user can query the free/busy status of a Google user, enter the email address of a user on Exchange.
  • If you want to verify whether a Google user can query the free/busy status of an Exchange user, enter the email address of a Google user.

– Here we have tested to lookup availability of exchange user “user@domain.com” and click on “Perform test”

G-Suite and Exchange Interop

– If any test fails then it will look like.

G-Suite and Exchange Interop
G-Suite and Exchange Interop

– It can be also tested from Exchange OWA and G-Suite email portal. In exchange OWA, we should check with “Schedule Assistant” at the time of creating meeting event or appointment.

Exchange to G-Suite

– In G-suite, we should check in “Find Time” adding in Guest area. Then it will show up the free/busy status.

G-Suite to Exchange:


  1. I really liked the detailed instructions you provided in this post. Thanks for a great tutorial, I will use it.

  2. This article was helpful in getting Free/Busy lookups working for us between Exchange 2013 and Google. Initially we were able to lookup Exchange contacts in Google but did have problems looking up Google contacts in Exchange. Below is what we did to fix it in case anyone experiences the same thing.

    It is not immediately apparently but setting the Google Availability Name / ForestName correctly in step 4b is very important in order for the lookups to work. You must make sure that this uses the domain name of the email accounts in your Google environment so that when the powershell code is generated it sets -ForestName appropriately. As detailed here: https://blogs.technet.microsoft.com/exchange/2018/02/06/demystifying-hybrid-freebusy-what-are-the-moving-parts/ when Exchange does a Free/Busy look up on a contact, if it can not find a local trusted domain it will then eventually search for a matching AvailabilityAddressSpace based off of the domain name of the contact. If it can’t find one then it fails.

    As an example if your Google email accounts use user@googledomain.com then you need to:
    1. Configure all your contacts using user@googledomain.com
    2. Configure your Google Availability Name / ForestName as googledomain.com

    Lastly after setting up the AvailabilityAddressSpace you need to wait 30-45 minutes for it to take effect so be patient. We wasted a lot of time figuring all this out so hopefully this helps someone.

Leave a comment

Your email address will not be published. Required fields are marked *

Unravel The Complex
Stay Connected

Subscribe and receive the latest insights

Netwoven Inc. - Microsoft Solutions Partner

Get involved by tagging Netwoven experiences using our official hashtag #UnravelTheComplex