Skip to content

PowerShell script voor het veilig verwijderen van geplande vergaderingen uit Microsoft 365 agenda's

License

Notifications You must be signed in to change notification settings

Mcprashant/Remove-CalendarEvents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Remove-CalendarEvents PowerShell Script

🎯 Doel

PowerShell script om geplande vergaderingen uit Microsoft 365 agenda's te verwijderen. Veilig 2-staps proces: eerst preview, daarna daadwerkelijke verwijdering.

📋 Werkinstructie

STAP 1: Voorbereiding (eenmalig)

# 1. PowerShell als Administrator starten

# 2. Exchange Online module installeren
Install-Module ExchangeOnlineManagement -Force -AllowClobber

# 3. Execution Policy (indien nodig)
Set-ExecutionPolicy RemoteSigned

STAP 2: Preview Modus (ALTIJD VERPLICHT EERST!)

# 1. Verbind met Exchange Online
Connect-ExchangeOnline

# 2. Script uitvoeren (met PreviewOnly)
.\Remove-CalendarEvents.ps1

Output 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)

STAP 3: Daadwerkelijke Verwijdering (alleen na preview)

# Script ZONDER -PreviewOnly parameter uitvoeren
# Bewerk regel 15: verwijder/commentarieer -PreviewOnly
Remove-CalendarEvents -Identity $email -CancelOrganizedMeetings -QueryStartDate $start -QueryWindowInDays $days

⚙️ Script Uitleg

$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!

🔐 Rechtenvereisten

  • Exchange Administrator of Global Administrator
  • MFA-ondersteund via moderne authenticatie

⚠️ Belangrijke Opmerkingen

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)

🧪 Testen

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

🚀 Geavanceerd Gebruik

# 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"

🔌 Afronden

Disconnect-ExchangeOnline

*Door Prashant - Cloud Engineer ./Remove-CalendarEvents.ps1 - Production-ready met veiligheidschecks

About

PowerShell script voor het veilig verwijderen van geplande vergaderingen uit Microsoft 365 agenda's

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors