PowerShell script om geplande vergaderingen uit Microsoft 365 agenda's te verwijderen. Veilig 2-staps proces: eerst preview, daarna daadwerkelijke verwijdering.
# 1. PowerShell als Administrator starten
# 2. Exchange Online module installeren
Install-Module ExchangeOnlineManagement -Force -AllowClobber
# 3. Execution Policy (indien nodig)
Set-ExecutionPolicy RemoteSigned# 1. Verbind met Exchange Online
Connect-ExchangeOnline
# 2. Script uitvoeren (met PreviewOnly)
.\Remove-CalendarEvents.ps1Output voorbeeld:
Voer het e-mailadres in: gebruiker@bedrijf.nl
[PREVIEW] 3 vergaderingen gevonden tussen 2026-01-15 en 2027-12-31
Confirm: The meeting(s) will be canceled... [A] Yes to All
VERBOSE: Geen wijzigingen doorgevoerd (preview modus)
# Script ZONDER -PreviewOnly parameter uitvoeren
# Bewerk regel 15: verwijder/commentarieer -PreviewOnly
Remove-CalendarEvents -Identity $email -CancelOrganizedMeetings -QueryStartDate $start -QueryWindowInDays $days$email = Read-Host "Voer het e-mailadres in" # Interactieve invoer
$start = (Get-Date).Date # Vandaag 00:00
$days = 730 # 2 jaar vooruit (max 1825)
Remove-CalendarEvents `
-Identity $email ` # Doelgebruiker
-CancelOrganizedMeetings ` # Alleen zelf georganiseerde meetings
-QueryStartDate $start ` # Startdatum
-QueryWindowInDays $days ` # Tijdsvenster
-PreviewOnly # ✅ ZEKER EERST GEBRUIKEN!- Exchange Administrator of Global Administrator
- MFA-ondersteund via moderne authenticatie
| Functie | Gedrag |
|---|---|
| ✅ Organized meetings | Worden geannuleerd + verwijderd van alle attendees |
| ❌ Meetings als attendee | Blijven staan |
| ❌ Afspraak (geen attendees) | Blijven staan |
| 📅 Tijdsbereik | Vandaag tot X dagen vooruit (max 1825) |
1. Test eerst op eigen agenda of testgebruiker
2. Gebruik altijd PreviewOnly in eerste run
3. Controleer output: "X meetings gevonden"
4. Pas $days aan indien korter/langer tijdsvenster nodig
# Aangepast tijdsvenster (bijv. laatste 30 dagen)
$start = (Get-Date).AddDays(-30).Date
$days = 60
# Productie-ready met logging
Start-Transcript -Path "C:\Logs\CalendarCleanup_$(Get-Date -f yyyyMMdd).log"Disconnect-ExchangeOnline*Door Prashant - Cloud Engineer
./Remove-CalendarEvents.ps1 - Production-ready met veiligheidschecks