-
Notifications
You must be signed in to change notification settings - Fork 0
/
AutoRSVP.bas
85 lines (66 loc) · 2.89 KB
/
AutoRSVP.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Attribute VB_Name = "AutoRSVP"
' Copyright 2021 clyvari https://github.com/clyvari
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
Private Sub AutoRSVP(oMeetingItem_Request As MeetingItem, bAcceptMeeting As Boolean, bSendResponse As Boolean, Optional bDebug As Boolean = False)
Dim strAutoRSVP_Title As String: strAutoRSVP_Title = "AutoRSVP - Debug"
Dim strMessageClass As String: strMessageClass = "IPM.Schedule.Meeting.Request"
If oMeetingItem_Request.MessageClass <> strMessageClass Then
If bDebug Then
MsgBox "MessageClass should be " + strMessageClass + " not " + oMeetingItem_Request.MessageClass, vbInformation, strAutoRSVP_Title
End If
Exit Sub
End If
Dim oAppointmentItem As AppointmentItem
Set oAppointmentItem = oMeetingItem_Request.GetAssociatedAppointment(True)
Dim strRequestAction As String
If bAcceptMeeting Then
strRequestAction = "accepted"
Else
strRequestAction = "declined"
End If
Dim strMeetingInfo As String
strMeetingInfo = "Meeting request" + strRequestAction + ":" + vbNewLine
strMeetingInfo = strMeetingInfo + oAppointmentItem.Subject + "(" + oMeetingItem_Request.SenderName + ") @ " + Format(oAppointmentItem.Start)
Dim oMeetingResponse As OlMeetingResponse
If bAcceptMeeting Then
oMeetingResponse = olMeetingAccepted
Else
oMeetingResponse = olMeetingDeclined
End If
Dim oMeetingItem_Response As MeetingItem
Set oMeetingItem_Response = oAppointmentItem.Respond(oMeetingResponse, True)
If bSendResponse Then
oMeetingItem_Response.Save
oMeetingItem_Response.Send
Else
oMeetingItem_Response.Close (olDiscard)
oMeetingItem_Response.Delete
End If
If bDebug Then
MsgBox strMeetingInfo, vbInformation, strAutoRSVP_Title
End If
oMeetingItem_Request.Delete
End Sub
Public Sub AutoRSVP_DeclineSilently(oMeetingItem_Request As MeetingItem)
AutoRSVP oMeetingItem_Request, False, False
End Sub
Public Sub AutoRSVP_AcceptSilently(oMeetingItem_Request As MeetingItem)
AutoRSVP oMeetingItem_Request, True, False
End Sub
Public Sub AutoRSVP_DeclineAndSend(oMeetingItem_Request As MeetingItem)
AutoRSVP oMeetingItem_Request, False, True
End Sub
Public Sub AutoRSVP_AcceptAndSend(oMeetingItem_Request As MeetingItem)
AutoRSVP oMeetingItem_Request, True, True
End Sub