[Powershell Script Tips] Working with Calendar Logging in Exchange Online


As all activities related to calendar Items are logged and can be extracted to review so one of the easiest ways to troubleshooting the missing calendar items on a user Mailbox is to review the meetings logs. To extract the meeting logs we need the Meeting subject and the user email address, once we have extracted the logs we can review the calendar logs chronology and distinguish what has happened with the meeting on user calendar. This post will further discuss how to extract the Calendar Items Logs easily.
This post will focus on how to extract the Calendar Logging Logs, Calendar logging is by default turned has Quota of 6 GB.

All activities related to calendar Items are logged and can be extracted to review.

Getting Calendar logging is a two-step process, First, we will get the logs using the "Get-CalendarDiagnosticLog" CMD and then we will do the Analysis of the Logs using the "Get-CalendarDiagnosticAnalysis".

!!!!!!!"Get-CalendarDiagnosticAnalysis" is no longer valid for Exchange online!!!!!!

 if you try to run this cmd you will encounter the following error.

"Cannot process argument transformation on parameter 'CalendarLogs'. Cannot convert value "System.Collections.ArrayList" to type "Microsoft.Exchange.Management.StoreTasks"

To get the calendar logs just run the following cmd.

Get-CalendarDiagnosticObjects -Identity sunil.chauhan@domain.com -Subject "test meeting"

$logs = Get-CalendarDiagnosticLog -Identity sunil.chauhan@domain.com -Subject $subject;
Get-CalendarDiagnosticAnalysis -CalendarLogs $logs -DetailLevel Advanced > $subject + ".csv
"

The problem with the data is that it's in the string format so you would require to do some post-processing on it, I found it easy to easy to import the data to CSV and then re-export.

to make it easier for myself I made this small script, which can be used as one cmd.

Comments