Aug 20, 2013 -- posted by Evert Mouw
If you want to share your Exchange 2013 calendar, or export your calendar to an iCal ICS file, read on. This is what I did on my calendaring server named Verdandi.
In 2011, I wrote in the article “Calendaring: Exchange can publish to ICS, defaults to insecure” on this website:
ICS (iCal) is a file format for calendars. Most calendaring software uses it. For example, you can import / export it to Google Calendar. If you have a Google Calendar, you can “publish” your calendar to an ICS file, so you can use it with other software like Mozilla Calendar or web services.
Step 1: configure the Web proxy URL
Set-ExchangeServer -Identity "verdandi" -InternetWebProxy "https://verdandi.mydomain.tld"
check: look for “InternetWebProxy” in the output of
Get-ExchangeServer | format-list
Step 2: enable the publishing virtual directory
Set-OwaVirtualDirectory -Identity "owa (Default Web Site)" -ExternalUrl "https://verdandi.mydomain.tld/owa" -CalendarEnabled $true
check: look for “ExternalUrl” in the output of
Get-OwaVirtualDirectory | format-list
Step 3.1: create a sharing policy specifically for Internet calendar publishing
allow full sharing (users can still restrict this to free/busy when sharing with others)
New-SharingPolicy -Name "Internet" -Domains 'Anonymous: CalendarSharingFreeBusyReviewer' -Enabled $true
allow only free/busy:
New-SharingPolicy -Name "Internet" -Domains 'Anonymous: CalendarSharingFreeBusySimple' -Enabled $true
to remove again:
Get-SharingPolicy "Internet" | format-list
enable individual mailboxes:
Set-Mailbox -Identity "Evert Mouw" -SharingPolicy "Internet"
Start the EAC (https://your-server/ecp), and Navigate to Recipients > Mailboxes. In the list view, select the mailbox you want, and then click Edit Edit Icon. In User Mailbox, click Mailbox features. In the Sharing policy list, select the sharing policy you want to apply to this mailbox.
Step 3.2: make the new sharing policy default
Optional. You can enable individual mailboxes, see step 3.1.
THIS DID NOT WORK FOR ME, as it asked for some identity and I didn’t know what to fill in. Also, as I didn’t need it much, I was too lazy to take the trouble to find out…
Set-SharingPolicy -Name "Internet" -Identity "verdandi" -Domains 'Anonymous: CalendarSharingFreeBusySimple' -Enabled $true
Step 4: improve security (optional)
With IIS manager, enable digest auth. and disable anonymous access to the calendar folder. This way, you indeed cannot share your calendar with others, but you now are more secure when using full details iCal sharing with other calendaring applications.
See my earlier article on Techmonks: Calendaring: Exchange can publish to ICS, defaults to insecure.
Also see the screenshot below.
However, I could not get curl and wget play nice with it, so I gave up and re-enabled anonymous access again, in order to make backups using ics files.
Step 5: use it
Log in to OWA, go to your calendar, and choose “Sharing”. You can share your calendar details by sending it to some email address. Do send it to your own email address. You will receive the URLs needed to access your shared schedule.