Skip to content

Pulling Ical Links From 365 Mailboxes

Tags: exchange_online


I did this for a dashboard originally, and then also did it to sync my personal calendar to Nextcloud. It is a nice long list of commands but relatively straight forward.

To start a session set your execution policy and provide credentials. The credentials are your full email and password. As far as I can tell, this is a universal section that doesn’t need to be modified.

Terminal window
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

The next session is where you get your URLs from, you need to substitute email@domain.com and Calendar for your target user and calendar name (Calendar is default). This also generates an HTML link, it is a pretty display.

Terminal window
Import-PSSession $Session
Set-MailboxCalendarFolder email@domain.com:\Calendar -PublishEnabled $true
Set-MailboxCalendarFolder -DetailLevel fulldetail -identity email@domain.com:\Calendar
Get-MailboxCalendarFolder email@domain.com:\Calendar | fl