0

I have been burned on more than one occasion where I accept a meeting from someone else, but forget to check the meeting reminder time. Sometimes there is no reminder or it's 15 minutes before the meeting that is all the way on the other side of town.

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

I think this could help a lot of people out. Thanks!

  • Does this answer your question? [How to set reminder for incoming or outgoing meeting requests](https://stackoverflow.com/questions/63073427/how-to-set-reminder-for-incoming-or-outgoing-meeting-requests) – niton Jul 02 '22 at 01:05

2 Answers2

1

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.

Eugene Astafiev
  • 47,483
  • 3
  • 24
  • 45
  • I must confess that I kind of know what I'm doing with VBA, but don't understand it all to the fullest. I've gotten pretty good with Excel VBA over the years. I have been trying to get something to work since you posted this, but I'm not getting it. I've got the code running when I receive a new item and can throw up a few Message Boxes, but I have no idea how to interpret them. Do you possibly have some short code so I can connect the dots? – Ryan Richards Jun 30 '22 at 18:55
0

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