Reject/decline one appointment on a recurring meeting

  • Thread starter Thread starter David
  • Start date Start date
D

David

Hello team,

I am trying to write a VBA routine for outlook2003 that will allow me to select multiple calendar items and reject/decline the appointments adding the same text to explain why i reject them (like going on vacation, trip etc).

Issue#1: how to handle the recurring meeting in which i want to reject one instance of them.
Issue#2: how to automate the creation of text that will go along with the decline message

Here is my initial attempt. Notice my workaround to issue#2. i am generating a new message rather than creating text to the decline message

thanks a lot.
David

---------------

Public Sub RejectInvites()

Dim myOlApp, myNameSpace As Object
Dim MyItem, Sel, DestinationFolder
Dim Appointment As AppointmentItem
Dim MyPattern As RecurrencePattern
Dim ThisAppointmentInstance As AppointmentItem
Dim MyException As Exceptions
Dim MyStr As String
Dim I, J, MyCount, response As Integer

MyStr = InputBox("Please enter the text to be used as the reason for cancellation", "Enter text")
If MyStr = "" Then Exit Sub


Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set Sel = Application.ActiveExplorer.Selection

For I = 1 To Sel.Count
If Sel.Item(I).Class = olAppointment Then
Set Appointment = Sel.Item(I)
' workaround for issue#2
Set MyItem = myOlApp.CreateItem(olMailItem)
MyItem.BodyFormat = olFormatPlain
MyItem.Subject = "Unable to attend this meeting [" & Appointment.Subject & "]"
MyItem.To = Appointment.Organizer
MyItem.Body = MyStr & vbCrLf & vbCrLf
MyItem.Body = MyItem.Body & "The invite was for: " & Appointment.Start & vbCrLf & vbCrLf ' ****** Issue#1 appointment.start is not the selected one
MyItem.Body = MyItem.Body & Appointment.Body
MyItem.Send


If Appointment.RecurrenceState = olApptNotRecurring Then
Appointment.Respond olMeetingDeclined, False, False 'True ', True ' no dialog
Else

Set MyPattern = Appointment.GetRecurrencePattern
Set ThisAppointmentInstance = MyPattern.GetOccurrence(Sel.Item(I).Start) ' ***** this is wrong. Help here is needed. Issue#1
ThisAppointmentInstance.Respond olMeetingDeclined, False, False

End If

End If

Next

Set myOlApp = Nothing

End Sub
 
Back
Top