Outlook: How to set the default reminder time for received appointments


When appointments (meeting requests) are received in Outlook, the reminder is by default set to 15 minutes, and there is no option to change this default.  However, it is possible to change the default using a simple Outlook macro.  The below code monitors the Calendar folder for new items, and if one is created due to a meeting request, it will change the reminder time.  You could also disable the reminder if you like, just uncomment the line shown in the code.

Note that the code needs to be pasted into the ThisOutlookSession module of the Outlook VBA IDE.  Once done, restart and the default reminders will be changed as the appointments arrive.

 

Public WithEvents CalendarItems As Items

Private Sub Application_Startup()
    ‘ Hook into calendar items to monitor for incoming meeting requests
    Set CalendarItems = Application.GetNamespace(“MAPI”).GetDefaultFolder(olFolderCalendar).Items
End Sub

Private Sub CalendarItems_ItemAdd(ByVal Item As Object)
    ‘ Check if this appointment is due to a meeting request (in which case set the reminder time to 0)
    Dim oAppointment As AppointmentItem
    Dim iAppointmentState As Integer
    Const asfReceived As Integer = 1
   
    Set oAppointment = Item
    iAppointmentState = oAppointment.PropertyAccessor.GetProperty(“http://schemas.microsoft.com/mapi/id/{00062002-0000-0000-C000-000000000046}/82170003“)
    If (iAppointmentState And asfReceived) <> asfReceived Then Exit Sub
   
    ‘ We now know that we are dealing with a received appointment
   
    ‘ Set the reminder time to 0
    oAppointment.ReminderMinutesBeforeStart = 0
    ‘ Or we can disable the reminder (uncommment the next line)
    ‘oAppointment.ReminderSet = False
   
    ‘ Now save the changes
    oAppointment.Save
End Sub

 

 

 

Comments (2)

  1. just me says:

    This is great, thanks!

    I added a slight improvement–in case you'd like to leave existing reminders in place and only add when there is no reminder:

    Replace this:

       ' Set the reminder time to 0

       oAppointment.ReminderMinutesBeforeStart = 0

    With this:

       'if no reminder, set reminder

       If oAppointment.ReminderSet = False Then

           If MsgBox("Do you want to add a reminder?", vbYesNo) = vbYes Then

               oAppointment.ReminderSet = True

               oAppointment.ReminderMinutesBeforeStart = 30

           End If

       End If

    If you don't want to be asked, you can comment out the "If MsgBox…" line and one "End If" line

  2. Andrej says:

    Unfortunately your script contains invalid characters, so it does not work.

Skip to main content