How can I make all users calendar shared with all other users?

%3CLINGO-SUB%20id%3D%22lingo-sub-60174%22%20slang%3D%22en-US%22%3EHow%20can%26nbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60174%22%20slang%3D%22en-US%22%3E%3CP%3EHow%20can%26nbsp%3BI%20make%20the%20calendar%20for%20all%20users%20in%20a%20particular%20group%20shared%20with%20all%20other%20users%20in%20that%20group%3F%20And%2C%20any%20time%26nbsp%3BI%20add%20a%20new%20user%20to%20the%20all%20staff%20group%2C%20their%20calendar%20is%20automatically%20shared%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThank%20you!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-60174%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EExchange%20Online%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-263629%22%20slang%3D%22en-US%22%3ERe%3A%20How%20can%26nbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-263629%22%20slang%3D%22en-US%22%3E%3CP%3EI%20have%20been%20all%20over%20the%20Internet%20looking%20for%20something%20that%20works.%20Finally%20contacted%20Microsoft%20support%20and%20they%20provided%20me%20with%20this%2C%20which%20works%20perfectly.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EIf%20in%20Windows%2010%2C%20Powershell%20ISE%20will%20be%20pre-installed.%20Otherwise%20you%20need%20to%20install%20this.%26nbsp%3B%3C%2FP%3E%3CP%3ERun%20as%26nbsp%3Badministrator%20to%20open%3C%2FP%3E%3CP%3ERun%20this%20script.%20It%20will%20ask%20you%20to%20login%20to%20your%20Office%20365%20administrator%20account%20and%20which%20level%20of%20common%20access%20you%20want%20to%20provide%20(we%20went%20for%20reviewer).%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CDIV%3E%23GIVE%20ALL%20USERs%20ACCESS%20TO%20ALL%20CALENDAR%3C%2FDIV%3E%3CDIV%3Ecls%3C%2FDIV%3E%3CDIV%3ESet-ExecutionPolicy%20RemoteSigned%20-Scope%20CurrentUser%3C%2FDIV%3E%3CDIV%3E%24UserCredential%20%3D%20Get-Credential%3C%2FDIV%3E%3CDIV%3E%24Session%20%3D%20New-PSSession%20-ConfigurationName%20Microsoft.Exchange%20-ConnectionUri%20%3CA%20href%3D%22https%3A%2F%2Foutlook.office365.com%2Fpowershell-liveid%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Foutlook.office365.com%2Fpowershell-liveid%2F%3C%2FA%3E%20-Credential%20%24UserCredential%20-Authentication%20Basic%20-AllowRedirection%3C%2FDIV%3E%3CDIV%3EImport-PSSession%20%24Session%3C%2FDIV%3E%3CDIV%3EWrite-Output%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%3C%2FDIV%3E%3CDIV%3EWrite-host%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20Setting%20Calendar%20Permission%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%20-foreground%20%22yellow%22%3C%2FDIV%3E%3CDIV%3EWrite-Output%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%3C%2FDIV%3E%3CDIV%3E%24useAccess%20%3D%20Get-Mailbox%20-ResultSize%20Unlimited%20-Filter%20%7BRecipientTypeDetails%20-eq%20%22UserMailbox%22%7D%20%7C%20Select%20Identity%3C%2FDIV%3E%3CDIV%3Ecls%3C%2FDIV%3E%3CDIV%3EWrite-Host%20%22AccessRights%3A%20None%2C%20Owner%2C%20PublishingEditor%2C%20Editor%2C%20PublishingAuthor%2C%20Author%2C%20NonEditingAuthor%2C%20Reviewer%2C%20Contributor%22%20-foreground%20%22yellow%22%3C%2FDIV%3E%3CDIV%3EWrite-Host%20%22This%20script%20will%20attempt%20to%20modify%20and%20add%20a%20user%20permission.%20You%20may%20have%20an%20error%20message%20if%20the%20user%20is%20already%20added.%20Please%20ignore.%22%20-foreground%20%22darkcyan%22%3C%2FDIV%3E%3CDIV%3EWrite-Host%20%22---------------------%22%20-foreground%20%22gray%22%3C%2FDIV%3E%3CDIV%3E%24accRight%3Dread-host%20%22Please%20enter%20the%20desired%20access%20right%20for%20all%20users.%20Ex%3A%20Reviewer%22%3C%2FDIV%3E%3CDIV%3EForEach%20(%20%24user%20in%20%24useAccess%20)%20%7B%3C%2FDIV%3E%3CDIV%3EGet-Mailbox%20-ResultSize%20Unlimited%20%7C%20ForEach%20%7B%3C%2FDIV%3E%3CDIV%3EIf%20(%20%24_.Identity%20-ne%20%24user.Identity%20)%20%7B%3C%2FDIV%3E%3CDIV%3EAdd-MailboxFolderPermission%20%22%24(%24_.SamAccountName)%3A%5Ccalendar%22%20-User%20%24user.Identity%20-AccessRights%20%24accRight%3C%2FDIV%3E%3CDIV%3ESet-MailboxFolderPermission%20%22%24(%24_.SamAccountName)%3A%5Ccalendar%22%20-User%20%24user.Identity%20-AccessRights%20%24accRight%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3Ecls%3C%2FDIV%3E%3CDIV%3EWrite-Output%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%3C%2FDIV%3E%3CDIV%3EWrite-host%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20CALENDAR%20INFORMATION%20UPDATED%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%20-foreground%20%22green%22%3C%2FDIV%3E%3CDIV%3EWrite-Output%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%22%3C%2FDIV%3E%3CDIV%3EForEach%20(%24mbx%20in%20Get-Mailbox%20-ResultSize%20Unlimited)%20%7BGet-MailboxFolderPermission%20(%24mbx.Name%20%2B%20%E2%80%9C%3A%5CCalendar%E2%80%9D)%20%7C%20Select%20Identity%2CUser%2CAccessRights%20%7C%20ft%20-Wrap%20-AutoSize%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3EGood%20luck%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-62660%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-62660%22%20slang%3D%22en-US%22%3E%3CP%3EThis%20is%20correct%2C%26nbsp%3Band%20frustrating%20to%20some%20extent.%20Yes%2C%20it's%20easy%20enough%20to%20schedule%20a%20script%20to%26nbsp%3Breapply%20the%20permission%20at%20a%20defined%20interval%2C%26nbsp%3Bbut%20it%20would%20be%20really%20nice%20if%20permissions%20updated%20dynamically%20when%20a%20new%20member%20is%20added%20to%20a%20security%20group%20that%20has%20been%20delegated%20access%20to%20an%20object.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-62636%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-62636%22%20slang%3D%22en-US%22%3EYou%20need%20to%20run%20the%20full%20script%20on%20a%20schedule%2C%20say%20weekly%2C%20or%20you%20need%20to%20run%20just%20the%20main%20bit%20of%20the%20script%2C%20set-mailboxpermission%2C%20once%20you%20create%20a%20new%20user.%20There%20is%20no%20automation%20in%20Exchange%20Online%20around%20user%20creation%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-61512%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-61512%22%20slang%3D%22en-US%22%3E%3CP%3EHow%20can%20I%20apply%20permissions%20to%20a%20group%2C%20and%20then%20have%20that%20permission%20level%20automatically%20applied%20to%20new%20users%20that%20are%20added%20to%20that%20group%3F%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60278%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60278%22%20slang%3D%22en-US%22%3EHi%20Edward%3CBR%20%2F%3EUse%20the%20powershell%20loop%20statement%20to%20add%20each%20user's%20shared%20calendar%20permissions%3CBR%20%2F%3Ereference%3A%3CBR%20%2F%3Eforeach%20(%24Mailbox%20in%20(Get-Mailbox%20-ResultSize%20Unlimited))%20%7B%20Add-MailboxFolderPermission%20-identity%20%22%24(%24Mailbox.Name)%3A%5CKalender%22%20-AccessRights%20LimitedDetails%20-User%20Default%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22http%3A%2F%2Fblog.powershell.no%2F2010%2F09%2F20%2Fmanaging-calendar-permissions-in-exchange-server-2010%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttp%3A%2F%2Fblog.powershell.no%2F2010%2F09%2F20%2Fmanaging-calendar-permissions-in-exchange-server-2010%2F%3C%2FA%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Ftechnet.microsoft.com%2Fen-us%2Flibrary%2Fff522363.aspx%3Ff%3D255%26amp%3BMSPPError%3D-2147217396%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Ftechnet.microsoft.com%2Fen-us%2Flibrary%2Fff522363.aspx%3Ff%3D255%26amp%3BMSPPError%3D-2147217396%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3EHope%20to%20help%20you%EF%BC%81thanks%EF%BC%81%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60244%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60244%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20Edward%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20would%20say%20create%20a%20shared%20calender%20and%20make%20few%20users%20to%20be%20the%20owners.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fsupport.office.com%2Fen-gb%2Farticle%2FVideo-Create-a-shared-calendar-in-Office-365-61b96006-70e2-4535-a34f-ee4fc772f798%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fsupport.office.com%2Fen-gb%2Farticle%2FVideo-Create-a-shared-calendar-in-Office-365-61b96006-70e2-4535-a34f-ee4fc772f798%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ERegards%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60228%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60228%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20Edward%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EYou%20can%20do%20this%3A%3C%2FP%3E%3CUL%3E%3CLI%3EConnect%20to%20Office%20365%20Exchange%20Online%3C%2FLI%3E%3CLI%3ECreate%20a%20security%20group%20called%20for%20example%20%22YourSecrurityGroup%22%3C%2FLI%3E%3CLI%3EAdd%20users%20to%20that%20group%3C%2FLI%3E%3CLI%3EExecute%20the%20folowing%20script%3CUL%3E%3CLI%3E%24GroupMembers%20%3D%20Get-DistributionGroupMember%20YourSecurityGroup%3C%2FLI%3E%3CLI%3Eforeach%20(%24GroupMember%20in%20%24GroupMembers)%20%7B%20Add-MailboxFolderPermission%20-Identity%20(%22%22%2B%20%24GroupMember.Guid%2B%20%22%3A%5CCalendar%22)%20-User%20YourSecurityGroup%20-AccessRights%20Editor%7D%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60192%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60192%22%20slang%3D%22en-US%22%3E%3CP%3ECan%20you%20elaborate%3F%20Thanks%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F46205%22%20target%3D%22_blank%22%3E%40Albert%20Dongjie%3C%2FA%3E!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60188%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60188%22%20slang%3D%22en-US%22%3EHI%20Edward%3CBR%20%2F%3ETry%20to%20share%20each%20user%20into%20the%20group%20with%20the%20Powershell%20command%3CBR%20%2F%3E(cmdlet%20Set-MailboxFolderPermission%20)%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60185%22%20slang%3D%22en-US%22%3ERe%3A%20RE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60185%22%20slang%3D%22en-US%22%3E%3CP%3EBut%20how%20can%20i%20do%20this%20for%20all%20useres%20without%20each%20person%20having%20to%20set%20their%20own%20permissions%20indiviually.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EIn%20other%20words%2C%20i%20have%20a%20group%20called%26nbsp%3BAll%20Staff.%20Now%2C%26nbsp%3BI%20want%20to%20set%20every%20member%20of%20that%20group%20to%20have%20reviewer%20permission%20on%20every%20other%20users%20calendar.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThanks%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F46205%22%20target%3D%22_blank%22%3E%40Albert%20Dongjie%3C%2FA%3E!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-60184%22%20slang%3D%22en-US%22%3ERE%3A%20How%20can%26amp%3Bnbsp%3BI%20make%20all%20users%20calendar%20shared%20with%20all%20other%20users%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-60184%22%20slang%3D%22en-US%22%3EHi%20Edward%20%2C%20Create%20a%20new%20distribution%20group%2C%20add%20all%20members%20to%20enter%2C%20open%20the%20Outlook%20calendar%20permissions%20to%20add%20a%20newly%20created%20distribution%20group%2C%20set%20the%20privilege%20level!%3C%2FLINGO-BODY%3E
Highlighted
Contributor

How can I make the calendar for all users in a particular group shared with all other users in that group? And, any time I add a new user to the all staff group, their calendar is automatically shared?

 

Thank you!

11 Replies
Highlighted
Hi Edward , Create a new distribution group, add all members to enter, open the Outlook calendar permissions to add a newly created distribution group, set the privilege level!
Highlighted

But how can i do this for all useres without each person having to set their own permissions indiviually.

 

In other words, i have a group called All Staff. Now, I want to set every member of that group to have reviewer permission on every other users calendar.

 

Thanks @Albert Dongjie!

HI Edward
Try to share each user into the group with the Powershell command
(cmdlet Set-MailboxFolderPermission )
Highlighted
Highlighted

Hi Edward,

 

You can do this:

  • Connect to Office 365 Exchange Online
  • Create a security group called for example "YourSecrurityGroup"
  • Add users to that group
  • Execute the folowing script
    • $GroupMembers = Get-DistributionGroupMember YourSecurityGroup
    • foreach ($GroupMember in $GroupMembers) { Add-MailboxFolderPermission -Identity (""+ $GroupMember.Guid+ ":\Calendar") -User YourSecurityGroup -AccessRights Editor}
Highlighted

Hi Edward,

 

I would say create a shared calender and make few users to be the owners. 

 

https://support.office.com/en-gb/article/Video-Create-a-shared-calendar-in-Office-365-61b96006-70e2-...

 

Regards

Highlighted
Hi Edward
Use the powershell loop statement to add each user's shared calendar permissions
reference:
foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Kalender" -AccessRights LimitedDetails -User Default }

http://blog.powershell.no/2010/09/20/managing-calendar-permissions-in-exchange-server-2010/
https://technet.microsoft.com/en-us/library/ff522363.aspx?f=255&MSPPError=-2147217396


Hope to help you! thanks!
Highlighted

How can I apply permissions to a group, and then have that permission level automatically applied to new users that are added to that group? 

Highlighted
You need to run the full script on a schedule, say weekly, or you need to run just the main bit of the script, set-mailboxpermission, once you create a new user. There is no automation in Exchange Online around user creation
Highlighted

This is correct, and frustrating to some extent. Yes, it's easy enough to schedule a script to reapply the permission at a defined interval, but it would be really nice if permissions updated dynamically when a new member is added to a security group that has been delegated access to an object.

 

Highlighted

I have been all over the Internet looking for something that works. Finally contacted Microsoft support and they provided me with this, which works perfectly.

 

If in Windows 10, Powershell ISE will be pre-installed. Otherwise you need to install this. 

Run as administrator to open

Run this script. It will ask you to login to your Office 365 administrator account and which level of common access you want to provide (we went for reviewer). 

 

#GIVE ALL USERs ACCESS TO ALL CALENDAR
cls
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
Write-Output "======================================================="
Write-host "============= Setting Calendar Permission =============" -foreground "yellow"
Write-Output "======================================================="
$useAccess = Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | Select Identity
cls
Write-Host "AccessRights: None, Owner, PublishingEditor, Editor, PublishingAuthor, Author, NonEditingAuthor, Reviewer, Contributor" -foreground "yellow"
Write-Host "This script will attempt to modify and add a user permission. You may have an error message if the user is already added. Please ignore." -foreground "darkcyan"
Write-Host "---------------------" -foreground "gray"
$accRight=read-host "Please enter the desired access right for all users. Ex: Reviewer"
ForEach ( $user in $useAccess ) {
Get-Mailbox -ResultSize Unlimited | ForEach {
If ( $_.Identity -ne $user.Identity ) {
Add-MailboxFolderPermission "$($_.SamAccountName):\calendar" -User $user.Identity -AccessRights $accRight
Set-MailboxFolderPermission "$($_.SamAccountName):\calendar" -User $user.Identity -AccessRights $accRight
}
}
}
cls
Write-Output "======================================================="
Write-host "============ CALENDAR INFORMATION UPDATED =============" -foreground "green"
Write-Output "======================================================="
ForEach ($mbx in Get-Mailbox -ResultSize Unlimited) {Get-MailboxFolderPermission ($mbx.Name + “:\Calendar”) | Select Identity,User,AccessRights | ft -Wrap -AutoSize}
 
Good luck