Set up Calendar Interop

Allow Exchange users to see Calendar availability data

Next, set up Google Calendar availability sharing to allow Microsoft® Exchange users to see availability information for Google Calendar users.

If you are using a G Suite domain with an alias, make sure that you have set up your alias domain correctly before continuing. For details, see Set up Calendar Interop using a domain alias.

Set up Calendar availability sharing

Open all   |   Close all

Step 1: Set up your G Suite users

Make sure each of your G Suite users has:

  1. A G Suite account with Google Calendar enabled.
  2. A mail contact on the Exchange server. For details on creating a mail contact, see the following Microsoft instructions:
  3. Ensure that mail sent to the mail contact's address is delivered to the user's Gmail address for their G Suite account.
  4. Ensure that the mail contact appears in the Exchange Global Address List, so users can find it when setting up meetings. 
  5. 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.

Note: If you are using aliases, make sure mail contacts contain primary and secondary email addresses. The primary address should use the alias domain (so the availability lookup uses the alias address). The secondary address should use the main Exchange domain (so the contact can be found by users searching the Global Address List).

Step 2: Enable Internet connectivity

Enable outbound Internet connectivity so that the Exchange server can communicate with Google servers.

Step 3: Create a Google role account

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

  1. Create a user account in G Suite. This is the Google role account and is used by Exchange to access Google Calendar users' availability information. Events must be shared with the Google role account to be visible in Exchange. Ensure that this account doesn't get disabled or deleted. 
  2. Ensure Calendar is enabled for the account and that it has either free/busy or event detail access to check availability for all domain users. For event detail lookups to work, the Google role account must have event detail access to Google Calendar.
  3. Open the Credential generation tool
  4. Click Generate new credentials
  5. When prompted, sign in as the Google role account, review the Terms of Service, and click Allow
  6. Click Download to download the generated credentials. Save the credentials, as you'll need them to add the availability address space to Exchange.

Important

  • The credentials can be downloaded once, so be sure to save the file and store it in a secure place.
  • Generating a new set of credentials for the Google role account will revoke any old credentials created for this user. If you want to allow multiple Exchange servers to look up Calendar user availability information (for example, you're using a hybrid Exchange/Office 365 environment), generate the credentials once and use them for all your Exchange servers.
  • If the credentials are revoked, reconfigure your Exchange server as explained in the next step.
Step 4: Add an availability address space to Exchange

Google Calendar must be added as an availability address space in Exchange to allow Exchange to query G Suite for the mail contacts that you set up earlier.

To do this, for each G Suite domain, you need to run several commands in the Exchange PowerShell (also known as the Exchange Management Shell). When you run commands, you need to set certain parameters. The configuration tool provides PowerShell code with the parameters required. 

Add the availability address space

  1. Open the Configuration tool.
  2. Upload the credentials file for the Google role account that you generated in the previous step.
  3. Set the version of the Exchange server you are configuring and provide the forest name. If you are using a G Suite alias domain, the forest name should include the alias.
  4. Click Show Exchange setup. 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.

    For details on adding an availability address space, see the following Microsoft instructions:

  5. Paste the code as a single line into the Exchange Management Shell of your Exchange server. If the availability space already exists, you'll be prompted to remove it. It must be removed for the new availability space to be added.

Example

If your Google users' addresses are in the G Suite alias domain @alias.altostrat.com, and you are setting up Calendar Interop for Exchange 2013 or 2016, or Office 365:

if ((Get-AvailabilityConfig) -ne $null) { 
     Set-AvailabilityConfig -OrgWideAccount interop@alias.altostrat.com; 
} else { 
    New-AvailabilityConfig -OrgWideAccount interop@alias.altostrat.com; 
}
$password = echo "vj4XJ711VM6uRfNUZQRzHsBd5rI9qtSwqR9XvDFBDYW_gDawBakTFWLJqqn3SHvZ" | ConvertTo-SecureString -asPlainText -force; 
$credentials = New-Object System.Management.Automation.PSCredential -argumentList "alias.altostrat.com\interop", $password; 
Remove-AvailabilityAddressSpace alias.altostrat.com -ErrorAction SilentlyContinue -Confirm:$false; 
Add-AvailabilityAddressSpace -forestName alias.altostrat.com -accessMethod orgwidefb -credentials $credentials-targetAutodiscoverEPR https://calendar.google.com/autodiscover/autodiscover.xml

Step 5: Wait or restart the Exchange server

After you run the Add-AvailabiltyAddressSpace command, it may take some time for the change to take effect. If you see a delay and want the changes to take effect immediately, restart your Exchange server.

Next step

(Optional) Set up Exchange resource booking

 

Was this article helpful?
How can we improve it?