I thought it would be easy and quick to set up a shared room resource calendar between two separate domains on O365.
It wasn't! And I couldn't find anywhere online describing how to do this seemingly straightforwards task.
Also, it's not perfect. It can take up to 4 hours for the new appointment to appear in the remote user's view of the calendar (apparently MS are working on fixing this).
So here are the steps I used:
Set up two-way organization relationship between both domains (do this in both directions):
From the Azure Gui:
-go to Admin > Exchange.
-Go to organization > sharing.
-Under Organization Sharing, click New Add.
-In new organization relationship, in the Relationship name box, type a friendly name for the organization relationship.
-In the Domains to share with box, type the domain for the external Office 365 or Exchange on-premises organization you want to let see your calendars.
-Select the Enable calendar free/busy information sharing check box to turn on calendar sharing with the domains you listed.
Click save to create the organization relationship.
To see the current trusts:
To add a new trust:
New-OrganizationRelationship -Name "Contoso" -DomainNames "contoso.com","northamerica.contoso.com","europe.contoso.com" -FreeBusyAccessEnabled $true -FreeBusyAccessLevel LimitedDetails
To share a room resource calendar:
-log onto outlook.office365.com as resource address: eg Gcaa0d945aa294f069b407e2090decdc7@domain.com -> share calendar to exteranl user's email address
-Email gets sent to user.
-Log into user's outlook.office365.com (doesn't work within Outlook), click the "add calendar" button on the email.
Should now appear automatically in outlook as well.
-Test entries to share, may take 4hrs (https://support.office.com/en-us/article/calendar-sharing-in-office-365-...) to show on remote calendar.
-Use powershell to give permissions to external users to add calendar items and for the calendar to auto-accept.
Set the room resource calendar to autoaccept new appointments (log into powershell as domain admin user):
Set-CalendarProcessing "resource name" -AutomateProcessing AutoAccept #auto accept
Set-CalendarProcessing "resource name" -AllRequestInPolicy $true
How to use:
-Can't add appointment directly to calendar, but can create a new appointment and add room calendar as a 'invite attendee'
-Send test from remote user.
-Log directly into room resource and check the item is in the calendar.
-Wait 4 hours and check it has appeared in remote users calendar.