skip to Main Content

Exchange Hybrid calendar sharing not working

There is an Exchange Hybrid configuration between on-premises and Microsoft 365/Office 365. However, Exchange Hybrid calendar sharing only works from the cloud to on-premises. The on-premises users can’t share their calendars with Exchange Online users. It shows the error that the calendar could not be updated. Why is this happening, and what is the solution? In this article, we will look at the solution for Exchange Hybrid cross-premises calendar sharing not working.

Exchange on-premises calendar could not be updated

The Hybrid Configuration Wizard runs without any problems, and there is a hybrid configuration between on-premises and Microsoft 365/Office 365. Mail flow works as expected, but the problem is that the Exchange Hybrid cross-premises calendar sharing isn’t working as we did expect.

Let’s look at the below table which calendar sharing works and what doesn’t work in the Exchange Hybrid environment:

Calendar SharingStatus
Office 365 calendar sharing to on-premises
Office 365 calendar sharing to Office 365
On-premises calendar sharing to on-premises
On-premises calendar sharing to Office 365

Why can’t Office 365 users see the Exchange on-premises calendars?

Only the on-premises users have problems with calendar sharing to Microsoft 365 users. Let’s check why this is happening and the solution to Exchange Hybrid cross-premises calendar sharing.

In our example, we have two user accounts that we will test this on:

  • Testex (Exchange on-premises mailbox)
  • Testexo (Exchange Online mailbox)

Calendar sharing Microsoft 365 to on-premises

Sign in to Outlook with the Exchange Online mailbox user (testexo). Next, click on the calendar icon.

Sign in Outlook with Exchange Online mailbox user

Right-click the calendar and click on Properties.

Exchange Online calendar properties

Click on Permissions > Add.

Add calendar permissions

Select All Users from the Address Book. Next, add the on-premises user (testex). Click OK.

Add Exchange on-premises user to calendar

Give Editor permissions to the on-premises user (testex). Click OK.

Set Editor permissions for Exchange on-premises user

Check Microsoft 365 calendar from on-premises

Sign in to Outlook with the on-premises mailbox user (testex). Next, click on the calendar icon.

Right-click Other Calendars. Select Add Calendar > From Address Book….

Add calendar to Exchange on-premises user

Select All Users from the Address Book. Next, add the Exchange Online user (testexo). Click OK.

Add Exchange Online user to calendar

The Exchange Online user (testexo) calendar shows up.

Exchange Online calendar viewable from on-premises user

In the next step, we will configure the calendar sharing the other way around.

Calendar sharing on-premises to Microsoft 365

Sign in to Outlook with the on-premises mailbox user (testex). Next, click on the calendar icon.

Sign in Outlook with Exchange on-premises mailbox user

Right-click the calendar and click on Properties.

Exchange on-premises calendar properties

Click on Permissions > Add.

Add calendar permissions

Select All Users from the Address Book. Next, add the Exchange Online user (testexo). Click OK.

Note: You will see that a red block icon appears on the Microsoft 365 users. It means that you can’t add them.

Add Exchange Online user to calendar

The Microsoft Outlook error appears:

One or more users cannot be added to the folder access list. Non-local users cannot be given rights on this server.

Non-local users cannot be given rights on this server

Check on-premises calendar from Microsoft 365

Sign in to Outlook with the Exchange Online mailbox user (testexo). Next, click on the calendar icon.

Right-click Other Calendars. Select Add Calendar > From Address Book….

Add calendar to Exchange Online user

Select All Users from the Address Book. Next, add the Exchange on-premises user (testex). Click OK.

Add Exchange on-premises user to calendar

The below error will appear in Outlook calendar:

Could not be updated.

The calendar doesn’t show up because we couldn’t add the Exchange Online user to the on-premises calendar in the previous step.

Exchange on-premises calendar could not be updated

Solution to Exchange Hybrid calendar sharing not working

Ensure that you do upgrade to the latest Azure AD Connect and the latest Exchange Cumulative Update in the organization. That’s because Microsoft fixed bugs with cross-premises mailbox permissions in both releases.

Enable ACLable object synchronization in organization

The ACLableSyncedObjectEnabled parameter specifies whether remote mailboxes in hybrid environments are stamped as ACLableSyncedMailboxUser. By default, it’s disabled.

Check if ACLable object synchronization is enabled in the organization. Run Exchange Management Shell as administrator on your on-premises Exchange Server. Use the Get-OrganizationConfig cmdlet.

In our example, it’s disabled because the value shows as False.

[PS] C:\>Get-OrganizationConfig | ft Name,ACL*

Name  ACLableSyncedObjectEnabled
----  --------------------------
EXOIP                      False

Enable ACLable object synchronization with the Set-OrganizationConfig cmdlet including the -ACLableSyncedObjectEnabled parameter.

[PS] C:\>Set-OrganizationConfig -ACLableSyncedObjectEnabled $True

After you do this, any mailboxes that you move to Microsoft 365/Office 365 will be properly configured to support delegated mailbox permissions. If mailboxes were moved to or created in Microsoft 365/Office 365 prior to you completing these steps, you’ll need to manually enable ACLs on those mailboxes using the steps below.

Enable ACLs on single mailbox

Enable ACLs on a single mailbox moved to or created in Microsoft 365/Office 365.

[PS] C:\>Get-AdUser "testexo" | Set-AdObject -Replace @{msExchRecipientDisplayType=-1073741818}

Enable ACLs on all mailboxes

Enable ACLs on all mailboxes moved to or created in Microsoft 365/Office 365.

[PS] C:\>Get-RemoteMailbox -ResultSize Unlimited | where {$_.RecipientTypeDetails -eq "RemoteUserMailbox"} | ForEach {Get-AdUser -Identity $_.Guid | Set-ADObject -Replace @{msExchRecipientDisplayType=-1073741818}}

Verify ACLs on mailboxes

Verify that the mailboxes have been successfully updated.

[PS] C:\>Get-RemoteMailbox -ResultSize unlimited | ForEach {Get-AdUser -Identity $_.Guid -Properties msExchRecipientDisplayType | Format-Table DistinguishedName,msExchRecipientDisplayType -Auto}

Important: The msExchRecipientDisplayType value -1073741818 should only be set for user mailboxes, not for resource mailboxes.

Force sync Azure AD Connect

The last step is to force sync Azure AD Connect with PowerShell.

PS C:\> Start-ADSyncSyncCycle -PolicyType Delta

Verify calendar sharing cross-premises works

After the synchronization is run, let’s:

  1. Share on-premises mailbox calendar with Exchange Online user
  2. Add on-premises mailbox calendar to Exchange Online user

Share on-premises mailbox calendar with Exchange Online user

The on-premises mailbox user can now share the calendar with Microsoft 365/Office 365 user:

  • Sign in to Outlook with the on-premises mailbox user (testex)
  • Click on the calendar icon
  • Right-click the calendar and click on Properties
  • Click on Permissions > Add.
  • Select All Users from the Address Book
  • Add the Exchange Online user (testexo)
  • Click OK

Note: The red block icons will not appear on the Microsoft 365 user mailboxes because of the previous changes. It means that you can add them.

Add Exchange Online user to calendar

Give Editor permissions to the Exchange Online user (testexo). Click OK.

Set Editor permissions for Exchange Online user

The last step is to force sync Azure AD Connect with PowerShell.

PS C:\> Start-ADSyncSyncCycle -PolicyType Delta

Add on-premises mailbox calendar to Exchange Online user

The Microsoft 365/Office 365 user can now add the on-premises calendar and have access to the calendar.

  • Sign in to Outlook with the Exchange Online mailbox user (testexo)
  • Click on the calendar icon
  • Right-click Other Calendars > Add calendar > From Address Book…
  • Select All Users from the Address Book
  • Add the Exchange on-premises user (testex)
  • Click OK
Exchange on-premises calendar viewable from Exchange Online user

On-premises calendar shows successfully for Exchange Online users. Did it work for you?

Read more: Configure permissions in Exchange Hybrid »

Conclusion

You learned why Exchange Hybrid calendar sharing isn’t working from Exchange on-premises to Exchange Online. The solution to this problem is to enable ACLable object synchronization. After that, you can successfully share the on-premises calendar with Exchange Online users. As of last, add the on-premises calendar to the Exchange Online mailbox.

Did you enjoy this article? You may also like Manage calendar permissions in Office 365 with PowerShell. Don’t forget to follow us and share this article.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 2 Comments

  1. Hello,

    If i can ask something. why i dont have MessageTrackingLog for messages that i send from powershell or script in powershell. I wrote script for powershell to send mail to multiple recipients from csv file. They all have receive mail but i have no MessageTrackingLog for that mails and i have ProtocolLog regulary.

    Thank you.

    Dragan

    1. Hi Dragan,

      It should show the messages in the message tracking log.

      I assume you have set a default email address in the PowerShell script. So you can search for that email address in the message tracking log.

      Run Exchange Management Shell on-premises and run below command (change the sender email “application@exoip.com” to yours):

      Get-TransportService | Get-MessageTrackingLog -wa 0 -Sender "application@exoip.com" | where {$_.sender -notmatch "HealthMailbox" -and $_.recipients -notmatch "Health"}

      I recommend to search message tracking logs in Exchange with the GUI tool.

Leave a Reply

Your email address will not be published.