Make all users calendars org-wide viewable (O365)

Christian W 66 Reputation points
2023-03-24T13:11:19.1766667+00:00

Greetings,

My organization recently decided that we are changing a policy to make every user able to view everyones calendar (including details, not just free/busy).

I've learned that the correct permission to use is "Review", in this instance.

There does not seem to be a simple option to set this in neither the O365 or Exchange admin center. I've turned google upside down to find a script or setting somewhere that could help me with this, but most seem to be outdated or not work for me.

To clarify: I need a setting/script to make every users calendar visible with details for every other user in my organization.

PS. I'm not very experienced with Powershell-scripts other than copy/pastin. So any script that gets posted, I highly appreciate if its accompanied by details/edits if need be.ps1

Thanks alot

/CW

Microsoft Exchange Online
Office
Office
A suite of Microsoft productivity software that supports common business tasks, including word processing, email, presentations, and data management and analysis.
1,710 questions
Outlook
Outlook
A family of Microsoft email and calendar products.
4,013 questions
Microsoft Exchange Online Management
Microsoft Exchange Online Management
Microsoft Exchange Online: A Microsoft email and calendaring hosted service.Management: The act or process of organizing, handling, directing or controlling something.
4,578 questions
{count} votes

Accepted answer
  1. Vasil Michev 108.1K Reputation points MVP
    2023-03-24T13:18:38.1666667+00:00

    It's not that complicated to do, unfortunately there is no way to enable this by default for newly created mailboxes. In other words, you will have to periodically rerun this. Here's what you can use:

    $calendars = Get-Mailbox -RecipientTypeDetails UserMailbox | Get-MailboxFolderStatistics -FolderScope Calendar | ? {$_.FolderType -eq "Calendar"} | select @{n="Identity"; e={$_.Identity.ToString().Replace("\",":\")}}

    $calendars | % {Set-MailboxFolderPermission -Identity $_.Identity -User Default -AccessRights LimitedDetails}

    Some notes on the above. The snippet is using the Get-MailboxFolderStatistics cmdlet to get the default Calendar folder for each user, as the name of the folder will vary depending on the localization (i.e. "Kalender" in German). Thus, you should not hardcode it to "Calendar", even though the script will run much faster if you do so.

    Another point to make is that the permission level is set to LimitedDetails. This will ensure that all details of the calendar items are shown, but feel free to replace it with Reviewer, if you think that works best for your needs.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.