how to change the calendar visibility from busy to free for multiple users in an organization

Shwetha V Shetty 40 Reputation points
2024-11-13T15:22:31.85+00:00

We recently migrated to Microsoft and by default the all the users have been set to busy on calendars. Is there a way to bulk change it to public

Outlook | Windows | Classic Outlook for Windows | For business
{count} votes

Accepted answer
  1. Rogerio Molina 75 Reputation points MVP
    2024-11-13T16:12:04.8666667+00:00

    Hello Shwetha,

    You can use the Powershell CMDLet Set-MailboxCalendarFolder -Identity ******@domain.com:\Calendar -PublishEnabled $true -DetailLevel FullDetails to do it.

    You can locate more information about it in

    https://learn.microsoft.com/en-us/powershell/module/exchange/set-mailboxcalendarfolder?view=exchange-ps

    0 comments No comments

1 additional answer

Sort by: Most helpful
  1. Joan Hua-MSFT 5,300 Reputation points Microsoft External Staff
    2024-11-14T02:22:23.7233333+00:00

    Hi @Shwetha V Shetty

    Welcome to our forum!

    Yes, you can change the calendar visibility from "busy" to "free" for multiple users in your organization using PowerShell. Here's a general approach to achieve this:

    1. Connect to Exchange Online: First, you need to connect to Exchange Online using PowerShell. Open PowerShell and run the following commands:
         $UserCredential = Get-Credential
         Connect-ExchangeOnline -UserPrincipalName $UserCredential.UserName -Password $UserCredential.Password
      
    2. Get the list of mailboxes: Retrieve the list of user mailboxes you want to update. You can filter this list based on your organization's requirements. For example, to get all user mailboxes:
         $mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox
      
    3. Update calendar permissions: Loop through each mailbox and set the default calendar permission to "Free/Busy time". Here's a script to do that:
         foreach ($mailbox in $mailboxes) {
             Set-MailboxFolderPermission -Identity "$($mailbox.Alias):\Calendar" -User Default -AccessRights LimitedDetails
         }
      

    If you need to set the calendar to show only "Free" without any details, you can change the -AccessRights parameter to AvailabilityOnly:

    foreach ($mailbox in $mailboxes) {
        Set-MailboxFolderPermission -Identity "$($mailbox.Alias):\Calendar" -User Default -AccessRights AvailabilityOnly
    }
    

    Hope it helps.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".  

    Note: Please follow the steps in our [documentation] to enable e-mail notifications if you want to receive the related email notification for this thread. 


    0 comments No comments

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.