<

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x

Enhancing Outlook 2007 Meeting Reminders

Published on
20,712 Points
9,212 Views
5 Endorsements
Last Modified:
Awarded
Community Pick
Issue.  I’m something of a stickler for keeping appointments.  I make it a point to arrive at meetings on time.  I think it’s rude and unprofessional to arrive late or, worse, not show up at all. Following the advice of "Getting Things Done" author David Allen I created a trusted system for managing all the details of my life.  I settled on using Outlook.  When I make an appointment or schedule a meeting I put it on my calendar immediately.  I’ve configured Outlook to remind me of all appointments/meetings 15 minutes before they start.  That reminder helps ensure that I get to the meeting on time.  Unfortunately some of my colleagues aren’t as diligent.  I find it frustrating when a meeting begins and some of the principal players aren’t there.  It’s even worse if the meeting is with a customer and we have to spend time hunting for some of the participants from our side.  That’s bad business.  When asked why they were late getting to the meeting the responses are typically along the lines of "I missed the reminder", "I forgot to set a reminder", "I saw the reminder, but was busy and forgot", etc.  Wouldn’t it be nice if Outlook could automatically send a message to all meeting participants reminding them of the meeting?  While this wouldn’t ensure that everyone arrives on time it would help combat the problem by jogging their memory with an email.

Background.  Outlook, at least through 2007, displays an onscreen reminder if one is set for the given appointment/meeting.  Each user can customize the default reminder time which means that reminders can be disabled entirely if a user chooses to do so.  Meeting participants may or may not have a smartphone that syncs with their Outlook calendar.  Those that do may see a reminder on the phone.

Solution.  Each time Outlook displays a reminder it triggers an event that we can use to run a VBA (Visual Basic for Applications) procedure.  The code in the procedure can then create and send an email to the meeting participants reminding them of the meeting.

Requirements.  
a.      Full version of Outlook.  This solution only works with the full version of Outlook.  It is not compatible with Outlook Web Access (OWA) or Outlook Express.
b.      Outlook 2007.  The code will work in earlier versions of Outlook too, but they include security constraints that prevent a script from sending a message without the use of third-party tools.  If anyone who reads this article is interested in implementing this on a computer using Outlook 2003 or earlier, then they can contact me for details on what is needed.  
c.      You must be the meeting organizer for this solution to work.  This constraint prevents creating a storm of reminder messages if the solution is implemented on multiple computers.  Otherwise each computer that runs this solution would send a reminder message for any appointment configured for reminders.  More about this below.
d.      Outlook must be running for this solution to work.

Instructions.

1. Add the Code to Outlook


a.      Start Outlook
b.      Click ToolsMacroVisual Basic Editor.
c.      If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession.
d.      Copy the code below and paste it into the right-hand pane of Outlook's VB Editor window.
e.      Edit the code as needed.  I included comment lines wherever something needs to or can change.
f.      Click the diskette icon on the toolbar to save the changes.
g.      Close the VB Editor
h.      Click ToolsTrust Center.
i.      Click Macro Security.
j.      Set "Macro Security" to Warnings for all macros.
k.      Click OK.
l.      Close Outlook.
m.      Start Outlook.  Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run.  Click 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)
    'On the next line edit the triggering category name as desired.'
    Const REMINDER_CATEGORY_NAME = "Reminders"
    Dim olkApt As Outlook.AppointmentItem, _
        olkMsg As Outlook.MailItem, _
        olkRcp As Outlook.Recipient
    If ReminderObject.Item.Class = olAppointment Then
        Set olkApt = ReminderObject.Item
        If olkApt.MeetingStatus = olMeeting Then
            If InStr(1, olkApt.Categories, REMINDER_CATEGORY_NAME) Then
                If olkApt.Organizer = Session.CurrentUser Then
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        For Each olkRcp In olkApt.Recipients
                            Select Case olkRcp.Type
                                'On the next line remove olOptional if you only want reminders sent to required attendees.'
                                Case olRequired, olOptional
                                    .Recipients.Add olkRcp.Address
                            End Select
                        Next
                        'On the next line edit the message subject as desired.'
                        .Subject = "Meeting Reminder"
                        .BodyFormat = olFormatPlain
                        'On the next 5 lines edit the message body as desired.'
                        .Body = "This is a reminder of the following meeting:" & vbCrLf _
                              & "Subject.: " & olkApt.Subject & vbCrLf _
                              & "Starts..: " & olkApt.Start & "(" & olkApt.StartTimeZone & ")" & vbCrLf _
                              & "Ends....: " & olkApt.End & "(" & olkApt.StartTimeZone & ")" & vbCrLf _
                              & "Location: " & olkApt.Location
                        .Send
                    End With
                End If
            End If
        End If
    End If
    Set olkApt = Nothing
    Set olkMsg = Nothing
    Set olkRcp = Nothing
End Sub

Open in new window


2. Using Enhanced Meeting Reminders


a.      Create a meeting in Outlook just as you normally would.
b.      Add a category of "Reminders" (or whatever category name you set on line 13 of the code) to the meeting.

How This Works.  Here's how the solution works.
a.      A reminder is triggered by an Outlook item (e.g. appointment, task, etc.) raising the ReminderFire event.
b.      The event is trapped, running the code in the procedure olkReminders_ReminderFire and passing it the item that triggered the reminder.
c.      The code tests to see if the event was triggered by an appointment.  If it wasn’t, then processing is halted.  This constraint prevents a message from being sent for any item that triggers a reminder.
d.      The code tests to see if the appointment is a meeting (i.e. involves others).  If it isn’t, then processing is halted.  This constraint prevents reminder messages being sent for appointments (i.e. items that only involve you).
e.      The code tests to see if the meeting’s categories includes the defined keyword.  If it doesn’t, then processing is halted.  This allows you to control which meetings reminders are sent for.  Without this constraint a reminder would be sent for every meeting.
f.      The code test to see if you are the meeting organizer.  If you aren’t, then processing is halted.  This constraint prevents the message storm I described in item "c" of Requirements.
g.      The code creates and sends an email addressed to all meeting attendees, or optionally to just the required attendees, reminding them of the meeting.

Notes.  One note of caution.  The solution will send a message each time a configured item’s reminder fires.  When a reminder fires if you select the option to sleep the reminder for a set number of minutes, then a second message will be sent when the reminder fires again.  Be careful not to overwhelm attendees with too many reminder messages.

Links to Other BlueDevilFan Articles

1. Creating Linked Notes in Outlook 2007
2. Extending Outlook Rules via Scripting
3. Importing and Exporting Outlook 2007 Categories
4. Outlook 2007 Corporate Categories System
5. Automatically Printing/Saving Emails/Attachments in Outlook
6. Avoiding Blank Subject Lines in Outlook
7. Never Again Forget to Add that Attachment to your Outlook Email
5
Comment
Author:David Lee
3 Comments
LVL 38

Expert Comment

by:younghv
BlueDevilFan -
Another in your great list of 'usable' Articles.
You should imbed hyper-links between all of these 'how-to' Articles you're doing.

"Yes" vote above.
0
LVL 76

Author Comment

by:David Lee
Thanks, Vic.

That's a good idea.  I think I'll do that.
0
LVL 9

Expert Comment

by:David Carr
Interesting. Nice write up
0

Featured Post

Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

Join & Write a Comment

There may be issues when you are trying to access Outlook or send & receive emails or due to Outlook crash which leads to corrupt or damaged PST file. To eliminate the corruption from your PST file, you need to repair the corrupt Outlook PST file. U…
Watch this simple and effective video tutorial to extract attachments from Outlook 2007 and try this easy method by yourself. No need to go anywhere, just watch the video and export attachments from Outlook in few simple steps. To know more, click h…

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month