Sharing Exchange calendars in an HTML Text Widget

If you are using an Exchange 2010 SP1 or later email server, you can set up a community widget to show user Exchange calendars, with customizable levels of visible calendar details.

CAUTION:
Calendar sharing uses Exchange Web Services to make HTML and iCal versions of users calendars available. Depending on your Exchange topology, this can (and will) publish calendar URLs to the Internet, where they could be viewed by anyone. If you want to prevent this, make sure you have a secure firewall in place.

To share an Exchange calendar, first, you set up sharing profiles on the Exchange side, then publish shared calendars in your community.

To set up your Exchange server for sharing:
  1. Create a calendar sharing profile.
  2. Enable the calendar sharing profile for each user for whom you want to have a visible calendar in the community.
Note: You cannot share calendars contained in public folders. A shared calendar must be a user mailbox.
To publish shared calendars in your community:
  1. Ensure that calendar publishing is enabled on your Exchange server. To do this, you can use the following Exchange PowerShell commandlet:
    Get-OwaVirtualDirectory | ft server, Name, CalendarPublishingEnabled
  2. Enable calendar publishing with the following command:
    Set-OWAVirtualDirectory "SERVER\owa (Default Web Site)" –CalendarPublishingEnabled:$true 
  3. From the Exchange Management Shell, create a new calendar sharing profile and enable anonymous shares:
    New-SharingPolicy -Name "Calendar Sharing Policy"
  4. Set the sharing policy on user mailboxes who wish to share their calendars:
    Set-Mailbox -Identity User.Mailbox -SharingPolicy "Calendar Sharing Policy"
  5. Notify the target users to share their calendars either via Outlook 2010 or via Outlook Web Access.
  6. When the user publishes a shared calendar, copy the full text of the Link for viewing calendar in a web browser. This link usually looks like this:
    https://YOUR.MAIL.SERVER/owa/calendar/GUID@YOURDOMAIN.PUBLIC/DIFFERENT_GUID/calendar.html
  7. In the community place where you want to share calendars, add an HTML widget.
  8. In the widget, include the link you copied in Step 6 in an iframe tag as follows:
    <iframe src="https://YOUR.MAIL.SERVER/owa/calendar/GUID@YOURDOMAIN.PUBLIC/DIFFERENT_GUID/calendar.html" width="1200" height="800"></iframe> 
  9. Save the HTML tile.
  10. Save and publish your changes to the place.

A page with a shared calendar may look like this:
Shared Exchange calendar