What it is
A PowerShell script that connects to Microsoft Graph with an app registration (application permissions) and scans the calendars of all users, or of users listed in a CSV, for recurring online meetings. It writes RecurringMeetingsReport.csv with the calendar owner, subject, recurrence pattern, participant count, invited participants, and creation time.
Why use it
- Identify recurring Teams meeting series across the tenant or for a pilot group.
- See participant counts and invitee lists for each series.
- Uses app-only application permissions rather than a signed-in user's permissions.
How to use it
- Install the Microsoft Graph PowerShell module.
- Create an Entra app registration with the
Calendars.ReadandUser.Read.Allapplication permissions, grant admin consent, and create a client secret. - Run the script and enter the tenant ID, application (client) ID, and client secret when prompted. Add
-UserCsvPathwith a CSV that has aUserPrincipalNameheader to scan only specific users:
.\Get-RecurringTeamsMeetings.ps1 -UserCsvPath "C:\path\to\your\users.csv"Prerequisites
- Microsoft Graph PowerShell module (PowerShell 7 or later recommended)
- Microsoft Entra app registration with Calendars.Read and User.Read.All application permissions, admin consent, and a client secret
- Optional CSV with a UserPrincipalName header to scan specific users