How to Delete recurring appointments using CDO
Hi, I work with Microsoft PSS Messaging Team. Thought of sharing few things which I learned in my troubleshooting. This is one of them!!
How to Delete recurring appointments using CDO.
Code to delete appointment is generally follwed like this:
For Each oMsg in oMsgCol
iCount = iCount + 1
If Instr(oMsg.Sender.Name, "/OU") > 0 Then 'Checking if the email address is no more in use. Generally used for
people who left the organization and email account is being deleted.
Wscript.Echo iCount & " - " & oMsg.StartTime & ";" & oMsg.EndTime & ";" & oMsg.Organizer & ";" & oMsg.Subject
oMsg.Delete
iDeleted = iDeleted + 1
End If
Next
Above code block would fail in case of recurring appointments. Because recurring appointments are linked with master appointment and correct way for deleting recurring appointment would be through master appointment.
A code block would look like below
If oMsg.IsRecurring Then
Set MasterAppt = oMsg.GetRecurrencePattern.Parent 'Get the parent Appointment
MasterAppt.ClearRecurrencePattern
MasterAppt.Update
MasterAppt.Delete
End If
Set MasterAppt = Nothing 'Set the master appointment to nothing
'Cleanup
oMsg.Delete
Set oMsg = Nothing
Looking at the code above we could see that we need to actually clear the recurrence pattern first before deleting the recurring appointment. IsRecurring property returns whether the appointment is recurring or not.
A complete code block would look like below:
For Each oMsg in oMsgCol
iCount = iCount + 1
If Instr(oMsg.Sender.Name, "/OU") > 0 Then
Wscript.Echo iCount & " - " & oMsg.StartTime & ";" & oMsg.EndTime & ";" & oMsg.Organizer & ";" & oMsg.Subject
If oMsg.IsRecurring Then
Set MasterAppt = oMsg.GetRecurrencePattern.Parent 'Get the parent Appointment
MasterAppt.ClearRecurrencePattern
MasterAppt.Update
MasterAppt.Delete
End If
Set MasterAppt = Nothing 'Set the master appointment to nothing
oMsg.Delete
iDeleted = iDeleted + 1
set oMsg=Nothing
set MasterAppt = Nothing
End If
Next
- Hope this helps somebody somewhere!!
-Sachin Sancheti
you are never given a wish without giving power to fulfill it.!!!