Azure/Office365 domain/organisation trust - specifically sharing a resource

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 "","","" -FreeBusyAccessEnabled $true -FreeBusyAccessLevel LimitedDetails

To share a room resource calendar:

-log onto as resource address: eg -> share calendar to exteranl user's email address
-Email gets sent to user.
-Log into user's (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 ( to show on remote calendar.

-Use powershell to give permissions to external users to add calendar items and for the calendar to auto-accept.
Get-Mailbox "" | Set-CalendarProcessing -ProcessExternalMeetingMessages $true #can only be used on resource mailboxes

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.