How to publish Anonymous Calendar Sharing URL in Exchange Online or Exchange 2013

Do your users want to share their calendar with anonymous users? Here's a tip related to sharing your calendar via a web link for anonymous users (users outside of your organization). Users can publish their calendar for anonymous viewers using OWA. Organization administrators can also publish a user's calendar. Here we will share both of those ways.

Note: Publishing your calendar for anonymous users allows anyone with the link to the calendar to view it without having to log-on.

Publish your calendar using OWA

    1. Publishing your calendar: Log on to OWA and go to Calendar. Right click the calendar you want to share and choose permissions:


      Change the permissions drop-down from “Not Shared” (Default) to “Availability only” (or whichever permission you intend to grant) and press Save:


    2. Retrieve the link to share it with users outside of your organization: Right click Calendarpermissions > and then View Calendar. This will bring up a browser window with the sharing link (URL). You can also right click on the View Calendar link and then select Copy Shortcut to get copy the link. You can send the link to users outside your organization to allow them to view your calendar


Controlling anonymous calendar sharing in your organization

Administrators can control whether users can share their calendar with anonymous users outside the organization. If users try to share the calendar when anonymous calendar sharing is not allowed in their organization, they get an error.

Administrators must configure a sharing policy to allow users to share their calendar with all domains. For details, see the following articles:

Publish a user's calendar (as an organization administrator):

If you're an organization admin, here's how you can publish the calendar of a user or a resource/room using PowerShell.

      1. Run Set-MailboxCalendarFolder <Username>:\Calendar -PublishEnabled $true
      2. Run Get-MailboxCalendarFolder <Username>:\Calendar |fl or Get-MailboxCalendarFolder <Username>:\calendar |fl publishedcalendarurl. This will output the published calendar html (and ics) urls. Others can use this url to view the publisher’s calendar.


PS C:\Windows\system32> set-MailboxCalendarFolder calroom1:\calendar -PublishEnabled:$true
PS C:\Windows\system32> Get-MailboxCalendarFolder calroom1:\calendar
RunspaceId           : 0f40e5da-5712-4043-8bbc-fb11049c0307
Identity             : calroom1:\calendar
PublishEnabled       : True
PublishDateRangeFrom : ThreeMonths
PublishDateRangeTo   : ThreeMonths
DetailLevel          : AvailabilityOnly
SearchableUrlEnabled : False
PublishedCalendarUrl :

PublishedICalUrl :

IsValid              : True
ObjectState          : Unchanged

For more on other calendar sharing options in Exchange Online, please look at thispage.

Sathish Venkat Rangam


    • 4/15/2014: Added section about sharing policies.
Comments (8)
  1. Anonymous says:

    Thank you, but on prem my exch2013 owa give me a link that starts with HTTP:// not HTTPS:// but 80 is never published.

  2. Anonymous says:

    Neat trick, playing with it in an app already :)

    Minor snag, the Set-MailboxCalendarFolder requires the language specific name of “Calendar” to work. So, for instance my mailbox which is nb-no requires “andreas:Kalender” as the identity parameter to run without error.

    It seems I’m able to get around this by doing something like changing the language like this:
    Set-MailboxRegionalConfiguration -Identity andreas -Language en-us
    Then I can use “:Calendar” as originally planned.

    I’m not sure if this has other side effects (my OWA lanauge didn’t change), or if there is a better solution to this.

  3. Recep YUKSEL says:

    Thank you Sathish Venkat Rangam

  4. Anonymous says:

    Thanks @Sathish Venkat Rangam for sharing the quick Exchange trick

  5. Anonymous says:

    Andreas Helland: Insted of changing the regional configuration of the mailbox, you might consider the following method.

    $Mailbox = Get-Mailbox -Identity
    $Calendar = (($Mailbox.SamAccountName)+ ":" + (Get-MailboxFolderStatistics -Identity $Mailbox.SamAccountName -FolderScope Calendar | Select-Object -First 1).Name)

    Here you’ll end up with correct format in the $Calendar variable (i.e. andreas:Kalender in your case).

  6. Matthew says:

    It’s probably a good idea to mention that are default connection limits for anonymous users that will prevent using anonymous calendar sharing for anything more than a handful of people.

  7. Bruce Anderson says:

    I would add to Loic’s comment. My URL’s are all set to use SSL yet the URL presented is http://, why can we not control that? We do not allow http:// connections. Plus, is there a supported method to restrict the publish to authenticated connections? We would like to leverage this for publishing to ipads bit only for internal users.

Comments are closed.

Skip to main content