Calendário do Outlook bagunçado? Veja como identifiquei e corrigi conflitos de reunião em massa com PowerShell

Fala Pessoa, tudo bem com vocês?

Se você já perdeu tempo resolvendo reunião que não aparece, convite que some, horário que muda sozinho ou conflito de sala, este artigo é pra você. Eu te mostro como rastrear, diagnosticar e corrigir eventos de calendário bugados no Exchange/Outlook com PowerShell.

Nada de clicar em mil caixas, nada de adivinhar. Aqui é tiro certo.

O cenário: caos no calendário

Um usuário muda o horário da reunião. Outro responde “Aceitar” depois da alteração. A sala confirma o horário antigo. Resultado?

  • Reunião duplicada
  • Sala ocupada em horário errado
  • Gente indo pra call errada
  • Suporte virando psicólogo

A culpa é de quem? De ninguém. Ou melhor, de todo mundo. Mas o admin tem que resolver.

A arma secreta: Get-CalendarDiagnosticLog

Com esse cmdlet do Exchange, você pode ver:

  • Quem criou o evento
  • Quem alterou e quando
  • Qual cliente (Outlook, Mobile, Teams) causou conflito
  • Se o delegate ferrou tudo sem querer
$usuario = "contoso@contoso.com"
$data = Get-Date
Get-CalendarDiagnosticLog -Identity $usuario -StartDate $data.AddDays(-7) -EndDate $data |
Where-Object { $_.Subject -like "*reunião*" } |
Select Subject, Organizer, GlobalObjectId, IsMeeting, IsCancelled, LastModifiedTime, Client, CleanGlobalObjectId

Quer saber se o Teams comeu o convite? Tá lá. Quer saber se o usuário alterou via celular às 2 da manhã? Também tá lá.

Bônus: como cancelar o evento bugado via PowerShell

Se você achou o evento com problema, use Microsoft Graph ou EWS para cancelar a reunião com aviso pros convidados.
Quer script que faz isso com escolha de ID? Me chama.


Conclusão: pare de ser reativo

Se você ainda resolve problema de calendário “olhando o Outlook do usuário”, você está brincando de suporte. Admin de verdade investiga com logs e resolve com script.

Esse tipo de script aqui já me salvou em ambiente com mais de 100 mil caixas no Exchange Online.