add-MailboxFolderPermission

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
Import-Csv C:\365\sharedcalender.csv | foreach { add-MailboxFolderPermission -Identity "h.hemmink@geriant.nl:\calendar" -User $_.alias -AccessRights PublishingEditor }
https://theitbros.com/add-calendar-permissions-in-office-365-via-powershell/
alias
e.vanlaarhoven@geriant.nl
m.huberts@geriant.nl
c.nagelhout@geriant.nl
s.hoefakker@geriant.nl
a.buikema@geriant.nl
Alle gebruikers open zetten met Reviewer rechten voor 1 gebruiker.
Get-Mailbox | foreach{ Add-MailboxFolderPermission $($_.UserPrincipalName+":\Calendar") -User daan.vanbelkom@taxperience.nl -AccessRights Reviewer }

You can get the name of the calendar in the current user’s language configuration with the command:

(Get-MailboxFolderStatistics USER@iris-one.nl -FolderScope Calendar).Identity

All Mailbox Agenda Rights

$Result=@()
$allMailboxes = Get-Mailbox -ResultSize Unlimited | Select-Object -Property Alias,Displayname,PrimarySMTPAddress
$totalMailboxes = $allMailboxes.Count
$i = 1 
$allMailboxes | ForEach-Object {
$mailbox = $_
Write-Progress -activity "Processing $($_.alias)" -status "$i out of $totalMailboxes completed"
$folderPerms = Get-MailboxFolderPermission -Identity "$($_.PrimarySMTPAddress):\Agenda"
$folderPerms | ForEach-Object {
$Result += New-Object PSObject -property @{
Identity = $_.Identity
MailboxName = $mailbox.alias
User = $_.User
Permissions = $_.AccessRights
}}
$i++
}
$Result | Select Identity, MailboxName, User, Permissions |
Export-CSV "C:\MailKadans\CalendarPermissions_Agenda.CSV" -NoTypeInformation -Encoding UTF8