Cancel Microsoft Teams Meetings Without Sending Notifications

Nehal Bhaskar Kolipaka 0 Reputation points
2026-08-31T18:46:35.87+00:00

Issue Summary

We have implemented Microsoft Graph API to fetch and cancel Microsoft Teams meetings for a user who is leaving the organization.

APIs Currently Implemented

1. Fetch meetings within a date range

GET https://graph.microsoft.com/v1.0/users/{user-id}/calendarView?startDateTime={startDateTime}&endDateTime={endDateTime}

Example

GET https://graph.microsoft.com/v1.0/users/******@company.com/calendarView?startDateTime=2026-08-01T00:00:00Z&endDateTime=2026-12-31T23:59:59Z

This API returns all calendar events (including Microsoft Teams meetings) organized by the user for the specified start and end date range.

2. Cancel the meeting

POST https://graph.microsoft.com/v1.0/users/{user-id}/events/{event-id}/cancel

Current Behavior

The POST /users/{user-id}/events/{event-id}/cancel API successfully cancels the meeting, but it automatically sends:

Meeting cancellation emails to all attendees.

Microsoft Teams cancellation notifications to attendees.

Expected Behavior

We need to cancel the meeting without sending any notification (email or Teams notification) to attendees or the organizer.

The meeting should be cancelled silently as part of our automation process.

Questions

Is there any supported Microsoft Graph API option to cancel a meeting without notifying attendees?

Is there any request parameter or header that suppresses cancellation emails and Teams notifications?

If the cancel API always sends notifications, what is the Microsoft-recommended approach to silently cancel/remove Teams meetings for a user?

We are specifically using the Graph Calendar View API with startDateTime and endDateTime to retrieve meetings, followed by the Graph cancel API shown above.

Microsoft Teams | Microsoft Teams for business | Calendar | Manage calendars
0 comments No comments

1 answer

Sort by: Most helpful
  1. James Gamble 0 Reputation points
    2026-08-31T18:58:56.49+00:00

    Hola Nehal,

    The behavior you are seeing is expected with the Graph calendar APIs. The /cancel action is specifically designed to cancel the meeting and send a cancellation message to the attendees. There is no documented request header or parameter on that endpoint to suppress those notifications. :contentReference[oaicite:0]{index=0}

    Microsoft documents the cancellation action here.

    There is a difference between "removing the organizer's calendar item" and actually "canceling the meeting."

    When a Teams meeting is created through the calendar, the calendar event is the authoritative meeting object from the Exchange/Outlook side. Each attendee has their own copy of that meeting. A proper cancellation sends meeting-cancellation messages so Exchange can update those attendee copies. That is why Graph does not treat attendee notification as optional for a real cancellation.

    Using DELETE instead of /cancel does not solve this either. Microsoft explicitly documents that deleting a meeting from the organizer's calendar also sends a cancellation message to the attendees.

    So there is not currently a supported Graph equivalent of:

    DELETE event

    suppressCancellationMessages=true

    Even if you could silently remove only the organizer's copy, the attendees would still have their meeting objects and could continue to see and join the Teams meeting. From a calendaring perspective, that is an orphaned meeting rather than a canceled meeting.

    Since your use case is specifically for offboarding users, I would consider using Exchange Online's Remove-CalendarEvents cmdlet instead of enumerating and canceling individual events via Graph. It was designed for scenarios such as an employee leaving the organization:

    Remove-CalendarEvents -Identity ******@company.com -CancelOrganizedMeetings -QueryWindowInDays 365

    You can preview what it would affect first:

    Remove-CalendarEvents -Identity ******@company.com -CancelOrganizedMeetings -QueryWindowInDays 365 -PreviewOnly -Verbose

    That cmdlet still sends cancellations, though. Microsoft specifically notes that cancellation messages must be sent to remove meetings from attendees' and resources' calendars.

    So if the requirement is truly "remove these meetings from everyone's calendars but tell nobody," I don't believe there is a supported Graph or Exchange mechanism that provides that behavior. The notification is part of the mechanism Exchange uses to propagate the cancellation.

    If the real requirement is instead "remove the departing user's calendar objects without caring whether attendees retain their copies," that is a different problem. There may be other cleanup approaches worth discussing.

    Thanks,

    James

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.