Send an email when an Appointment reminder fires

Last reviewed on December 30, 2013   —  100 comments

Another entry in my Lazy Programmer Series, this time I have a macro that sends an email message when a reminder fires. This macro was the result of a request for the ability to send messages to the sales team each morning with the day's agenda.

If you prefer to use an add-in, I have a list of reminder tools at Calendar Tools for Outlook

You can use the macro to send yourself reminders or even to compose an email message ahead of time (in the body of a an appointment form) and send it later. Outlook will need to be running and be able to connect to the mail server for the message to be generated and sent.

Because the message is composed when the reminder fires, the message time stamp will be the reminder time. Please don't abuse the trust others have in you: use this macro for legitimate purposes, not to convince someone you were working when you weren't!

Outlook needs to be running for these macros to work. Note, this will trigger the email security alert in older versions of Outlook. Use one of the tools listed at the end to dismiss the dialogs.

To use, press Alt+F11 to open the VBA editor then copy the code and paste it into ThisOutlookSession.

Send a message to someone when a reminder fires

This macro checks for Appointment reminders and sends a message to the value in the location field. For this to be useful, you need to use a category, otherwise Outlook will attempt to send a message with every appointment reminder.

Private Sub Application_Reminder(ByVal Item As Object)
  Dim objMsg As MailItem
  Set objMsg = Application.CreateItem(olMailItem)

If Item.MessageClass <> "IPM.Appointment" Then
  Exit Sub
End If

If Item.Categories <> "Send Message" Then
  Exit Sub
End If

  objMsg.To = Item.Location
  objMsg.Subject = Item.Subject
  objMsg.Body = Item.Body

  Set objMsg = Nothing
End Sub

To use a template instead of the default message form, replace Set objMsg = Application.CreateItem(olMailItem) with Set objMsg = Application.CreateItemFromTemplate("C:\path\to\test-rule.oft")

Send a message to yourself when a reminder fires

This is the original code we had on this page and sends an email message to an address when any reminder fires.

Private Sub Application_Reminder(ByVal Item As Object)
  Dim objMsg As MailItem

  Set objMsg = Application.CreateItem(olMailItem)

  objMsg.To = ""
  objMsg.Subject = "Reminder: " & Item.Subject

  ' Code to handle the 4 types of items that can generate reminders
  Select Case Item.Class
     Case olAppointment '26
        objMsg.Body = _
          "Start: " & Item.Start & vbCrLf & _
          "End: " & Item.End & vbCrLf & _
          "Location: " & Item.Location & vbCrLf & _
          "Details: " & vbCrLf & Item.Body
     Case olContact '40
        objMsg.Body = _
          "Contact: " & Item.FullName & vbCrLf & _
          "Phone: " & Item.BusinessTelephoneNumber & vbCrLf & _
          "Contact Details: " & vbCrLf & Item.Body
      Case olMail '43
        objMsg.Body = _
          "Due: " & Item.FlagDueBy & vbCrLf & _
          "Details: " & vbCrLf & Item.Body
      Case olTask '48
        objMsg.Body = _
          "Start: " & Item.StartDate & vbCrLf & _
          "End: " & Item.DueDate & vbCrLf & _
          "Details: " & vbCrLf & Item.Body
  End Select

  Set objMsg = Nothing
End Sub

Select an appointment and send a message

With a few tweaks, the macro above can be used to send a message by selecting the appointment then running the macro.

  1. Press Alt+F11 to open the VBA editor.
  2. Right click on Project1 and choose Insert > Module.
  3. Paste the code below into the Module.
  4. Get the GetCurrentItem function from Outlook VBA: work with open item or selected item and paste it into the module.

Public Sub App_Reminder()
  Dim Item As AppointmentItem
  Dim objMsg As MailItem
  Set objMsg = Application.CreateItem(olMailItem)

Set Item = GetCurrentItem()

With objMsg
'  .To = Item.Location
  .Subject = Item.Subject
  .Body = Item.Body
  .Display ' use .Send to send it instead 
End With

Set objMsg = Nothing
Set Item = Nothing

End Sub

Pop up a dialog

msgbox reminder dialofYou can use the code on this page to do pretty much anything VBA can do when the reminder fires.

This simple code sample displays a dialog box to remind you.

Private Sub Application_Reminder(ByVal Item As Object)
If Item.MessageClass <> "IPM.Appointment" Then
  Exit Sub
End If

MsgBox "You have an appointment for " & vbCrLf _
  & Item.Subject & vbCrLf _
  & "on " & Format(Item.Start, "mmm dd") & vbCrLf _
  & "Time: " & Format(Item.Start, "hh:mm AM/PM") _
  & vbCrLf & "Location: " & Item.Location
End Sub


Advanced Security for Outlook

Use Advanced Security for Outlook to learn what programs are trying to access Outlook and permanently allow or deny access to the program and the next time it requests access, the action you choose will be automatically executed and Outlook Security will not annoy you with messages about trying to access e-mail addresses you have stored in Outlook. Freeware, available in English, German and Russian. Advanced Security is fully compatible with Windows 8 (32-bit and 64-bit editions) and Microsoft Office 2013 (32-bit editions only). The programs button is available on the ribbon in Outlook 2010 and Outlook 2013.

ClickYes Pro

ClickYes Pro is a tuning tool for Microsoft Outlook security settings. It allows you to configure which applications can automatically send emails using Outlook and access email addresses stored in Outlook address book. ClickYes Pro runs as a background task providing a convenient icon in the taskbar notification area to manage allowed applications. It uses an encrypted storage and is highly secure and safe. Client and Server versions available. Works with Outlook 2000 - Outlook 2010.

CodeTwo Outlook WarningDoctor

CodeTwo Outlook WarningDoctor removes the security warnings that appear when sending mail or performing other actions recognized by Microsoft as a "risky" (for example, when you try to read some data using the Outlook or CDO API #. Especially useful for designers of macros, Visual Basic, and programmers of other scripting languages that use the object model.Outlook 2000 and up, including Outlook 2010 64bit.

More Information

Open a webpage when a Task reminder fires
To send an email daily using a Task, see E-Mail: Send daily (

Written by

Diane Poremsky
A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Please post long or more complicated questions at Outlookforums.

100 responses to “Send an email when an Appointment reminder fires”


    I have a question: how does this run?

    Once it is copied into the OUTLOOK SESSION as indicated, is every REMINDER going to generate an EMail? For example I have various AGENDA ITEMS as I program all my activities in OUTLOOK and they all have a reminder that pops up in the REMINDER WINDOW, will I receive a REMINDER Email for all of these?

    Additionally, would it be possible to make it AGENDA ITEM specific, ie. for AGENDA ITEM with POP UP REMINDER one could elect to ALSO get an Email REMINDING of the AGENDA ITEM.

    Roger Bertrand, P. Eng.


    Ok. Thanks. Is there a way to assign the REMINDER FIRING specifically to a particular agenda item?I have all teh AGENDA ITEMS with notification so they pop up in the notification window and there I track them. Now some of these I would like to receive a REMINDER EMAIL so I could assign it a FOLLOW UP and PRIORITY. Is this feasible?

    As I understand this VBA code, it would send me an EMAIL for all the AGENDA ITEMS I have setup since they all have a NOTIFICATION REMINDER in my case, correct or wrong?


    Please let me rephrase my question: all my agenda items have a category and all have a reminder so they pop up in the notification window. Therefore under this scheme would I reeceive an Email reminder?

    Secondly, fi I wanted to make this process selcetive, that is for a specific agenda Item I would like that in addition to the Pop Up Reminder I would receive a Reminder Email, can that be done?




    Please let me ask you if this would work: if I want only some messages to have an Email fired to me, would it work if I created a new category, say "Send EMail", and then set this category along with any other category to items I would like to have an Email sent to me?

    Where would I insert that code so only those I want a reminder Email are fileterd through that catefory:

    If Item.Categories = "Send Email" Then

    I assume I could do the same on the first VBA to ahve only Items flagged with the "SEND EMAIL" category fire the EMail Reminder?

    Thanks ,


    PS: excuse my low level knowledge of VBA, I am not that trained to using VBA with OUTLOOK. I use a lot more with EXCEL.

  5. A Clark

    I created this macro and it seemed to work the first week, but on subsequent weeks, the email is not going out. I checked and the code is still there. The Category is set to Send Message and is the only category. But I do have multiple email addresses separated by semicolons in the Location field.
    I am using Windows 7 and Office 2007 if that makes a difference.
    Can you suggest a place to begin further troubleshooting?
    Thank you.

  6. Curtis H

    The following is a code i got working to send me an email when a reminder fires however it does not include any details about the reminder....Can you help?? thanks so much

    Private Sub Application_Reminder(ByVal EventItem As Object)

    Dim MailMsg As MailItem

    Set MailMsg = Application.CreateItem(olMailItem)

    If EventItem.MessageClass = "IPM.Appointment" Then

    Call SendApptMail(MailMsg, EventItem)

    End If

    Set MailMsg = Nothing

    End Sub

    Sub SendApptMail(Mail_Item As Object, Appt_Item As Object)

    Mail_Item.To = ""

    Mail_Item.Subject = "Reminder Time Off"

    Mail_Item.HTMLBody = "Just a reminder that in the near future someone has requested a day off. Thank You"


    End Sub

  7. Howard Hendra

    Hello I want to start off by saying by no means am I knowledgable with VB. I am trying to set it up as described, but one of the things I find confusing is why would one want to send it back to your own e-mail account. I tried to alter the code with my text pager e-mail address and I get a complie error everytime the reminder pops up. I appreaciate any help you can offer. Thanks Howard

  8. Howard Hendra

    Ok it works. I was copying and pasting inproperly. One problem I do have though is I get the following message- "A program is trying to access E-Mail addresses you have stored in Outlook. Do you want to allow this? If this is unexpected, it may be a virus and you should choose "No" Allow access for 1 thru 10 mimutes. I want to say thanks for getting back to me so fast and also say thanks for your code. Howard

  9. Howard Hendra

    Thank you for your help, but its not going to work for me . IT gives me no control over the computer whatsoever. I am even surprised that I was able to execute the vb code without permission from god himself. It's ashame cause they wont get me a smart phone, and I am simply too busy out in the field to remember every meeting or appointment. I was so pysched when it ran that I would have actually been able to do something to make myself more productive. Thanks for the help. Howard

  10. M Burnett

    I have implimented your send an email and open web page task VBA and have the page opening and the task emailed. What I would like to have happen is to have the opened page sent via email with the opened page in the body of the email. Can this be done?

  11. Kirld

    Hi Diane,

    Would it be possible to edit the code so that when every reminder fires up, and email alert will be sent also to the attendees of the meeting for example?

  12. Shane Brewer

    Hi Dianne,

    A bit off topic, but is there a way that I could create an email containing similar information to your example but attach the macro to a button in the toolbar so that I can select the appointment, push the button and it will generate the email?

    Thanks in advance.

  13. Shane Brewer

    Thanks Dianne,

    I have that working fantastically. Just one other thing... Everything works now as long as I have the appointment either open or selected. But at the moment it only works if the appointment is selected in the main calendar window. Is there a way to have it work if the required appointment is selected in the to-do bar?

  14. Shane Brewer

    Thanks Dianne,

    Much appreciated.

  15. Stewart Aitken

    Hello Diane

    I am trying to use your macro but it didn't work, so I'd like to check what I have done wrong! I copied and pasted your macro into Outlook ThisSessionOutlook and saved it. I then created an Appointment in Outlook Calander with the location as my own email address. The reminder pops up but there is no email sent to my address. Any idea what I did wrong?


  16. Shane Brewer

    Did you have any luck with this Diane? I have hit a wall with this one.

  17. Shane Brewer

    If the Calendar is the active window and an appointment is selected in the To-Do bar the following error is received:-

    Run-time error '91':

    Object variable or With block variable not set

    If any other window is active (Mail, Contacts, Tasks etc) and an appointment is selected in the To-Do bar the following error is received...

    Run-time error '13':

    Type mismatch

    Hopefully that will give some insight into where I am going wrong.

  18. Stewart Aitken

    Hello Diane. I wouid like to use an Add-in that checks for Appointment reminders and sends a message to the address in the location field or another field. So not to my own email address. After looking at the Add-Ins using the link, I can't see one that seems to do this. They seem to only send emails reminders to the event organiser. Can you suggest an Add-In? Thanks, Stewart.

  19. Akiva Fleischmann

    Hi - I'm sort of a newbie at this stuff. Your code is very helpful, I'm sure, and thank you - but I'm not sure exactly where in the code I enter the pertinent details? Let me give you an example. Let's say I want to write an email to every day with the subject "Test" and the body, "If this works, then the macro worked." The appointment on my calendar will be every day at 8:00 AM, and I made the category "Test" which I have placed it in. Given those instructions, can you please tell me EXACTLY what to do, maybe paste the code with my pertinent details in it so I can know what to do? THANK YOU SO MUCH in advance!

  20. Akiva Fleischmann

    Also, I have Outlook 2013, does that change anything? Also, what if I want to send to multiple email addresses?

  21. Shane Brewer

    Sorry Diane, you lost me. How would I add the macro to the Calendar Tools/Appointment Ribbon?

  22. juriy maksimov

    Hi, please! Help me!)
    It is essential that the script sent a reminder of the meeting to all those listed in the "To" field and how to do it I do not know (

  23. Mike

    Works like a charm. You are amazing! Thank you.

  24. Mike

    This worked perfectly on the first day but hasn't since (4 days). OL14.06 x32 on W7 SP1 x64. Any suggestions?

  25. Mike

    You got it. I never thought to check the security as it worked fine the first day without touching the macro security. Restarting Outlook enforced the security. Kinda odd. Thanks again.

  26. Mike

    And... I even figured out how to easily digitally sign this code so I could return the security setting to the highest possible. Thanks again!

  27. Jacqueline

    THANK YOU! You're wonderful! Also, an easy way to send to multiple addresses ... you can simply create a group list in your contacts and type the group name in the location field. Works perfectly.

  28. mozzis

    Thanks to this site for the idea of using the Reminder event for an appointment, etc. and for using the fields of the appointment to populate the email data. Perhaps the edits/additions I have done will be helpful to those who want to append a signature to the email.

    ' Run when a reminder fires
    Private Sub Application_Reminder(ByVal Item As Object)
    Dim oMsg As MailItem
    Set oMsg = Application.CreateItem(olMailItem)

    ' Only handle appointment reminders (may change later)
    If Item.MessageClass "IPM.Appointment" Then
    Exit Sub
    End If
    Dim oAppt As Outlook.AppointmentItem
    Set oAppt = Item
    ' Only do for Category "Send Reminder Message"
    If Not InStr(oAppt.Categories, "Send Reminder Message") >= 0 Then
    Exit Sub
    End If

    oMsg.To = Item.Location
    oMsg.Subject = Item.Subject
    oMsg.Body = Item.Body
    Dim sig As String
    sig = ReadSignature("mysig.htm")
    oMsg.HTMLBody = Item.Body & "" & sig ' oMsg.HTMLBody

    ' Try to specify sending account
    Dim oAccount As Outlook.Account
    For Each oAccount In Application.Session.Accounts
    If oAccount.DisplayName = "" Then
    oMsg.SendUsingAccount = oAccount
    Exit For
    End If
    Set oMsg = Nothing
    End Sub

    Private Function ReadSignature(sigName As String) As String
    Dim oFSO, oTextStream, oSig As Object
    Dim appDataDir, sig, sigPath, fileName As String
    appDataDir = Environ("APPDATA") & "MicrosoftSignatures"
    sigPath = appDataDir & "" & sigName
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oTextStream = oFSO.OpenTextFile(sigPath)
    sig = oTextStream.ReadAll
    ' fix up relative path references to images in the sig file
    fileName = Replace(sigName, ".htm", "") & "_files/"
    sig = Replace(sig, fileName, appDataDir & "" & fileName)
    ReadSignature = sig
    End Function

  29. Ben

    Hi Diane,

    Tried the above code and it worked for the first day and stopped working after that. I've also changed the security level but it hasn't worked since. Here's my code:

    Private Sub Application_Reminder(ByVal Item As Object)
    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    If Item.MessageClass <> "IPM.Appointment" Then
    Exit Sub
    End If

    If Item.Categories <> "Test" Then
    Exit Sub
    End If

    objMsg.To = ""
    objMsg.CC = ""
    objMsg.Subject = "Test"
    objMsg.Body = "Testing Testing 1 2 3"

    Set objMsg = Nothing
    End Sub

  30. Ben

    Hi Diane,

    Tried that too.. Still doesn't work. Macro security is set at "No security checks for macros"

  31. Ben

    Hi Diane,

    I'm trying to send the email from a template. From what I understand from your other threads, I just need to edit the "Set objMsg" row. So the code should look like:

    Private Sub Application_Reminder(ByVal Item As Object)
    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    If Item.MessageClass "IPM.Appointment" Then
    Exit Sub
    End If

    If Item.Categories "Test" Then
    Exit Sub
    End If

    objMsg.To = "Doe, John"
    objMsg.CC = "Doe, John"
    objMsg.Subject = "Template"

    Set objMsg = ("C:\templates\template.oft")
    End Sub

    Is this correct?

  32. john

    Hi Diane,
    I have attempted to run the code for "Send a message to someone when a reminder fires"
    1. The person I need to remind when an appointment reminder fires is me.
    2. If I use an email address that is outside our exchange network... menaing i have to type in an email address such as a hotmail , and or live account it works fine.
    3. If I am just using my internal email address that is in the GAL. then it gives me an error: "Outlook does not Recognize One or More Names" and highlights the objMsg.Send. Im not sure what is happening as does this only work with typed in email addresses? when I type in my corporate email address it reverts to my named refered in the GAL. I hope this makes sense, thanks

  33. Matthew Wied

    Hi Diane,
    The code work but will not send the email it only goes to the outbox. How can I fix that?
    Here is the code I am using:
    Private Sub Application_Reminder(ByVal Item As Object)
    Dim objMsg As MailItem
    Set objMsg = Application.CreateItemFromTemplate("C:\Users\MCWIED\Documents\Cal.oft")

    If Item.MessageClass "IPM.Appointment" Then
    Exit Sub
    End If

    If Item.Categories "Send Message" Then
    Exit Sub
    End If

    objMsg.To = Item.Location
    objMsg.Subject = Item.Subject
    objMsg.Body = Item.Body

    Set objMsg = Nothing
    End Sub

  34. Karen

    Hi Diane,
    This is exactly what I need for some bills. We have a billing agreement in place and I need to send a reminder every 2 weeks at 10:00 to the business to have them process the agreement. I also need to copy our accounts email in on this as well.

    Notes: I already use your Auto BCC code

    1) Do I copy & paste this new code (send email on reminder) under the Auto BCC code?
    2) What is the string to include a CC/To for the other email? (process@company & accounts@company)

    It's not a meeting so I don't want to use the "attendees" function, it's just an email to process a payment.

    Lastly, when this triggers will the Auto BCC also trigger? (I want this in case of dispute of email being sent).

    Thank in advance,


  35. Karen

    Genius! Thank you Diane.
    This is my finished code :) A little bit of everything in here :D I'm thrilled I managed to piece it together and it works.

    Private Sub Application_Reminder(ByVal Item As Object)
    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    If Item.MessageClass "IPM.Appointment" Then
    Exit Sub
    End If

    If Item.Categories "Bus - ACCs FK" Then
    Exit Sub
    End If

    objMsg.To = Item.Location
    objMsg.Subject = Format(Now, "YYYYMMDD - HH:mm:ss") & " | " & Item.Subject
    objMsg.Body = Item.Body
    objMsg.CC = "accounts@myaddress"
    objMsg.BCC = "deviceemail@mydevice"

    Set objMsg = Nothing
    End Sub

    I don't check my regular BCC addresses on my phone so I need to hardcode my phone email so I can check it when I'm out at an appointment so I know that this email goes through. It's a time sensitive one so I need to make sure I have the date in the subject (or body, i'm going to try both :D) so the receiver knows it's a new reminder.

    Using multiple categories for things isn't a problem, i'll just keep creating categories as my variable emails are required. In this case the receiver, the CC & BCC will never change so it will have it's own category.

    Thank you :D

  36. Karen

    Hi Diane,
    Sorry to bug you :) I've learnt a lot the last few days and your site has helped me tremendously.

    I now want to expand my code a little further.
    I'm trying to automate this new email schedule as much as possible, with a set & forget ideal.

    -> Appointment Reminder triggers email
    -> Email is sent (with attachment, coded)
    -> Email is saved to HDD folder
    -> EMail (sent) is moved from the Outlook Sent Box to Accounts/Sent Outlook folder

    I've managed to get the email to send as HTML (excluding the inserted time), and I've been able to attach 1 file (I haven't tried to include 2), so now I need to file & tidy my sent box & HD emails. :)

    So, these are my 2 questions:

    1) I have managed to get HTML to work in the email:
    objMsg.HTMLBody = Format(Now, "Long Date") & Item.Body
    The HTML is edited in my appointment screen & it works great.

    I can not however work out how to also get the automated time to become HTML. I have tried all sorts of variations in the VB code.
    eg: objMsg.HTMLBody = Format(Now, "Long Date") & Item.Body
    However nothing seems to work to get the date to be in the HTML format, it throws a syntax error no matter how it's coded.

    2) Also, I'd like to be able to save the email to my HD (specifically my backup folder that syncs to dropbox & box), nothing fancy in the saveas title, just the email as it is: Subject = Format(Now, "YYYYMMDD - HH:mm:ss") & " | " & Item.Subject
    so it would be: 20131208 - 0054 | Accounts Reminder.msg
    folder: e:/blah/blah/accounts/company/notices/.msg

    I know I can do a bulk saveas using VBA (which I'd need to look into to schedule it monthly), but I'd like to be able to do it at the time the email sends.

    2.b) Can I add to this script a move to folder (outlook) at the end of the "generate new mail" script? re: -> EMail (sent) is moved from the Outlook Sent Box to Accounts/Sent Outlook folder

    Thank you for help & support in advance.


  37. Emily Jackson


    Many thanks for this. I was hoping somebody would be able to help me with categories, I want to be specific about what I send to who so I've created separate categories. I was just wondering how to incorporate this into the code? What I need to ask the code to do is: if it is for category A send an email, if it's for category B send an email. I'm getting very confused with IF statements!

    Thanks :D

  38. Emily Jackson

    Hi Diane,

    Sorry, I'm really struggling with this. I've spent a few days playing around but can't get it to do what I want.

    For an examples sake say that I have 2 categories:

    Category A - reminder to send to
    Category B - reminder to send to

    I can only ever get Category A to send. I've tried a few different ways but it keeps failing, I would be very grateful for any help.

    Emily :D

  39. Emily Jackson

    It works perfectly! Thank you for your help. :)

  40. Felix Figueroa

    Diane, I used the Send a message to someone when a reminder fires code and copied it in and it fires as expected, problem is I get a runtime error Outlook does not recognize one or more name. When I debug, it points to the objMsg.Send line. Any clues?

  41. juzar para


    Can you help me with code that trigger email if I have not sent email to particular address before particular time..... thanks in advance

  42. Felix Figueroa

    ReRead description and was able to see what I was doing wrong. Code works great. Thanks so much Diane.

  43. Greg

    Hi, I'm missing something, I added the code you developed into the ThisOutlookSession. Then you keep mentioning macro's. Do I copy this same code and place it in a macro or reference it? I haven't done anything like this before and it looks like exactly what I need. Any further instructions would be appreciated.


  44. Mike

    Hi Diane,
    Thanks for the great information. I'm new to this and I'm trying to implement the "Select an appointment and send a message" code and have two questions. Is the code you have in this step all that is needed. The text reads "With a few tweaks, the macro above can be used to send a message by selecting the appointment then running the macro." Does that mean you need the previous text and what you have listed in that section?

    Additionally, I don't really understand the step: "Get the GetCurrentItem function from..." I followed the link and tried a couple things but it kept resulting in compile errors so I'm missing something. Ideally this would work if I ran the macro with the appointment opened or if I have it selected.
    Thanks in advance!

  45. Mike

    Hi Diane,

    I'm trying to have a reminder email only for appointments that I run the macro on manually. I tried working with "Select an appointment and send a message" but I don't understand the part pertaining to the GetCurrentItem function. Ideally I could run the macro whether I had an item open or if I had it selected in the calendar. If I had to choose between the two I wold prefer to select the appointment and run the macro. I followed the link and tried a couple options but I kept getting run-time errors. I'm new to VBA so I'm probably missing something.
    The way I read it, do I paste the "Send a message to yourself when a reminder fires" in the ThisOutlookSession and then use the "Select an Appointment code in a module?


  46. Emma

    Hi Diane,

    This is working great for me apart from when I create recurring appointments, the reminder comes up but the email doesn't fire. Should it work?


  47. Mike

    Thanks for the reply and sorry for spamming you with the same question. That worked but I think I misunderstood what the macro was doing. I am trying to accomplish a combination of the Send a message to yourself and Send a message when a reminder fires. I want to receive an email notification for some items but not all. My thought is that I would select the appointment I need the reminder to occur on, run the macro and then receive the email when the reminder fires.

    Thanks again!

  48. Eric

    I have more people I need to send the e-mail too then can fit in the location field. About 40 people in all. Any idea how to set this up? When I create a contact group, the macro errors out when it try's to send.

  49. Eric

    Run-time error'-2147467259 (80004005)':

    Outlook does not recognize one or more of the names.

    Current the group name is Test. I have (2) e-mails in the group and both are correct. In the location field, I have entered Test.

  50. Tomas Juzko

    Hello, I am using your script (the 1st on), and it works great.
    But I need additional function - to send a link with that e-mail.
    I've used:
    strLink = "C:\My Folder\My Excel.xlsx"
    ObjMsg.Body = strLink & " " & " This e-mail was generated automatically"
    But it sends the link as a plain text only. Do you have any advice for me?
    Thank you

  51. Tomas Juzko

    I solved it by this:
    ObjMsg.HTMLBody = "" & _
    "My Excel" & _
    "This email was generated automatically" & ""

  52. Samantha Walz

    Hi Diane,
    I am brand new to this and most of it is over my head. I have tried a few of the codes but not having much luck because i don't know what to fill in where in the code. I successfully used the "send reminder to yourself" code but put my coworkers email in instead of mine.

    Here is what i'm trying to do. I have a shared calendar for myself and 2 coworkers. I am the only one that receives reminders, so i was hoping to add the code so that when i receive the reminder they get an email about it. I want this to only happen when reminder is for the calendar "Pharmacy Schedule" and not for my personal email calendar. I this possible?
    Can you please help by pasting code here and showing me where to put their emails: ie and and Pharmacy Schedule. Thanks in advance!

  53. Samantha Walz

    Thank you Diane! It's working! This solved a big problem for me, greatly appreciated!

  54. Wee Lee

    Hi Diane, i was wondering if the above code work if lets say i have alot appointment and i wish to send a reminder to attendee based on different appointment. Is it possible to do that?


  55. mattblak81

    Hi Diane,

    I have no problem getting this working but unfortunately when it does fire it just keeps spilling out messages until I turn the reminders to none or delete/dismiss the message.

    Looks good but at the minute too effective :)

    Thanks for your time, you must be irritated by supporting this a couple of years after you posted it!



  56. mattblak81

    Thanks Dianne, So something like this?

    Private Sub Application_Reminder(ByVal Item As Object)
    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    If Item.MessageClass <> "IPM.Appointment" Then
    Exit Sub
    End If

    If Item.Categories <> "Appraisal Reminders" Then
    Exit Sub
    End If

    objMsg.To = Item.Location
    objMsg.Subject = Item.Subject
    objMsg.Body = Item.Body

    Set objMsg = Nothing

    Item.Categories = "Message Sent"

    End Sub

  57. veronica

    Private Sub Application_Reminder(ByVal Item As Object) Dim objMsg As MailItem Set objMsg = Application.CreateItem(olMailItem) If Item.MessageClass "IPM.Appointment" Then Exit Sub End If If Item.Categories "Send Message" Then Exit Sub End If objMsg.To = Item.Location objMsg.Subject = Item.Subject objMsg.Body = Item.Body objMsg.Send Set objMsg = Nothing End Sub

    It works well for me.. but I would like to have additional cc field.. how can this be done?

Leave a Reply

If the Post Coment button disappears, press your Tab key.