Here are some commands that are handy to use for Office 365.
#Assign user credentials to variable "LiveCred"
$LiveCred = Get-Credential
#Connect to your Cloud-hosted Exchange using the credential stored in #LiveCred
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
#Import Cmdlets
Import-PSSession $Session
#Close your session
Remove-PSSession $Session
#Grant Bob Barker calendar (or any folder) rights to Adam Sandler's. The field within " " can be either the user principal name or primary alias
#Possible rights: Ownder, Publishing Editor, Editor, Author, Contributor, Reviewer, Custom
#Note: practice-wise (for your own mental check), the account being given access is normally to the right of the account to which you are assigning the right.
Add-MailboxFolderPermission -Identity "The.Dude:\Calendar" -AccessRights PublishingEditor -User "Test Guy"
#View permissions on a folder
Get-MailboxFolderPermission -Identity "The Dude:\Calendar"
#View all accounts that have mailbox access beyond SELF
Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false}
#The export to a file version of above
Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-Csv -NoTypeInformation mailboxpermissions.csv
#Grant user Send-as to identity
Add-RecipientPermission <identity> -AccessRights SendAs -Trustee <user>
#View all boxes that have Send-as attributes on them
Get-RecipientPermission | where {($_.Trustee -ne 'nt authority\self') -and ($_.Trustee -ne 'null sid')}