MVPs for Office 365: Establishing Calendar Sharing between Office 365 Customers

Editor's Note: The following is a guest post by Office 365 MVP Loryan Strant as part of the MVP Award Program Blog's "MVPs for Office 365" series. Loryan Strant is passionate about the cloud and the opportunities it brings. Having with spent most of his 15 year career in IT delivering on-premise business productivity solutions, he founded Paradyne in early 2010 to focus on BPOS and more recently Office 365. Loryan was one of the first people in the world (that didn’t work at Microsoft or Nortel) to be certified on Microsoft OCS 2007. His passion for productivity means that he is constantly making use of the latest Microsoft offerings to further enhance the way his customers do business. Loryan frequently shares tips & tricks on his blog, as well as regularly posting on Twitter (@strant).

As I personally have a passion for human productivity and the ability for people to communicate and collaborate more effectively, one of the features I’m extremely excited about with Office 365 is the ability for customers (or ‘tenants’) to be able to share calendar information between each other.

Sharing calendars isn’t a new thing, and individuals have been able to do this on a case-by-case basis previously. In Exchange Online this behaviour is actually allowed by default (you can turn it off with a policy).

What I’m going to focus on here is the ability for entire organisations to ‘federate’ and share calendars. This allows customers/suppliers/partners to work together more closely especially when scheduling meetings as it negates the need for people to call/email each other and discuss when they should book the appointment in.

This functionality is done from the PowerShell console, so our first step is establish our Office 365 tenant administrative credentials :

$cred = Get-Credential

The next step is to establish a remote PowerShell connection to Exchange Online:

$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $cred -Authentication Basic -AllowRedirection

This can sometimes take a few moments, so be patient.

After the connection has been established we need to import the PowerShell commands to our local session:

$importresults = Import-PSSession $s

This process can take a few minutes and may even time out, so make sure it completes successfully before continuing further.

Now we can start getting into the guts of Exchange Online and have fun! The first step is to actually allow customizations to occur on our tenant, by way of a simple enough command:


Our final step is to actually establish the relationship between tenants. The following command will establish the relationship from your tenant to the remote tenant, but is only one way. This means that after performing the next command your calendars will be accessible by the other tenant (but not vice versa yet):

Get-FederationInformation -DomainName <other domain>.com | New-OrganizationRelationship -Name "<company name>" -FreeBusyAccessEnabled $true -FreeBusyAccessLevel AvailabilityOnly

The previous command will only share Free/Busy information. If you want to share that as well as other calendar information (eg. subject, location) then replace AvailabilityOnly with LimitedDetails.

Repeat the above on the remote tenant to set up bi-directional calendar sharing.

If all goes well, you should just be able to add the remote user as an attendee to your meetings and see at least their Free/Busy, such as the following screenshot between myself and fellow Office 365 MVP Brett Hill: