{"id":6149,"date":"2026-03-09T12:25:09","date_gmt":"2026-03-09T10:25:09","guid":{"rendered":"https:\/\/www.msb365.blog\/?p=6149"},"modified":"2026-03-09T12:25:09","modified_gmt":"2026-03-09T10:25:09","slug":"cleaning-meetings-in-m365","status":"publish","type":"post","link":"https:\/\/www.msb365.blog\/?p=6149","title":{"rendered":"Cleaning Meetings in M365"},"content":{"rendered":"<style>\n    .it-doc-container {\n        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n        line-height: 1.6;\n        color: #333;\n        max-width: 900px;\n        margin: 0 auto;\n        padding: 30px;\n        background-color: #ffffff;\n        border-radius: 8px;\n        box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n    }\n    .it-doc-container h1, .it-doc-container h2, .it-doc-container h3 {\n        color: #005a9e;\n    }\n    .it-doc-container h1 {\n        border-bottom: 2px solid #005a9e;\n        padding-bottom: 10px;\n        font-size: 1.8em;\n    }\n    .it-doc-container code {\n        background-color: #f0f0f0;\n        padding: 3px 6px;\n        border-radius: 4px;\n        font-family: 'Consolas', 'Courier New', monospace;\n        color: #c7254e;\n        font-size: 0.9em;\n    }\n    .it-doc-container pre {\n        background-color: #1e1e1e;\n        color: #d4d4d4;\n        padding: 15px;\n        border-radius: 6px;\n        overflow-x: auto;\n        font-family: 'Consolas', 'Courier New', monospace;\n    }\n    .it-doc-container pre code {\n        background-color: transparent;\n        color: inherit;\n        padding: 0;\n    }\n    .it-doc-container .note {\n        background-color: #e7f3fe;\n        border-left: 6px solid #2b88d8;\n        padding: 15px 20px;\n        margin: 20px 0;\n        border-radius: 4px;\n    }\n    .it-doc-container .warning {\n        background-color: #fff4ce;\n        border-left: 6px solid #fbbc05;\n        padding: 15px 20px;\n        margin: 20px 0;\n        border-radius: 4px;\n    }\n    .it-doc-container .step {\n        margin-bottom: 30px;\n    }\n    .it-doc-container .step-title {\n        font-weight: bold;\n        font-size: 1.1em;\n        margin-bottom: 10px;\n        display: block;\n    }\n<\/style>\n<div class=\"it-doc-container\">\n<p>This documentation describes how to properly cancel and remove meetings and recurring meetings organized by a departed employee from the calendars of all attendees and resource calendars (e.g., conference rooms) in Microsoft 365.<\/p>\n<div class=\"warning\">\n        <strong>Important Prerequisite:<\/strong> The departed employee&#8217;s mailbox must <strong>not be permanently deleted<\/strong> yet. Execute these steps as part of the offboarding process, <em>before<\/em> the account is completely removed from Microsoft 365.\n    <\/div>\n<hr>\n<h2>Method 1: The Best Practice Approach (PowerShell)<\/h2>\n<p>This is the official and most efficient method. It automatically sends cancellations to all attendees and frees up previously booked rooms.<\/p>\n<div class=\"step\">\n        <span class=\"step-title\">Step 1: Check Prerequisites &#038; Install Module<\/span><\/p>\n<p>Launch PowerShell as an Administrator. If you haven&#8217;t already, you need to install the Exchange Online module:<\/p>\n<pre><code>Install-Module -Name ExchangeOnlineManagement -Force<\/code><\/pre>\n<\/p><\/div>\n<div class=\"step\">\n        <span class=\"step-title\">Step 2: Connect to Exchange Online<\/span><\/p>\n<p>Log in with your Administrator account (Global Admin or Exchange Admin):<\/p>\n<pre><code>Connect-ExchangeOnline -UserPrincipalName [email protected]<\/code><\/pre>\n<\/p><\/div>\n<div class=\"step\">\n        <span class=\"step-title\">Step 3: Delete Meetings (Remove-CalendarEvents)<\/span><\/p>\n<p>Use the <code>Remove-CalendarEvents<\/code> cmdlet to cancel the meetings. Here are two typical use cases:<\/p>\n<h3>Use Case A: Standard Cleanup (1 Year)<\/h3>\n<p>Employee John Doe is leaving the company. All of his future meetings for the upcoming year should be canceled.<\/p>\n<pre><code>Remove-CalendarEvents -Identity \"[email protected]\" -CancelOrganizedMeetings -QueryWindowInDays 365<\/code><\/pre>\n<h3>Use Case B: Preview Affected Meetings (WhatIf)<\/h3>\n<p>If you are unsure and want to see which meetings would be deleted without actually executing the command, use the <code>-WhatIf<\/code> switch:<\/p>\n<pre><code>Remove-CalendarEvents -Identity \"[email protected]\" -CancelOrganizedMeetings -QueryWindowInDays 120 -WhatIf<\/code><\/pre>\n<\/p><\/div>\n<div class=\"step\">\n        <span class=\"step-title\">Step 4: Disconnect Session<\/span><\/p>\n<p>For security reasons, always disconnect your session after successfully completing your tasks:<\/p>\n<pre><code>Disconnect-ExchangeOnline -Confirm:$false<\/code><\/pre>\n<\/p><\/div>\n<hr>\n<h2>Method 2: The Manual Workaround (Web Interface \/ GUI)<\/h2>\n<p>Use this method only if you lack PowerShell permissions or if you need to manually manage a specific, single recurring meeting.<\/p>\n<div class=\"step\">\n        <span class=\"step-title\">Step 1: Convert to a Shared Mailbox<\/span><\/p>\n<ul>\n<li>Open the <strong>Microsoft 365 admin center<\/strong>.<\/li>\n<li>Go to <strong>Users<\/strong> > <strong>Active users<\/strong>.<\/li>\n<li>Click on the departed employee&#8217;s name.<\/li>\n<li>Select the <strong>Mail<\/strong> tab and click on <strong>Convert to shared mailbox<\/strong>.<\/li>\n<\/ul><\/div>\n<div class=\"step\">\n        <span class=\"step-title\">Step 2: Grant Full Access Permissions<\/span><\/p>\n<ul>\n<li>Scroll down in the user&#8217;s Mail settings to <strong>Mailbox permissions<\/strong>.<\/li>\n<li>Click on <strong>Manage mailbox permissions<\/strong>.<\/li>\n<li>Add your own Admin account under <strong>Read and manage (Full Access)<\/strong>.<\/li>\n<\/ul>\n<div class=\"note\">\n            <strong>Note:<\/strong> It can take up to 60 minutes for the permissions to fully synchronize across the cloud.\n        <\/div>\n<\/p><\/div>\n<div class=\"step\">\n        <span class=\"step-title\">Step 3: Open Mailbox and Cancel the Series<\/span><\/p>\n<ul>\n<li>Open <strong>Outlook on the web (OWA)<\/strong> with your Admin account.<\/li>\n<li>Click on your profile picture in the top right corner and select <strong>Open another mailbox&#8230;<\/strong><\/li>\n<li>Enter the email address of the departed employee and open it.<\/li>\n<li>Switch to the <strong>Calendar<\/strong> view.<\/li>\n<li>Locate the recurring meeting in question.<\/li>\n<li>Right-click it and select <strong>Cancel<\/strong> -> <strong>Cancel series<\/strong>.<\/li>\n<li>Send the cancellation. The meeting will now be removed from all attendees&#8217; calendars.<\/li>\n<\/ul><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This documentation describes how to properly cancel and remove meetings and recurring meetings organized by a departed employee from the calendars of all attendees and resource calendars (e.g., conference rooms) in Microsoft 365. Important Prerequisite: The departed employee&#8217;s mailbox must not be permanently deleted yet. Execute these steps as part of the offboarding process, before [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6150,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/6149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6149"}],"version-history":[{"count":1,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/6149\/revisions"}],"predecessor-version":[{"id":6151,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/6149\/revisions\/6151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/media\/6150"}],"wp:attachment":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}