Change Meeting Reminder Time on Meeting Accept

759 Views Asked by At

On more than one occasion I accepted a meeting but forgot to check the meeting reminder time. Sometimes there is no reminder or it is 15 minutes before the meeting that is on the other side of town.

I'd like to automatically change the reminder time from 0 or 15 minutes to at least 30 minutes and leave anything over 30 minutes unchanged. Or have a message box pop up on a meeting accept that says "Hey, check your meeting reminder time!".

2

There are 2 best solutions below

1
Eugene Astafiev On

You can set up the MeetingItem.ReminderTime property which returns or sets a date indicating the date and time at which the reminder should occur for the specified item.

To handle incoming items you can use the NewMailEx event of the Application class which is fired once for every received item that is processed by Microsoft Outlook. The item can be one of several different item types, for example, MailItem, MeetingItem, or SharingItem. The EntryIDsCollection string contains the Entry ID that corresponds to that item.

The NewMailEx event fires when a new message arrives in the Inbox and before client rule processing occurs. Use the Entry ID represented by the EntryIDCollection string to call the NameSpace.GetItemFromID method and process the item.

0
Ryan Richards On

I just caught that a similar article was posted. I did get this to work, so thank you! Here is the exact code I modified.

Public WithEvents objCalendar As Outlook.Folder
Public WithEvents objCalendarItems As Outlook.Items

Private Sub Application_Startup()

    Set objCalendar = Outlook.Application.Session.GetDefaultFolder(olFolderCalendar)
    Set objCalendarItems = objCalendar.Items
    
End Sub

Private Sub objCalendarItems_ItemAdd(ByVal Item As Object)
    Call SetReminder(Item)
End Sub

Private Sub objCalendarItems_ItemChange(ByVal Item As Object)
    Call SetReminder(Item)
End Sub

Private Sub SetReminder(ByVal objCalendarItem As Object)

Dim objMeeting As AppointmentItem

    If TypeOf objCalendarItem Is AppointmentItem Then
       Set objMeeting = objCalendarItem
       
        If objMeeting.ReminderMinutesBeforeStart < 30 Then
            MsgBox "The meeting reminder was under 30 minutes.  This will auto set the reminder to 30 minutes.  You might want to notify the other participants."
            objMeeting.ReminderSet = True
            objMeeting.ReminderMinutesBeforeStart = 30
            objMeeting.Save
        End If
       
    End If
    
End Sub