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 you have set up your alias domain correctly before continuing. For details, see Decide whether to use 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:

  1. Has a G Suite account with Google Calendar turned on or off.
  2. Has a mail contact on the Exchange server. This helps Exchange retrieve availability information from Google. For details on creating a mail contact, consult your Microsoft documentation.
  3. Ensures mail sent to the mail contact's address is delivered to the user's Gmail address for their G Suite account.
  4. Ensures the mail contact appears in the Exchange Global Address List, so users can find it when setting up meetings. Adding contacts can be scripted using a combination of Microsoft PowerShell and Google Directory API.
  5. Ensures the mailbox is hidden from the Global Address List, if a G Suite user also has an Exchange mailbox. This 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 domain 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: Turn on internet connectivity

Turn on outbound internet connectivity so 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 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. For events to be visible to Exchange users, events must be shared with the Google role account. Ensure this account is not turned off or deleted.
  2. Turn Calendar on for the account and ensure 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. When setting permissions, the Google role account settings must match the Calendar Interop settings (with the lowest permission set taking effect).

  3. Open the Exchange authentication credential generation tool.

    You must be signed in as a super administrator for this task.

  4. Check the I understand that regenerating these credentials will revoke any old credentials for the Google Role Account box.
  5. Click Generate new credentials.
  6. When prompted, you must sign in as the Google role account to generate credentials for this new account created above. Do not sign in as the current user.
  7. Once logged in with the Google role account, review the Terms of Service and click Allow.
  8. Click Download to get the generated credentials. Save the credentials, as you'll need them to add the availability address space to Exchange.

Important

  • The credentials can only 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 existing 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.
  • Use an account with non-administrator privileges.
  • If you want to stop propagating free/busy to your Exchange users, delete the role account.
  • 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 you set up earlier.

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

Note: For details on how to connect to Exchange Server PowerShell, consult your Microsoft documentation.

Add the availability address space

You must be signed in as a super administrator for this task.

  1. Open the Exchange server configuration tool.
  2. Upload the credential file for the Google role account you generated in the previous step.
  3. Select the Exchange server version option you are configuring.
  4. Specify the email of the local account on Exchange that Google Calendar can use to make organization wide free/busy requests. For example, interop-svc@exchangedomain.com.

    Note: The local account email should be the Exchange role account.

  5. Specify the Exchange forest name of the Google availability address space you wish to add to Exchange. For example, gsuite.altrostrat.com.

    If you are using a G Suite alias domain, the Exchange forest name should include the alias.

    Note: The Google availability address space should be either the G Suite domain or the G Suite alias domain. Do not use the Google role account.

  6. Click Show Exchange setup.

    The tool generates both Exchange server settings and a fragment of PowerShell code that can be pasted into Exchange Server PowerShell to configure the availability address space of your Exchange server.

    For details on adding an availability address space, consult your Microsoft documentation.

  7. Paste the code as one single line into Exchange Server PowerShell on your Exchange server and press Enter.

    Note: 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 later, 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

Note: The username and password above are specific to Exchange, and are not the username and password of the Google role account.

Step 5: Wait or restart your Exchange server

After you run the Add-AvailabilityAddressSpace command, it might 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

Verify the user availability setup Google, G Suite, and related marks and logos are trademarks of Google LLC. All other company and product names are trademarks of the companies with which they are associated.
Was this helpful?
How can we improve it?