Estou usando a seguinte sub-rotina do VBA para excluir compromissos do meu calendário.
Public Sub deleteSelectedAppointment()
Dim obj As Object
Dim cl As Integer
Dim apt As AppointmentItem
Dim aptDel As AppointmentItem
Dim pattern As RecurrencePattern
Dim cnt As Integer
On Error GoTo ErrHandler
cnt = 0
For Each obj In ActiveExplorer.Selection
cl = obj.Class
Select Case cl
Case olMail
Case olTask
Case olAppointment
Set apt = obj
Debug.Print "Appointment " & apt.subject
If apt.IsRecurring Then
' find and delete the selected item in a series
Set pattern = apt.GetRecurrencePattern()
Set aptDel = pattern.GetOccurrence(apt.Start)
Else
' non-recurring appointment
Set aptDel = apt
End If
If aptDel Is Nothing Then
Debug.Print "Nothing to delete!"
Else
aptDel.Delete
cnt = cnt + 1
End If
Case Else
Debug.Print "unexpected class " & cl
End Select
Next obj
Debug.Print "Deleted appointments: " & cnt
Exit Sub
ErrHandler:
MsgBox "Cannot delete appointment" & vbCrLf & Err.Description, vbInformation
Err.Clear
On Error GoTo 0
End Sub
Funciona também para tarefas e correios. Obviamente, essa rotina pode excluir muito se não for usada com cuidado ...