TechnicalTophat
TechnicalTophat

Reputation: 1725

Auto accept/auto tentative accept

I want to accept or tentatively accept meeting requests in Outlook, depending on whether I have a meeting at that time. I've got the rule set up; it runs the VBA as far as I know, but the code isn't working. I can't find the issue with it.

Sub AcceptDecline(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Request" Then
    Exit Sub 'if this messageclass isn't a meeting request
End If

Dim oAppt As AppointmentItem
Set oAppt = oRequest.GetAssociatedAppointment(True)

Dim myAcct As Outlook.Recipient
Dim myFB As String

Set myAcct = Session.CreateRecipient("[email protected]")

myFB = myAcct.FreeBusy(oAppt.Start, 5, False) 'gets the free or busy status of my calendar

Dim oResponse
Dim i As Long
Dim test As String

i = (TimeValue(oAppt.Start) * 288)
test = Mid(myFB, i - 2, (oAppt.Duration / 5) + 2)

If InStr(1, test, "1") Then
    Set oResponse = oAppt.Respond(olMeetingTentative, True)
    oResponse.Display
    oResponse.Send

Else
    Set oResponse = oAppt.Respond(olMeetingAccepted, True)
    oResponse.Display
    oResponse.Send
End If
End Sub

Upvotes: 0

Views: 977

Answers (1)

niton
niton

Reputation: 9199

If the meeting request automatically creates a meeting that is tentatively accepted then free busy indicates you are busy. The response will always be tentative accept.

File-> Options-> Mail-> Tracking-> disable: Automatically process meeting requests and responses to meeting requests and polls

https://www.msoutlook.info/question/do-not-automatically-accept-meeting-as-tentative

If that is not the problem then open the request, which is not automatically marked tentative, and step through with:

Private Sub AcceptDecline_test()
    AcceptDecline ActiveInspector.currentItem
End Sub

Upvotes: 1

Related Questions