Scripts · PowerShell

Get-RecurringTeamsMeetings

Find recurring Teams meetings on user calendars and export organizer, subject, recurrence, and attendees to CSV.

View on GitHub

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

  1. Install the Microsoft Graph PowerShell module.
  2. Create an Entra app registration with the Calendars.Read and User.Read.All application permissions, grant admin consent, and create a client secret.
  3. Run the script and enter the tenant ID, application (client) ID, and client secret when prompted. Add -UserCsvPath with a CSV that has a UserPrincipalName header 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