No description, website, or topics provided.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitattributes Initial commit Jun 5, 2018
Get-CalendarItems.ps1 Fixing issue when ConvertFrom-Json is failing Feb 18, 2019
LICENSE Initial commit Jun 5, 2018 Fixed formatting Aug 6, 2018


Retrieves Calendar items of specified mailboxes for troubleshooting.


Permissions: Either FullAccess or ApplicationImpersonation

Exchange Web Services Managed API


#run the script against a single mailbox for a given CleanObjectID

.\Get-CalendarItems.ps1 -EmailAddress -CleanGlobalObjectID  040000008200E00074C5B7101A82E00800000000903A2068F779D0010000000000000000100000007900DF424FFB6C498B4B68E21CA9D455

#same as before, but load all properties for the items

.\Get-CalendarItems.ps1 -EmailAddress -CleanGlobalObjectID  040000008200E00074C5B7101A82E00800000000903A2068F779D0010000000000000000100000007900DF424FFB6C498B4B68E21CA9D455 -AllItemPropsThe script has multiple parameters. Only a few are shown in this example:

#search only in folders with type IPM.Appointment```

.\Get-CalendarItems.ps1 -EmailAddress -CleanGlobalObjectID  040000008200E00074C5B7101A82E00800000000903A2068F779D0010000000000000000100000007900DF424FFB6C498B4B68E21CA9D455 -AllItemProps -CalendarOnly.\Get-CalendarItems.ps1 -EmailAddress, -Impersonate -Credentials (Get-Credential) -Subject '1:1 with Rob' 

#search in all folders for a specific time range

.\Get-CalendarItems.ps1 -EmailAddress -Subject "Bi-Weekly" -AllFolders -StartDateLastModified ([datetime]::Parse("04.04.2015")) -EndDateLastModified ([datetime]::Parse("05.04.2015"))### About

Required Parameters


The e-mail address of the mailbox, which will be checked. The script accepts piped objects from Get-Mailbox or Get-Recipient

Optional Parameters


Credentials you want to use. If omitted current user context will be used.For more information on this script, as well as usage and examples, see the related blog article on The Clueless Guy.


Use this switch, when you want to impersonate.


The subject, which you want to search for.


If you want to limit the search for items modified after the given date.


If you want to limit the search for items modified before the given date.


Use GlobalObjectID in your search for items.


Use CleanGlobalObjectID in your search for items.


By default the script will enumerate all folders under RecoverableItemsRoot and Calendar,Inbox and Sent Items. If you want to limit to folders with type "IPF.Appointment" use this switch.


By default the script tries to retrieve the EWS endpoint via Autodiscover. If you want to run the script against a specific server, just provide the name in this parameter. Not the URL!


All folders within the mailbox will be search for a given criteria (e.g.:Subject,GlobalObjectID or CleanGlobalObjectID)


The full set of all properties for each item will be loaded


The output will be sort by DateTimeCreated


If you ant to have the ItemId converted provide the destination format. Valid formats are "EwsLegacyId","EwsId","EntryId","HexEntryId","StoreId","OwaId" based on


Switch to trust any certificate.


Here you can define the format for the timestamp LastModifiedTime. By default the current culture will be enumerated and the milliseconds appended. To have the same format as the CmdLets use "yyyyMMddThhmmssfff"


Path to the DLL


Filter by Start date of a single appointment. Note: Cannot be used to find recurring meetings!


Filter by End date of a single appointment. Note: Cannot be used to find recurring meetings!


When filter by Datetimecreated, all items created after this date are returned.


When filter by Datetimecreated, all items created before this date are returned.


When this switch is used, DateTimeCreated and LastModifiedTime is converted to local time of the machine where the script is running on.


Use OAuth for authentication.


UserPrincipalName when using OAuth. This is optional.


Path to


ClientId when using OAuth.


ConnectionUri when using OAuth.


RedirectUri when using OAuth.


PromptBehavior when using OAuth.


Troubleshooting calendar items

Advanced troubleshooting calendar items

EWS and OAuth


This project is licensed under the MIT License - see the for details.