Enabling the Microsoft Teams Calendar button for users with on-premise Exchange mailboxes

One of the more common questions I’ve been asked by colleagues and clients over the past few months is in regards to integrating Microsoft Teams with an on-premise Exchange mailbox so that users could access their calendars within the Teams client. Without a supported on-premise Exchange or hybrid configuration, the Teams client will not display the Calendar button. Given the frequency of this issue, I would like a write a quick post for items to check if the Calendar button is not present.

The following is the official documentation of the requirements to verify:

Requirements to create and view meetings for mailboxes hosted on-premises
https://docs.microsoft.com/en-us/microsoftteams/exchange-teams-interact#requirements-to-create-and-view-meetings-for-mailboxes-hosted-on-premises

If mailboxes are hosted on-premises, to create and view meetings, the following requirements must be met:

  1. The required Teams license needs to be assigned for the Azure Active Directory synced user.
  2. Users must be synchronized to Azure Active Directory. For information about how to use Azure AD Connect to synchronize with Azure Active Directory, see Hybrid identity documentation.
  3. Mailboxes are hosted in Exchange Server 2016 Cumulative Update 3 or later.
  4. Autodiscover and Exchange Web Services is published externally.
  5. OAuth authentication is configured preferably via the Exchange Hybrid Configuration Wizard running a full hybrid configuration (Classic or Modern). If you are not able to use the Hybrid Configuration Wizard, configure OAuth as described here: https://docs.microsoft.com/en-us/exchange/configure-oauth-authentication-between-exchange-and-exchange-online-organizations-exchange-2013-help.

Note Exchange trusts OAuth Token from Teams service which is known as EvoSTS. Step 1 should be enough, but just the EvoSTS; ACS is used for Free/Busy lookup in the calendar.

  1. The checkbox for the Exchange Hybrid Deployment feature in Azure AD Connect is set.
  2. For calendar app support and Teams Outlook Add-In for Mac, Exchange Web Service URLs must be configured as SPNs in Tenant Azure AD for the Exchange Service Principal. This step is done with Hybrid Configuration Wizard or following manual steps for Hybrid Modern Authentication.

In short, verify the following:

  1. A Teams license must be assigned to the user (this can’t be missed as the user wouldn’t be able to log on without one)
  2. Verify that the on-premise account for the users are synced into Azure AD (do not have separate on-premise and cloud accounts or there would be no way for Teams to know they are linked).
  3. I have not been able to get the calendar feature to work with any Exchange versions earlier than 2016 CU3 (check your Exchange version here: https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019)
  4. Autodiscover and EWS should already be published if mailbox via internet access is allowed but if it isn’t, make sure these services are published and tested with https://testconnectivity.microsoft.com/
  5. There are two ways to configure OAuth authentication:

a) Use the Exchange Hybrid Configuration wizard via the on-premise Exchange EAC:

76

b) Or manually via this link: https://docs.microsoft.com/en-us/exchange/configure-oauth-authentication-between-exchange-and-exchange-online-organizations-exchange-2013-help

It is very unlikely that you need to use the link to manually configure it so use the Exchange Hybrid Configuration wizard to configure this.

75

6. Verify that the follow checkbox for the Exchange Hybrid Deployment feature in Azure AD Connect is enabled:

75

7. This step is the same as step #5 and I would recommend to use Exchange Hybrid Configuration wizard for the configuration.

I’ve found that the calendar button can take upwards to a few hours if I had just enabled the Exchange Hybrid Deployment for AD Connect so be patient. Once all the requirements above have been met, you should see the calendar button in the Teams client as shown below:

73