Share via

Default calendar permissions for new users

Anonymous
2023-09-27T16:12:59+00:00

Hello,

We have an exchange admin canter (Microsoft 365).

I am having an issue that I want to try automate.

The company I deal with has a policy where everyone can view and edit every one else's calendar.

Currently when adding new users to the 365 admin portal we then have to go into outlook to add every person individually/add every group individually to allow editorial rights for every one else.

This is obviously a tedious task as it requires another step for something that seems to be relatively simple to change.

I understand there are powershell scripts that automate this and we have used these in the past to get mailbox then set access rights but this is not much faster than setting the users permissions manually when we are jsut setting up one new user.

Is there a way to change the default permissions of all the users within the organization to be editorial by everyone.

Or at least when someone is put into a group then everyone in that group gets editor rights to the new user and they get editor rights to everyone else in the group?

Thanks

Outlook | Web | Outlook on the web for business | Calendar

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

6 answers

Sort by: Most helpful
  1. Anonymous
    2023-10-05T07:38:20+00:00

    This is my problem with alot of the community answers from microsoft, it's like they read only a part of the question and forget about the main point. in your case whether the default permissions apply automatically to new starters.

    Was this answer helpful?

    8 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2024-01-17T15:34:37+00:00

    Hi all,

    I’ve ran in this issue as well, but I’ve found a wonderful script that checks every user, sets calendar permissions for every user in that organization, can exclude users and has multi calendar languages

    The script is from: https://www.alitajran.com/set-default-calendar-permissions-for-all-users-powershell/

    <#

        .SYNOPSIS

        Set-DefCalPermissions.ps1

        .DESCRIPTION

        Set default calendar permissions for all user mailboxes including exception for users.

        The script works for:

        -Exchange On-Premises (Run Exchange Management Shell)

        -Exchange Online (Connect to Exchange Online PowerShell)

        .LINK

        alitajran.com/set-default-calendar-permissions-for-all-users-powershell

        .NOTES

        Written by: ALI TAJRAN

        Website:    alitajran.com

        LinkedIn:   linkedin.com/in/alitajran

        .CHANGELOG

        V1.00, 02/28/2021 - Initial version

        V1.10, 03/29/2023 - Changed Exceptions to look for UserPrincipalName

    #>

    Start transcript

    Start-Transcript -Path "C:\temp\Set-DefCalPermissions.log" -Append

    Set scope to entire forest. Cmdlet only available for Exchange on-premises.

    #Set-ADServerSettings -ViewEntireForest $true

    Get all user mailboxes

    $Users = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox

    Users exception (add the UserPrincipalName)

    $Exception = @("@exoip.com", "@exoip.com")

    Permissions

    $Permission = "LimitedDetails"

    Calendar name languages

    $FolderCalendars = @("Agenda", "Calendar", "Calendrier", "Kalender", "日历")

    Loop through each user

    foreach ($User in $Users) {

        # Get calendar in every user mailbox

        $Calendars = (Get-MailboxFolderStatistics $User.UserPrincipalName -FolderScope Calendar)

        # Leave permissions if user is exception

        if ($Exception -Contains ($User.UserPrincipalName)) {

            Write-Host "$User is an exception, don't touch permissions" -ForegroundColor Red

        }

        else {

            # Loop through each user calendar

            foreach ($Calendar in $Calendars) {

                $CalendarName = $Calendar.Name

                # Check if calendar exist

                if ($FolderCalendars -Contains $CalendarName) {

                    $Cal = "$($User.UserPrincipalName):$CalendarName"

                    $CurrentMailFolderPermission = Get-MailboxFolderPermission -Identity $Cal -User Default

                    # Set calendar permission / Remove -WhatIf parameter after testing

                    Set-MailboxFolderPermission -Identity $Cal -User Default -AccessRights $Permission

                    # Write output

                    if ($CurrentMailFolderPermission.AccessRights -eq "$Permission") {

                        Write-Host $User.DisplayName already has the permission $CurrentMailFolderPermission.AccessRights -ForegroundColor Yellow

                    }

                    else {

                        Write-Host $User.DisplayName added permissions $Permission -ForegroundColor Green

                    }

                }

            }

        }

    }

    Stop-Transcript

    It helped me so I hope it will help you to!

    Was this answer helpful?

    3 people found this answer helpful.
    0 comments No comments
  3. Anonymous
    2023-09-28T08:17:54+00:00

    Hi Kerry,

    Thanks for the reply,

    That second script looks more like what i would be needing to use.

    Would this set the permissions on new users that are created without having to run it again?

    Thanks

    Arran

    Was this answer helpful?

    2 people found this answer helpful.
    0 comments No comments
  4. Anonymous
    2023-10-13T10:28:50+00:00

    I'm having the same issue.

    Regarding existing accounts

    you could save some time using a Powershell script with a loop to fix permissions for all existing mailboxes.

    However, almost all examples I saw don't take into account the different languages settings, that will change the name for the default Calendar if it's not in english, but that's easy enough to fix.

    Regarding the default Sharing settings

    Unfortuantely, that doesn't solve the main issue that you report, which is setting the DEFAULT policy that will automatically be applied for all new users.

    Please, note that the following steps are not a solution, only what we tried, but didn't manage to solve the issue.

    • If you go to Exchange admin center > Organization > Sharing > Individual sharing you will see the default Sharing policy.
      However, changing settings within the default policy didn't work for us.
    • So I created a new policy, with all the settings I wanted, but there wasn't even a button to set a new policy as Default! The workaround we tried was to change those sharing policy via Powershell:
      Modify, disable, or remove a sharing policy in Exchange Online | Microsoft Learn
      (you can also do a Get-SharingPolicy and you should see the same settings as in Exchange admin center mentionned above)

    to set a newly created Calendar Sharing policy as default:
    Set-SharingPolicy -Identity MyNewCalendarSharingPolicy -Default

    • However, even all this didn't work for us:
      After creating a new sharing policy with our settings, setting it as default, deleting the old one, waited 1 day, but new accounts are still created with the old default sharing settings...

    if this works for you please let me know

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments
  5. Anonymous
    2023-09-27T18:41:08+00:00

    Dear Arran Sheldrick

    Good day! Thank you for posting to Microsoft Community. We are happy to help you!

    Based on your description, I have a general understanding of your problem, it is possible to change the default calendar permissions for new users in your organization.  I suppose you want to change the Default permission level to Reviewer to let all the internal users can access other users’ calendars with full details. In this situation, the end users can change the Default permission level by themselves.

    Or, you can use PowerShell to change the permission level for the users. Try the steps below: 

    • Connect to Exchange Online using remote PowerShell.
    • To change the Default permission level for a single user, please run: Set-MailboxFolderPermission *** Email address is removed for privacy ***:\Calendar -User Default -AccessRights Reviewer (replace with the user’s address)
    • To change the Default permission level for all the users’ mailboxes. You can try this command: foreach($user in Get-Mailbox -RecipientTypeDetails UserMailbox) {Set-MailboxFolderPermission -Identity ($user.alias+':\calendar’) -User Default -AccessRights Reviewer}

    Meanwhile, if you still need further help or I misunderstood your question, please kindly correct me and tell me more details about your problem, thanks.

    Thanks in advance for your understanding! Your patience and cooperation will be highly appreciated. Hope you all the best!

    Sincerely,

    Kerry Chen | Microsoft Community Moderator

    Was this answer helpful?

    0 comments No comments