Sending a Meeting Reminder Email in Outlook


Wouldn’t it be handy if Outlook had a quick way to send a message to everyone invited to a meeting reminding them when the meeting starts and where it’s taking place at? Yes, Outlook meetings have built-in reminders, but you can’t be sure all the invitees set a reminder and even if they did an email nudge may do more to get them to the meeting than a reminder pop-up. Of course you could create a new message, copy and paste the list of invitees from the meeting item into the address line, write a note reminding them of the meeting, and send if off. I don’t know about you, but that sounds like a lot of work to me. I’d rather select an appointment on my calendar and click a button. Let the computer do the work.

Here’s a script that automates the process leaving you free to do something more important, or at least more interesting. Using the script is dead simple. Select or open a meeting on an Outlook calendar, it can be any calendar, and run the script. Off goes a reminder to all the participants who haven’t already declined your invitation (no point in sending them a reminder). It won’t send you a reminder either, unless you aren’t the organizer, and it won’t send reminders to resources (e.g. conference rooms). If you set the macro to run from a toolbar or QAT (Quick Action Toolbar), then the process only requires two clicks (one to select the appointment and another to send the reminder). Pretty simple, huh?

I wrote and tested this using Outlook 2007. I also tested it using Outlook 2010. It should work under any version of Outlook, but in fairness I haven’t tested it to make sure. You should test it to make sure it works the way you want it to before using it in a production environment.

Adding the Code to Outlook.

  1. Start Outlook
  2. Press ALT+F11 to open the Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects
  4. If not already expanded, expand Modules
  5. Select an existing module (e.g. Module1) by double-clicking on it or create a new module by right-clicking Modules and selecting Insert > Module.
  6. Copy the code from the code snippet box and paste it into the right-hand pane of Outlook’s VB Editor window
  7. Edit the code as needed. I placed a comment where changes can occur.
  8. Click the diskette icon on the toolbar to save the changes
  9. Close the VB Editor
Sub SendMeetingReminder()
    'On the next line change True to False if you want the reminder to send without giving you the chance to edit it.
    'Leave it set to True if you want an opportunity to edit the message before sending it.
    Const EDIT_FIRST = True
    'On the next line edit the message as desired.  Both %START% and %LOCATION% are parameters that will be replaced
    'with the meeting start time and location respectively before the message is displayed/sent.
    Const MSG_TEXT = "Just a quick reminder about this meeting.<br><br>Start: <b>%START%</b><br>Location: <b>%LOCATION%</b><br><br>"
    Const MACRO_NAME = "Send Meeting Reminder"
    Const ERR_MSG = "You must select an appointment for this macro to work."
    Dim olkApt As Object, _
        olkRem As Outlook.MailItem, _
        olkRec As Outlook.Recipient
    On Error Resume Next
    Select Case TypeName(Application.ActiveWindow)
        Case "Explorer"
            Set olkApt = Application.ActiveExplorer.Selection(1)
        Case "Inspector"
            Set olkApt = Application.ActiveInspector.CurrentItem
    End Select
    If TypeName(olkApt) <> "Nothing" Then
        If olkApt.Class = olAppointment Then
            Set olkRem = Application.CreateItem(olMailItem)
            With olkRem
                .Subject = "Meeting Reminder: " & olkApt.Subject
                .HTMLBody = MSG_TEXT & .HTMLBody
                .HTMLBody = Replace(.HTMLBody, "%START%", Format(olkApt.Start, "ddd, mmm d at h:mm AMPM"))
                .HTMLBody = Replace(.HTMLBody, "%LOCATION%", olkApt.Location)
                For Each olkRec In olkApt.Recipients
                    If (olkRec.Type <> olResource) And (olkRec.Name <> Session.CurrentUser.Name) Then
                        If Not olkRec.MeetingResponseStatus = olResponseDeclined Then
                            olkRem.Recipients.Add olkRec.Name
                        End If
                    End If
                Next
                .Recipients.ResolveAll
                If EDIT_FIRST Then
                    .Display
                Else
                    .Send
                End If
            End With
        Else
            MsgBox ERR_MSG, vbCritical + vbOKOnly, MACRO_NAME
        End If
    Else
        MsgBox ERR_MSG, vbCritical + vbOKOnly, MACRO_NAME
    End If
    On Error GoTo 0
    Set olkApt = Nothing
    Set olkRem = Nothing
    Set olkRec = Nothing
End Sub

Using the Code.

  1. Select or open a meeting on any Outlook calendar
  2. Run the SendMeetingReminder macro to send a reminder

Running with a single click.

You can add toolbar buttons (Outlook 2003) or QAT buttons (Outlook 2007/2010) to run the macro with a single click. Here’s a link to a page that explaining how to do both.

Revisions.

  • Revision 1

This revision is for Travis who asked if it would be possible to modify the solution to have the message sent “… when the reminder pops up and not when you initially set up the appointment”. Travis goes on to explain that Lotus Notes has the ability to set up future reminders, something he’d like to emulate in Outlook.

In order to provide that capability we have to modify the code to be triggered when the Reminder event of the Application object fires. The event passes the object, in this case an appointment item, the reminder belongs to. All we need to do is modify the original code to take a parameter, the appointment, instead of working against the open or selected item. I also modified the code so it will only work with meetings. I ddidn’t figure there’d be much interest in sending a reminder to yourself for regular appointments.

One note about this solution. A message will be sent each time the reminder fires for the meeting. In other words, if you snooze the reminder, then another message will be sent the second time the reminder fires.

Instructions.

Outlook 2003 and Earlier.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of
  5. Outlook’s VB Editor window
  6. Edit the code as needed. I included comment lines wherever something needs to or can change
  7. Click the diskette icon on the toolbar to save the changes
  8. Close the VB Editor
  9. Click Tools > Macro > Security
  10. Set the Security Level to Medium
  11. Close Outlook
  12. Start Outlook
  13. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.

Outlook 2007.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook’s VB Editor window
  5. Edit the code as needed. I included comment lines wherever something needs to or can change
  6. Click the diskette icon on the toolbar to save the changes
  7. Close the VB Editor
  8. Click Tools > Trust Center
  9. Click Macro Security
  10. Set Macro Security to “Warnings for all macros”
  11. Click OK
  12. Close Outlook
  13. Start Outlook. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.

Outlook 2010.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook’s VB Editor window
  5. Edit the code as needed. I included comment lines wherever something needs to or can change
  6. Click the diskette icon on the toolbar to save the changes
  7. Close the VB Editor
  8. Click File and select Options
  9. When the Outlook Options dialog appears click Trust Center then click the Trust Center Settings button
  10. Click Macro Settings
  11. Select either of the two bottom settings (i.e. “Notifications for all macros” or “Enable all macros (not recommended; potentially dangerous code can run)”. The choice of which to chose is up to you. If you select “Notifications”, then you’ll be prompted at times to enable macros. If you pick “Enable all” then there’s a chance that a malicious macro could run. It’s a question of how much risk you want to assume.
  12. Click Ok until the dialog-boxes have all closed
  13. Close Outlook
  14. Start Outlook. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.
Private Sub Application_Reminder(ByVal Item As Object)
    If Item.Class = olAppointment Then
        SendMeetingReminder Item
    End If
End Sub

Sub SendMeetingReminder(olkApt As Outlook.AppointmentItem)
    'On the next line change False to True if you want an opportunity to edit the message before it's sent.  
    'Leave it set to False if you want the message to be sent without any action on your part.
    Const EDIT_FIRST = False
    'On the next line edit the message as desired.  Both %START% and %LOCATION% are parameters that will be replaced
    'with the meeting start time and location respectively before the message is displayed/sent.
    Const MSG_TEXT = "Just a quick reminder about this meeting.<br><br>Start: <b>%START%</b><br>Location: <b>%LOCATION%</b><br><br>"
    Const MACRO_NAME = "Send Meeting Reminder"
    Dim olkRem As Outlook.MailItem, _
        olkRec As Outlook.Recipient
    If olkApt.MeetingStatus = olMeeting Then
        Set olkRem = Application.CreateItem(olMailItem)
        With olkRem
            .Subject = "Meeting Reminder: " & olkApt.Subject
            .HTMLBody = MSG_TEXT & .HTMLBody
            .HTMLBody = Replace(.HTMLBody, "%START%", Format(olkApt.Start, "ddd, mmm d at h:mm AMPM"))
            .HTMLBody = Replace(.HTMLBody, "%LOCATION%", olkApt.Location)
            For Each olkRec In olkApt.Recipients
                If (olkRec.Type <> olResource) And (olkRec.Name <> Session.CurrentUser.Name) Then
                    If Not olkRec.MeetingResponseStatus = olResponseDeclined Then
                        olkRem.Recipients.Add olkRec.Name
                    End If
                End If
            Next
            .Recipients.ResolveAll
            If EDIT_FIRST Then
                .Display
            Else
                .Send
            End If
        End With
    End If
    Set olkRem = Nothing
    Set olkRec = Nothing
End Sub
  • Revision 2

I put this revision together for Tim. Part of Tim’s job involves scheduling appointments with students leading him to ask if I could modify the code to send a reminder to the student appointments alone. After some discussion Tim and I settled on using a category to differentiate the student appointments from other appointments on his calendar. Here’s how the solution works. Tim will create a new category called “Reminder”. When Tim creates a student appointment he will assign it to the “Reminder” category. He’s not limited to using the “Reminder” category with student appointments though. Tim can assign the category to any appointment. When a reminder fires the code runs. First it checks to make sure the item that triggered the reminder is an appointment. If it is, then it checks to see if the item belongs to the “Reminder” category. If it does, then the code sends a meeting reminder email. If the triggering item isn’t an appointment or if the appointment doesn’t belong to the “Reminder” category, then nothing happens.

Instructions.

Outlook 2003 and Earlier.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of
  5. Outlook’s VB Editor window
  6. Edit the code as needed. I included comment lines wherever something needs to or can change
  7. Click the diskette icon on the toolbar to save the changes
  8. Close the VB Editor
  9. Click Tools > Macro > Security
  10. Set the Security Level to Medium
  11. Close Outlook
  12. Start Outlook
  13. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.

Outlook 2007.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook’s VB Editor window
  5. Edit the code as needed. I included comment lines wherever something needs to or can change
  6. Click the diskette icon on the toolbar to save the changes
  7. Close the VB Editor
  8. Click Tools > Trust Center
  9. Click Macro Security
  10. Set Macro Security to “Warnings for all macros”
  11. Click OK
  12. Close Outlook
  13. Start Outlook. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.

Outlook 2010.

  1. Start Outlook
  2. Click Tools > Macro > Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook’s VB Editor window
  5. Edit the code as needed. I included comment lines wherever something needs to or can change
  6. Click the diskette icon on the toolbar to save the changes
  7. Close the VB Editor
  8. Click File and select Options
  9. When the Outlook Options dialog appears click Trust Center then click the Trust Center Settings button
  10. Click Macro Settings
  11. Select either of the two bottom settings (i.e. “Notifications for all macros” or “Enable all macros (not recommended; potentially dangerous code can run)”. The choice of which to chose is up to you. If you select “Notifications”, then you’ll be prompted at times to enable macros. If you pick “Enable all” then there’s a chance that a malicious macro could run. It’s a question of how much risk you want to assume.
  12. Click Ok until the dialog-boxes have all closed
  13. Close Outlook
  14. Start Outlook. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run. Say yes.
Dim WithEvents olkReminders As Outlook.Reminders

Private Sub Application_Quit()
    Set olkReminders = Nothing
End Sub

Private Sub Application_Startup()
    Set olkReminders = Application.Reminders 
End Sub

Private Sub olkReminders_ReminderFire(ByVal ReminderObject As Reminder)
    Dim olkApt As Outlook.AppointmentItem
    If ReminderObject.Item.Class = olAppointment Then
        Set olkApt = ReminderObject.Item
        If olkApt.MeetingStatus = olMeeting Then
            If InCategory(olkApt, "Reminder") Then
                ReminderObject.Dismiss
                SendMeetingReminder olkApt
            End If
        End If
    End If
    Set olkApt = Nothing
End Sub

Function InCategory(olkItm As Object, strCat As String) As Boolean
    Dim arrTmp As Variant, varCat As Variant
    arrTmp = Split(olkItm.Categories, ",")
    For Each varCat In arrTmp
        If varCat = strCat Then
            InCategory = True
            Exit For
        End If
    Next
End Function

Sub SendMeetingReminder(olkApt As Outlook.AppointmentItem)
    'On the next line change True to False if you want the reminder to send without giving you the chance to edit it.
    'Leave it set to True if you want an opportunity to edit the message before sending it.
    Const EDIT_FIRST = True
    'On the next line edit the message as desired.  Both %START% and %LOCATION% are parameters that will be replaced
    'with the meeting start time and location respectively before the message is displayed/sent.
    Const MSG_TEXT = "Just a quick reminder about this meeting.<br><br>Start: <b>%START%</b><br>Location: <b>%LOCATION%</b><br><br>"
    Const MACRO_NAME = "Send Meeting Reminder"
    Dim olkRem As Outlook.MailItem, _
        olkRec As Outlook.RECIPIENT
    On Error Resume Next
    Set olkRem = Application.CreateItem(olMailItem)
    With olkRem
        .Subject = "Meeting Reminder: " & olkApt.Subject
        .HTMLBody = MSG_TEXT & .HTMLBody
        .HTMLBody = Replace(.HTMLBody, "%START%", Format(olkApt.Start, "ddd, mmm d at h:mm AMPM"))
        .HTMLBody = Replace(.HTMLBody, "%LOCATION%", olkApt.Location)
        For Each olkRec In olkApt.Recipients
            If (olkRec.Type <> olResource) And (olkRec.Name <> Session.CurrentUser.Name) Then
                If Not olkRec.MeetingResponseStatus = olResponseDeclined Then
                    olkRem.Recipients.Add olkRec.Name
                End If
            End If
        Next
        .Recipients.ResolveAll
        If EDIT_FIRST Then
            .Display
        Else
            .Send
        End If
    End With
    On Error GoTo 0
    Set olkApt = Nothing
    Set olkRem = Nothing
    Set olkRec = Nothing
End Sub
  • Revision 3

I created this revision for Fred who asked me to modify rev 2 to use something other than a category as the triggering mechanism. In this version I’m using a user property that Fred will set to true if he wants to send a reminder or false if he doesn’t. Fred will add a button to either the ribbon or the quick action toolbar (QAT) that toggles the setting. Unfortunately, it’s not possible to create either of those via code, so Fred will have to create them manually. After the code I’ve included links to instructions on how to create those buttons. The button will call the ToggleReminder macro. Fred can follow the instructions from rev 2 to add the code to Outlook.

Const PRP_NAME = "ReminderMsg"

Dim WithEvents olkReminders As Outlook.Reminders

Private Sub Application_Quit()
    Set olkReminders = Nothing
End Sub

Private Sub Application_Startup()
    Set olkReminders = Application.Reminders 
End Sub

Private Sub olkReminders_ReminderFire(ByVal ReminderObject As Reminder)
    Dim olkApt As Outlook.AppointmentItem
    If ReminderObject.Item.Class = olAppointment Then
        Set olkApt = ReminderObject.Item
        If olkApt.MeetingStatus = olMeeting Then
            If ReminderRequested(olkApt) Then
                ReminderObject.Dismiss
                SendMeetingReminder olkApt
            End If
        End If
    End If
    Set olkApt = Nothing
End Sub

Function ReminderRequested(olkMtg As Outlook.AppointmentItem) As Boolean
    Dim olkPrp As Outlook.UserProperty
    On Error Resume Next
    Set olkPrp = olkMtg.UserProperties.Item(PRP_NAME)
    On Error GoTo 0
    If TypeName(olkPrp) <> "Nothing" Then
        ReminderRequested = olkPrp.Value
    End If
    Set olkPrp = Nothing
End Function

Sub SendMeetingReminder(olkApt As Outlook.AppointmentItem)
    'On the next line change True to False if you want the reminder to send without giving you the chance to edit it.
    'Leave it set to True if you want an opportunity to edit the message before sending it.
    Const EDIT_FIRST = True
    'On the next line edit the message as desired.  Both %START% and %LOCATION% are parameters that will be replaced
    'with the meeting start time and location respectively before the message is displayed/sent.
    Const MSG_TEXT = "Just a quick reminder about this meeting.<br><br>Start: <b>%START%</b><br>Location: <b>%LOCATION%</b><br><br>"
    Const MACRO_NAME = "Send Meeting Reminder"
    Dim olkRem As Outlook.MailItem, _
        olkRec As Outlook.RECIPIENT
    On Error Resume Next
    Set olkRem = Application.CreateItem(olMailItem)
    With olkRem
        .Subject = "Meeting Reminder: " & olkApt.Subject
        .HTMLBody = MSG_TEXT & .HTMLBody
        .HTMLBody = Replace(.HTMLBody, "%START%", Format(olkApt.Start, "ddd, mmm d at h:mm AMPM"))
        .HTMLBody = Replace(.HTMLBody, "%LOCATION%", olkApt.Location)
        For Each olkRec In olkApt.Recipients
            If (olkRec.Type <> olResource) And (olkRec.Name <> Session.CurrentUser.Name) Then
                If Not olkRec.MeetingResponseStatus = olResponseDeclined Then
                    olkRem.Recipients.Add olkRec.Name
                End If
            End If
        Next
        .Recipients.ResolveAll
        If EDIT_FIRST Then
            .Display
        Else
            .Send
        End If
    End With
    On Error GoTo 0
    Set olkApt = Nothing
    Set olkRem = Nothing
    Set olkRec = Nothing
End Sub

Sub ToggleReminder()
    Dim olkApt As Outlook.AppointmentItem, olkPrp As Outlook.UserProperty
    Select Case TypeName(Application.ActiveWindow)
        Case "Explorer"
            Set olkApt = Application.ActiveExplorer.Selection(1)
        Case "Inspector"
            Set olkApt = Application.ActiveInspector.CurrentItem
    End Select
    If TypeName(olkApt) <> "Nothing" Then
        If olkApt.Class = olAppointment Then
            On Error Resume Next
            Set olkPrp = olkApt.UserProperties.Item(PRP_NAME)
            On Error GoTo 0
            If TypeName(olkPrp) = "Nothing" Then
                Set olkPrp = olkApt.UserProperties.Add(PRP_NAME, olYesNo)
                olkPrp.Value = True
            Else
                olkPrp.Value = Not olkPrp.Value
            End If
            olkApt.Save
            MsgBox "The reminder message setting for this appoint is now " & IIf(olkPrp.Value = True, "on", "off") & ".", vbInformation + vbOKOnly, "Toggle Reminder Message"
        End If
    End If
    Set olkApt = Nothing
    Set olkPrp = Nothing
End Sub

Adding Buttons to Run the ToggleReminder Macro.

  • Outlook 2007. Follow these instructions to add a toolbar button that runs the macro.
  • Outlook 2010. Follow these instructions to add the macro to the QAT.
About these ads

105 comments on “Sending a Meeting Reminder Email in Outlook

  1. Hello, is there a way to modify the script in order to allow for only sending a reminder to contacts that did not yet accept the appointment. Can the status that is visible under the tracking option be used as a criteria for selectively sending emails to the invitees? Thank you kindly for your advice.

    • Hi, Andy.

      Yes, we can modify the script so it only sends to those who have not accepted the appointment. I’m assuming that “not accepted” in this context means that they haven’t responded, not that they’ve declined or tentatively accepted. All we need to do is change line 30 from

      If Not olkRec.MeetingResponseStatus = olResponseDeclined Then
      

      to

      If olkRec.MeetingResponseStatus = olResponseNotResponded Then
      
    • Dear David,

      thank you kindly, this is very helpful. I only had to exchange the olResponseNotResponded with olResponseKeine for enabling the script in the German Outlook version.

  2. Hello, thank you for this information. I created a shared calendar with exchange 365 for the whole company. I would like a reminder email to go out to each person that is a member (full details) for each event. Is this possible?

    • You’re welcome, Donna.

      Yes, that’s possible. It may not be practical though. Here’s why. For the solution to work, some computer has to be on and Outlook has to be open on it in order for the script to send the reminder. In other words, you’d need to dedicate a computer to this process. Not dedicated in the sense that it couldn’t be doing something else, but in the sense that it would have to be on all the time. If it were ever turned off, then the process would fail.

  3. I did as you instructed and no Msgbox appeared, just the normal calendar reminder.

    So, I reset the reminder and opened the VBA Editor. I placed the cursor on line 7 (Application_Startup) and pressed F5. When the reminder fired, the Msgbox appeared and the email was composed and open for editing, since I had the constant EDIT_FIRST set to TRUE.

    Next I disabled all COM Add-Ins, reset the reminder and restarted Outlook. The event fired. However, when I re-enabled the CodeTwo Public Folders Add-in, it failed to fire. (http://www.codetwo.com/public-folders/) I think we’ve found our culprit.

    • Andy,

      Good detective work. My best guess is that CodeTwo Public Folders (CTPF) is trapping the same event and cancelling it before my code has a chance to fire. I did some checking and it appears that CTPF has an option for controlling reminder behavior. See this page from CTPF’s web site for details.

  4. I’m having some trouble between Outlook versions.
    I’m using your code labeled ‘Revision 2′.
    – The code was pasted into “ThisOutlookSession”
    – I set macro security in the Trust Center to “enable all macros” (for testing, I will self sign when complete)
    It executes correctly in Outlook 2007.

    When I pasted the code into Outlook 2010, it didn’t work.
    – The event fired and a popup appeared.
    – I verified that there was a Category named “Reminder”
    – My code matches this Category:
    If InCategory(olkApt, “Reminder”) Then
    ReminderObject.Dismiss
    SendMeetingReminder olkApt
    End If

    After saving the Project, I restarted Outlook.
    The event still never generated an email, it just popped up.
    Is there anything I am missing? I am perplexed.

    P.S. I followed your recommendation for the map using Google API. It was a challenge, but I found it very rewarding.

    Thank you for taking the time to respond.

    Andy

    • Hi, Andy.

      Please clarify which revision you’re using. I know you said you’re using rev 3, but you mention using categories and rev 3 doesn’t use categories. It uses a custom property. If you re truly using rev 3, then setting a category won’t trigger the code.

    • I’m sorry, I must be getting confused about the versions. I am definitely using the version that filters based on a Category named “Reminder”.

      I know the code is fine – I ran it on my Outlook (2007) successfully. The receptionist’s Outlook (2010) doesn’t fire! When I manually run the Automatic_Startup via VBA Editor, then events fire and everything works just fine.

      I tried everything suggested by this link (http://goo.gl/WVLWpJ) with no success.

      I am wondering if compiling it would help. I have VB6 from a class I took long ago, but I’m not sure how to compile. I pasted the code into a class module, but got errors with the “WithEvents” line.

      I’m lost. Do you have any advice? Thank you in advance.

    • Andy,

      Compiling won’t work. The code isn’t designed to be compiled or to function outside of Outlook.

      What is macro security set to on the receptionist’s computer?

    • The more accurate answer for the macro security setting is:
      “Enable all macros (not recommended…)”

      Not that this would be my final intention, but I removed all security to determine if it was the cause for not firing. I plan to self-sign the code once I get it to work.

    • Andy,

      If you’re using the version that keys on categories, then you’re using rev 2.

      We need to determine if the event isn’t firing or if it’s firing but nothing is happening. To do that, add the following line of code

      Msgbox "Fired"
      

      immediately after line 12 of the code. Line 12 is this line of code

      Dim olkApt As Outlook.AppointmentItem
      

      in the olkReminders_ReminderFire subroutine. Once you’ve done that, set a meeting reminder and wait until it should fire. Let me know if a dialog-box pops up saying “Fired”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s