Set up Calendar Interop

Image for: Set up Calendar Interop

2. Allow Calendar users to see Exchange availability

Now you need to set up Microsoft Exchange availability sharing to allow Google Calendar users to view availability information for Exchange calendar users.

You're on step 2 of 5

Image for: You're on step 2 of 5

Set up Exchange calendar availability sharing

Image for: Set up Exchange calendar availability sharing

Expand all  |  Collapse all

Step 1: Set up your Exchange users

Before you begin

Make sure each Exchange user:

  1. Has an Exchange account with an associated mailbox.
  2. Doesn't have a personal Google Account using the domain name of your organization because this can create a conflicting account. To resolve issues with conflicting accounts, go to Add users with unmanaged accounts.
  3. Doesn't have a Google Workspace account or has a Google Workspace account with Google Calendar turned off.

Turn on full event detail lookups

You need to set each user’s calendar visibility to Limited details (the default visibility is Availability only).

  1. If you want to set the visibility for an individual mailbox, in Exchange PowerShell enter the following command:

    Set-MailboxFolderPermission -Identity (Mailbox Folder Id Parameter:\Calendar) -User Default -AccessRights LimitedDetails

  2. If you want to set the visibility for all mailboxes, enter the following command:

    ForEach ($Mailbox in @(Get-Mailbox -ResultSize Unlimited)) {Set-MailboxFolderPermission –Identity (Mailbox Folder Id Parameter:\Calendar) –User Default –AccessRights LimitedDetails}

Step 2: Turn on Exchange internet connectivity

If you're using Exchange Online (Microsoft 365), you probably don't need to make any changes. Exchange Online can accept connections from the internet by default.

  1. On port 443, turn on inbound internet connectivity so Google Calendar can reach the Exchange server. This step requires a valid SSL certificate issued by a trusted public internet root Certificate Authority. For details on certificates for Exchange servers, consult your Microsoft documentation.
  2. If you’re blocking external incoming network traffic, add the following address ranges to your allowlist to permit requests from Calendar Interop:
    • IPv4–Add 74.125.88.0/27 to your allowlist
    • IPv6–Add the following IP blocks to your allowlist:
      • 2001:4860:4::/64
      • 2404:6800:4::/64
      • 2607:f8b0:4::/64
      • 2800:3f0:4::/64
      • 2a00:1450:4::/64
      • 2c0f:fb50:4::/64
Step 3: Create Exchange role accounts

Google Calendar uses Exchange role accounts to authenticate with your Exchange server when it looks for availability details. For an Exchange event to be visible to Google Calendar users, it must be visible to the role accounts. If you have an existing account that you use for organization-wide availability lookups from untrusted forests, you can reuse it.

To create Exchange role accounts:

  1. Set the Exchange recipient type as a user mailbox account.
  2. If you create multiple role accounts, use the same password for each account.
  3. If you're using basic authentication for Exchange, it's recommended that you turn off password expiration for the role account to avoid service disruption.

For more information on creating user mailboxes in an Exchange server and Exchange recipient types, consult your Microsoft documentation.

Step 4: (Exchange Online only) Set up Graph API connection

Complete this step if you're using Exchange Online (Microsoft 365). If you're using other versions of Exchange, skip to step 5.

If connecting using Graph API (recommended)

Set up the Microsoft identity platform

  1. Register Calendar Interop with the Microsoft identity platform.

    For details, go to Microsoft’s Register an application.

  2. When you register the application, leave the Supported account types and Redirect URI values at their default settings.
  3. Note the application (client) ID and the Directory (tenant) ID as you need them later to set up a Graph API connection in Google Workspace.
  4. Click Certificates & secretsClient secretsNew client secret.
  5. Enter a description, and if needed, update the expiry period. If the client secret expires, calendar availability lookups from Google Calendar to Exchange Online stop working. To avoid this scenario, periodically reconfigure the client secret.
  6. Click Add to create a client secret for the application's. For details, go to Microsoft's Add credentials.
  7. Note the client secret from the Value column as you need it later to set up a Graph API connection in Google Workspace. The value is not displayed again once you leave this page.
  8. Click API permissionsAdd a permissionMicrosoft Graph.
  9. Choose Application permissions and add:
    • Calendars.ReadBasic.All—For user availability
    • Place.Read.All—For managing Exchange Online rooms
  10. Click Grant admin consent.
If connecting using EWS (legacy)

Microsoft will deprecate this on October 1, 2026. We recommend that you use Graph API instead.

Set up the Microsoft identity platform

  1. Register Calendar Interop with the Microsoft identity platform.

    For details, go to Microsoft’s Register an application.

    Leave the Supported account types and Redirect URI values at their default settings when you register the application.
  2. Note the application (client) ID because you need it later to set up OAuth 2.0 authentication in Workspace. The value is not displayed once you leave this page.
  3. Enter a client secret to set the application's credentials. For details, go to Microsoft's Add credentials.

    If the client secret expires, calendar availability lookups from Calendar to Exchange Online stop working. To avoid this scenario, periodically reconfigure the client secret.

  4. Click API permissionsAPIs my organization uses and, in the search box, enter Office 365 Exchange Online and press Enter.
  5. Click Office 365 Exchange OnlineApplication permissions and check full_access_as_app. For details, go to Microsoft's Add permissions to access your web API.

    Tip: You can limit permissions to specific mailboxes. For details, go to Microsoft's Limiting application permissions to specific Exchange Online mailboxes.

  6. Click Grant admin consent.

Locate & save the OAuth 2.0 token endpoint (v2)

  1. Follow the steps in Microsoft's Redeem a code for an access token.

    The endpoint looks like https://login.microsoftonline.com/tenant/oauth2/v2.0/token where tenant is the friendly domain name of the Entra ID tenant or the tenant's GUID.

  2. Record the OAuth 2.0 token endpoint.

    You need it later to set up OAuth 2.0 authentication in Workspace.

Step 5: Set up the Google Admin console
  1. Sign in with a super administrator account to the Google Admin console.

    If you aren’t using a super administrator account, you can’t complete these steps.

  2. Click Calendar Interop management.
  3. Click Edit to open the Exchange availability in Calendar section.
  4. Check the Allow Google Calendar to display Exchange users’ availability box.
  5. Click Add an Exchange endpoint.
  6. Click the Endpoint type:
    • If you use Exchange Online (Microsoft 365), select Microsoft 365 (Graph API), and enter the following fields:
      • Exchange domain name—Supported domain for this endpoint. Leave blank to have it as the default endpoint.
      • Exchange Role Accounts—The primary SMTP addresses of the Exchange role accounts in the format: username1@example.com. We recommend setting up multiple role accounts.

        If you're using more than one role account, separate the accounts with a comma. We recommend using approximately 10 role accounts, especially if you want to query rooms from Microsoft.

      • Tenant ID—Your Microsoft 365 directory (tenant) ID that you noted in step 4.
      • Application (client) Id—The Application ID assigned to your app during app registration in step 4.
      • Client secret—The value from the client secret assigned to your app during app registration in step 4.
    • If you don’t use Exchange Online (Microsoft 365), select Exchange Server on-premises and enter the following fields:
      • Exchange Web Services URL—The URL of the default Exchange Web Services (EWS) server endpoint associated with your Exchange server.

        For details, go to Find EWS server endpoint URL (on this page).

      • Exchange domain name—Supported domain for this endpoint. Leave blank to have it as the default endpoint.
      • Exchange Role Accounts—The primary SMTP addresses of the Exchange role accounts in the username1@example.com format.

        If you're using more than one role account, separate the accounts with a comma. We recommend setting up multiple role accounts.

      • Password—The password for the Exchange role account or accounts.
    • If using EWS to connect to Exchange Online, select Microsoft 365 (Legacy EWS) and enter the following fields:

      Microsoft will deprecate this on October 1, 2026. 

      • Exchange Web Services URL—The URL of the default EWS server endpoint associated with your Exchange server.

        For details, go to Find EWS server endpoint URL (on this page).

      • Exchange domain name—Supported domain for this endpoint, leave blank to have it as default endpoint
      • Exchange role accounts—The primary SMTP addresses of the Exchange role accounts in the username1@example.com format.

        If you're using more than one role account, separate the accounts with a comma. We recommend setting up multiple role accounts.

      • Token endpoint URL—The OAuth 2.0 token endpoint URL from your Entra ID tenant. For details, go to Step 6: (Exchange Online only) Set up OAuth 2.0 authentication.
      • Application (client) ID—The Application ID assigned to your app during app registration.
      • Client secret—The value from the client secret assigned to your app during app registration.
  7. Click Add.
  8. (Optional) To add more Exchange endpoints, click Add an Exchange endpoint and repeat steps 7–8 for each endpoint you’d like to add.

    Each new endpoint must have a unique domain not already used by a previously added endpoint (for example, if your organization has multiple subsidiaries or if you want to share calendar availability between trusted external partners).

    There can only be a maximum of one default Exchange endpoint.

  9. (Optional) To view event details (title, location, and so on) from Exchange and Calendar, check the Show event details box. Otherwise, leave the box unchecked.
  10. Click Save.

Find EWS server endpoint URL

The URL of the EWS server endpoint is the same as the URL for the Exchange server where you created the role accounts.

Examples:

  • https://Exchange server hostname/ews/exchange.asmx (EWS server)
  • https://outlook.office365.com/ews/exchange.asmx (Exchange Online)

To verify the URL for an on-premises Exchange server, open Exchange PowerShell and enter the following command:

Get-WebServicesVirtualDirectory | Select name, *url* | fl

If the result returns multiple URLs, use the result for ExternalUrl.

If you have multiple Exchange servers under the same domain (for example, you're using a hybrid Exchange environment) and you want to view the availability of Exchange users in your entire environment, make sure the URL is from a server that can access availability for all Exchange users. 


Google, Google Workspace, 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?

Image for: Was this helpful?
How can we improve it?
Search
Clear search
Close search
Google apps
Main menu
443613228798593925
true
Search Help Center
true
true
true
true
true
73010
false
false
false
false