Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to send a schedule recurring email in Outlook?

In Microsoft Outlook, you can easily send a schedule recurring appointment, meeting or task to others. But if you just want to send a schedule recurring email without any appointment, meeting or task, how can you do? Unfortunately, Outlook provides no feature for sending schedule recurring email, but in our tutorial, we will show you how to send a schedule recurring email in Outlook.

Send a schedule recurring email in Outlook with VBA code


Easily remove duplicate emails from specified email folder(s) at once in Outlook:

The delete Duplicate emails utility of Kutools for Outlook can help you quickly remove all duplicate emails from an email foder or multiple specified folders at the same time in Outlook. Download the full feature 45-day free trail of Kutools for Outlook now!

Kutools for Outlook: with more than 100 handy Outlook add-ins, free to try with no limitation in 45 days. Download and free trial Now!

Office Tab - Enable Tabbed Editing and Browsing in Office, and Make Work Much Easier...
Kutools for Outlook - Brings 100 Powerful Advanced Features to Microsoft Outlook
  • Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by rules; Auto Reply without exchange server, and more automatic features...
  • BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
  • Reply (All) With All Attachments in the mail conversation; Reply Many Emails at once; Auto Add Greeting when reply; Auto Add Date&Time into subject...
  • Attachment Tools: Auto Detach, Compress All, Rename All, Auto Save All... Quick Report, Count Selected Mails, Remove Duplicate Mails and Contacts...
  • More than 100 advanced features will solve most of your problems in Outlook 2010-2019 and 365. Full features 60-day free trial.

Send a schedule recurring email in Outlook with VBA code

This tutorial is divided into four parts, you will succeed to send a schedule recurring email after finish these parts. Please do as follows.

First Part: Create a new appointment

1. Please navigate to the Calendar view by clicking Calendar in the Navigation Pane, and then create a new appointment by clicking New Appointment under Home tab.

3. In the Appointment dialog under Appointment tab. You need to:

A: Type in the Subject B: Enter the recipients’ email addresses in the Location
C: Configure the Start time and the End time D: Select the reminder under the Reminder drop-down list.
If you choose 15 minutes, it means it will remind you 15 minutes early when the email is sent.
E: Compose your Appointment body.

Note: The Appointment Subject will become the recurring email subject; and the Appointment body will become the recurring email body when the recipients received the email.

Second Part: Create a new category

Now you need to create a new category named “Send Schedule Recurring Email” as follows:

1. In the Appointment dialog, please click Categorize > All Categories in the Tags group under Appointment tab.

2. When the Color Categories dialog popping up, please click New button. In the Add New Category dialog, type “Send Schedule Recurring Email” in the Name field; and then choose a color in the Color drop-down list. Then click OK.

3. Then you will see the “Send Schedule Recurring Email” category is listed out, please check the box, and then click OK button.

Third Part: Set the Recurrence

Now, it is time to set the recurrence for the appointment.

1. Click Recurrence in the Options group under Appointment tab. See screenshot:

2. In the Appointment Recurrence dialog, configure your Recurrence pattern. If you need an end time, please configure it under Range of recurrence. And then click OK.

3. When it returns to the Appointment dialog, please click Save & Close button. See screenshot:

Last: Use the VBA code for sending the Schedule Recurring Email

1. Please press Alt + F11 to open the Microsoft Visual Basic for Applications dialog.

2. Double click on Project1 > Microsoft Outlook Object > ThisOutlookSession in the left pane. See screenshot:

3. Copy and paste the following VBA code to the VBA editor. And then click Save button.

VBA: sending schedule recurring email

Private Sub Application_Reminder(ByVal Item As Object)
Dim xMailItem As MailItem
On Error Resume Next
If Item.Class <> OlObjectClass.olAppointment Then Exit Sub
If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
Set xMailItem = Outlook.Application.CreateItem(olMailItem)
With xMailItem
  .To = Item.Location
  .Subject = Item.Subject
  .Body = Item.Body
  .Send
End With
Set xMailItem = Nothing
End Sub

When the Reminder popping up, the email will be automatically sent to the recipients which you have typed in the Location field in the first part. Then click Dismiss in the Reminder dialog. And the email will be sent recurring every day in this time. See screenshot:

Note: The VBA code was successfully tested in Outlook 2010, 2013 and 2016.


Kutools for Outlook - Brings 100 Advanced Features to Outlook, and Make Work Much Easier!

  • Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by custom; Auto Reply without exchange server, and more automatic features...
  • BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
  • Reply (All) With All Attachments in the mail conversation; Reply Many Emails in seconds; Auto Add Greeting when reply; Add Date into subject...
  • Attachment Tools: Manage All Attachments in All Mails, Auto Detach, Compress All, Rename All, Save All... Quick Report, Count Selected Mails...
  • Powerful Junk Emails by custom; Remove Duplicate Mails and Contacts... Enable you to do smarter, faster and better in Outlook.
shot kutools outlook kutools tab 1180x121
shot kutools outlook kutools plus tab 1180x121
 
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Sai Swaroop · 17 days ago
    I Tried using the above code it works very fine. But the problem is in the body of the email I am including Pictures, text and Hyperlinks to that. By the time mail reaching to the receiver everything is converting as a Text. Can anyone help me on this
  • To post as a guest, your comment is unpublished.
    Aarti · 17 days ago
    superb works for me thanks yaa
  • To post as a guest, your comment is unpublished.
    Priyank · 2 months ago
    It did work on my laptop before. I somewhat messed up my VBA. now it's not working..
    How do I restart of clear my VBA?

    I am not a programmer. I just wanted automatic email generated and googled it. Tried various things and then came across this post.

    It really worked well before. Please help
  • To post as a guest, your comment is unpublished.
    AMelvin · 3 months ago
    How do you add an attachment to go with the email that is sent?
  • To post as a guest, your comment is unpublished.
    Aerin · 3 months ago
    Is there a way to make this BCC?
  • To post as a guest, your comment is unpublished.
    Jan · 5 months ago
    I got to the VBA code copied, pasted, and saved fine. But no reminder popped up for me to dismiss. Will this still send?
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi Jan,
      Please go to the Sent Items folder to check for the sending email.
  • To post as a guest, your comment is unpublished.
    Tomy · 6 months ago
    It's great work, tks
  • To post as a guest, your comment is unpublished.
    john · 6 months ago
    This is limited on the number of email addresses you can add in the locations. Any work arounds?
  • To post as a guest, your comment is unpublished.
    Kevin · 7 months ago
    This still works. Just tested on Office 2016/ O365. Make sure macros are enabled. Make sure you are pasting the code under "application" and "Reminder" as shown in the screen shot.
    • To post as a guest, your comment is unpublished.
      Daniele · 4 months ago
      Good, now it works!
      I've just one problem. If my Outlook client application is close, it don't work ...any solutions?
  • To post as a guest, your comment is unpublished.
    Anita · 7 months ago
    I am getting a "compile error: invalid outside procedure" every time ANY reminder pops up, not just the one's for the scheduled send. Also, my scheduled send doesn't work. Any ideas? I copied and pasted the code from above. Thanks.
  • To post as a guest, your comment is unpublished.
    Anita · 7 months ago
    Not working for me.... :(
  • To post as a guest, your comment is unpublished.
    Kathrin · 8 months ago
    It didn't work for me either :/.Is there any update available?
  • To post as a guest, your comment is unpublished.
    Simon Hogh · 10 months ago
    This still works? :D
  • To post as a guest, your comment is unpublished.
    Simon · 10 months ago
    Does this still work? Unfortunately it doesn#t work for me...
  • To post as a guest, your comment is unpublished.
    SS · 11 months ago
    Does this go out as an invite? Does the recipient have to accept the invite?
    • To post as a guest, your comment is unpublished.
      Rebeccah · 5 months ago
      It's in the location field rather than in an invitee field, so, no - no invite goes out to the location address(es). No reminders to the location address(es) normally, either. This code is triggered by the application_reminder event for this appointment and adds functionality to it, to

      - create an e-mail message

      - put the appointment location address(es) in the To field of the e-mail message.

      - put the appointment subject line in the Subject field of the e-mail message.

      - put the appointment body in the Body field of the e-mail message.

      - send the e-mail message.
  • To post as a guest, your comment is unpublished.
    Johan · 11 months ago
    If I want multiple of these emails, each with a seperate category/calendar activity like "Send Schedule Recurring Email", "Send Schedule Recurring Email 2" & "Send Schedule Recurring Email 3" etc. How would I go about doing that? Do I copy this code all together for each category/calendar activity, or just add each "Send Schedule Recurring Email x" in the existing code? If so, how do I seperate them? Comma? < > ?
    • To post as a guest, your comment is unpublished.
      Rebeccah · 5 months ago
      Replace
      If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
      with
      If Left(Item.Categories,29) <> "Send Schedule Recurring Email" Then Exit Sub


      Or, if your category names are all different, then
      If Item.Categories <> "First category name" AND Item.Categories <> "Second category name" AND Item.Categories <> "something completely different" Then Exit Sub
  • To post as a guest, your comment is unpublished.
    DTM · 1 years ago
    Just wanted to add my Thanks out here.
    I was struggling with my own version of this and found this and others.
    This is the best version of this I saw. Specifically what I like about it is - this works if you have multiple different emails you want to send. Because, it does not use "hardcoded" variables like the body or emails addresses pulling them from the appointment detail, you do not need to create different micros for each email or edit the code for every little detail that might change. You can even use this for non-reoccurring emails that you want o schedule (yes, you could do a delayed send). that's all controlled by the reoccurrence of the appointment.
    The one con is like any macro based solution, outlook does have to be open (running).

    A couple changes someone might want to make.
    If you do not want replies going to everyone who got the email, change .To - to .BCC.
    If you want to Review or make miner changes before it is sent, change .send to .display
  • To post as a guest, your comment is unpublished.
    Mel · 1 years ago
    I tried this but I cannot get my tests to work.
  • To post as a guest, your comment is unpublished.
    A · 1 years ago
    Hi,
    Thank you so much. It works for Outlook 2016, the version we use at our company.
    I have a question. What do I need to add to the VBA so that it will also grab pictures? I included picture/graphics in my Body. The email grabbed text only.

    Please help.
    Ann
  • To post as a guest, your comment is unpublished.
    Guy · 1 years ago
    For those it's not working - You need to enable Macro commands on Outlook first
  • To post as a guest, your comment is unpublished.
    Laurie · 1 years ago
    Is it necessary to attach a reminder to trigger the email?
  • To post as a guest, your comment is unpublished.
    Rachel Baird · 1 years ago
    Hi there, my appointment did not send. I am unsure if there is an issue with the code I am using. I want to send the email to 6 addresses and have separated them with semi colons; do I need to put the actual email addresses in to the code? Here is the code I used:



    Private Sub Application_Reminder(ByVal Item As Object)
    Dim MItem As MailItem
    Set MItem = Application.CreateItem(olMailItem)
    If Item.MessageClass <> "IPM.Appointment" Then Exit Sub
    If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
    MItem.To = "single or multiple emails separated by semi colon ";" "
    MItem.CC = "single or multiple emails separated by semi colon ";" "

    MItem.Subject = Item.Subject
    MItem.Body = Item.Body
    With MItem
    .Attachments.Add "network path of the file to be attached. eg: \\abc\def\ghi.doc"
    .Display

    End With
    MItem.Send
    Set MItem = Nothing
    End Sub



    Can anyone advise? Thank you
  • To post as a guest, your comment is unpublished.
    Anonymouse · 1 years ago
    It didnt work for me
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      The code has been updated in the post. Please try it again.
  • To post as a guest, your comment is unpublished.
    Chris · 1 years ago
    Same here, Office 2010 and 2016. Works great when setting up the First occurance, does not work when the next recurring reminder triggers the next week.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      The code has been updated in the post. Please try it again.
  • To post as a guest, your comment is unpublished.
    tmas · 1 years ago
    The first automatic one of the series worked but no more have
  • To post as a guest, your comment is unpublished.
    Malcolm · 1 years ago
    I mean "dismiss"
  • To post as a guest, your comment is unpublished.
    Malcolm · 1 years ago
    Nothing is happening after I click submit.
  • To post as a guest, your comment is unpublished.
    AndrewR · 1 years ago
    Very useful, thank you for taking the time to create this.
  • To post as a guest, your comment is unpublished.
    CLAYTON · 1 years ago
    I do not receive an email after I hit DISMISS ... I did use <> in the location field - is that correct?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      The <> does not effect the sending. Actually there is something wrong with the VBA code, and the code now is updated in the post. Please try again. Thank you!
  • To post as a guest, your comment is unpublished.
    Eugene Goh · 1 years ago
    Hi All,


    I have added code to dismiss reminder once it was fired, so that we would not accidentally click snooze and cause the email to be resend. Also, code was added so that the full formatted email body is copied (including picture and attachment). Hope the code below will resolve all your issues.


    Code as below:


    Dim WithEvents objReminders As Outlook.Reminders
    Private Sub Application_Reminder(ByVal Item As Object)
    Dim MItem As MailItem
    Set MItem = Application.CreateItem(olMailItem)
    If Item.MessageClass <> "IPM.Appointment" Then Exit Sub
    If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
    MItem.To = Item.Location
    MItem.CC = ""
    MItem.BCC = ""
    MItem.Subject = Item.Subject
    MItem.BodyFormat = olFormatHTML
    Item.GetInspector().WordEditor.Range.Copy
    MItem.GetInspector().WordEditor.Range.Paste
    MItem.Display
    MItem.Send
    Set MItem = Nothing
    End Sub

    Private Sub Application_Startup()
    Set objReminders = Application.Reminders
    End Sub
    Private Sub objReminders_ReminderFire(ByVal ReminderOBject As Reminder)

    If ReminderOBject.Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub

    ReminderOBject.Dismiss

    End Sub


    Regards,
    Engyaogoh
  • To post as a guest, your comment is unpublished.
    Newt · 1 years ago
    <HELP>

    hi I found out one.
    The first test of the code, it works properly.
    But I found out the next day to test, I found out it is not working anymore. (not sending the mail to the destination)


    I have tried the macro setting, remove categories, seem not working too.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hey,
      The code is now updated in the post, please try again! Thank you!
  • To post as a guest, your comment is unpublished.
    GP · 1 years ago
    A lot of people have asked about CC and adding an attachment and sending the mail to multiple people. Please use the VBA code below in place of the one provided in the VBA code step above.



    Private Sub Application_Reminder(ByVal Item As Object)
    Dim MItem As MailItem
    Set MItem = Application.CreateItem(olMailItem)
    If Item.MessageClass <> "IPM.Appointment" Then Exit Sub
    If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
    MItem.To = "single or multiple emails separated by semi colon ";" "
    MItem.CC = "single or multiple emails separated by semi colon ";" "

    MItem.Subject = Item.Subject
    MItem.Body = Item.Body
    With MItem
    .Attachments.Add "network path of the file to be attached. eg: \\abc\def\ghi.doc"
    .Display

    End With
    MItem.Send
    Set MItem = Nothing
    End Sub
  • To post as a guest, your comment is unpublished.
    PAP · 2 years ago
    Works well for Outlook 365! Thank you for sharing the code!
  • To post as a guest, your comment is unpublished.
    Mani · 2 years ago
    It is not working in Outlook 2013. Any help?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Nani,
      The code has been updated to be compatible with Outlook 2013.
  • To post as a guest, your comment is unpublished.
    Gandhiyappan · 2 years ago
    if my outlook is closed then mail is not sent. Is there any way to make it even when my outlook is closed
  • To post as a guest, your comment is unpublished.
    Sara · 2 years ago
    What Happens if I want to CC people?
  • To post as a guest, your comment is unpublished.
    Marc · 2 years ago
    Getting "Syntax Error " in VBA window. Using Outlook 2016 on Windows8
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Mac,
      The code has been updated to be compatible with Outlook 2016.
  • To post as a guest, your comment is unpublished.
    Ajmal · 2 years ago
    I've setup multiple emails in outlook, how would it know to send it from?
  • To post as a guest, your comment is unpublished.
    Krystin · 2 years ago
    It will not let me add the amount of people I need to send too ?
    • To post as a guest, your comment is unpublished.
      Kyle · 2 years ago
      Asked and answered above. You add a distribution list (Outlook Contact Group) and use @ in the group name i.e. 'Spec@Group'. Put all the people you like in that group.
      • To post as a guest, your comment is unpublished.
        Brian · 2 years ago
        Sorry - I'm not fully understanding "Spec@Group" - If I create a group called "NetworkMeeting" and add all the people in that, would the address be NetworkMeeting@MyDomain.com?
  • To post as a guest, your comment is unpublished.
    Andrei Buldus · 2 years ago
    Hey guys. This code works great but i have a little problem . The email i am trying to send is part of two categories : Send Message(the macro uses) and PROGRAMARI RED-TEAM. The macro works fine when i only add the Send Message category, but as soon as any other category is added the macro stops sending emails. Here is the code so far. Please help :P

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

    'IPM.TaskItem to watch for Task Reminders
    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.BCC = "andrei.buldus@promotor.ws"
    objMsg.Subject = "Instiintare expirare Autorizatie/Contract Service"
    objMsg.Body = "Buna ziua," & vbNewLine & vbNewLine & _
    "Conform bazei noastre de date, autorizatia/contractul de service, incheiat intre compania nostra si " + Item.Subject + " urmeaza sa expire in termen de 14 zile." & vbNewLine & _
    "Acest lucru este in atentia departamentului nostru Service, si urmeaza sa fiti contactati in cel mai scurt timp posibil pentru a stabili cursul actiunilor viitoare." & vbNewLine & vbNewLine & _
    "Va multumim pentru increderea acordata." & vbNewLine & _
    "Promotor Import Export S.R.L." & vbNewLine & vbNewLine & vbNewLine & _
    "Acesta este un mesaj automat."

    objMsg.Send

    Set objMsg = Nothing
    End Sub
    • To post as a guest, your comment is unpublished.
      victor · 2 years ago
      it's stopping because of the line.... If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
      when you add the other category it is cuasing the exit sub.... maybe use if instr(1,item.categories,"Send Schedule Recurring Email") =0 then exit sub or something like that...
  • To post as a guest, your comment is unpublished.
    Duane Cowperthwait · 2 years ago
    I need to know how\if you can attached an excel spreed sheet?
  • To post as a guest, your comment is unpublished.
    Tracy · 2 years ago
    It sent fine, but it dropped all of the fancy formatting I have in my email body. How do I get it to keep this formatting???
  • To post as a guest, your comment is unpublished.
    alex · 2 years ago
    So two things, one it doesn't show up the way I have written it I.E. there is no bold characters and two how do I add a signature? because it shows up as a hyper link instead of my regular signature. Thanks for the help.
    • To post as a guest, your comment is unpublished.
      Tracy · 2 years ago
      Alex

      Mine shows up with the formatting stripped out too. How do we keep it?
  • To post as a guest, your comment is unpublished.
    William · 2 years ago
    I have office 2016 and I tried this, following your instructions exactly. It worked!! Thank you so much.

    I did have to change my macro security settings in Outlook 2016 and VBA editor to get it to work, but once that was done the instructions flowed easily.
    • To post as a guest, your comment is unpublished.
      Ahmad · 2 years ago
      Hi, How did you change the macro security settings in outlook and what did you change it to?
  • To post as a guest, your comment is unpublished.
    bonnie · 3 years ago
    Hi
    when i follow all steps and save and go do make another email- the code is still there from last time.
    Is the code attached to the category selected so no need to add the code for each email?
    • To post as a guest, your comment is unpublished.
      Kyle · 3 years ago
      Hi Bonnie, the VBA code only needs to be added once (for the first recurring e-mail). If setting up more than one recurring e-mail just miss out that step.
  • To post as a guest, your comment is unpublished.
    RD · 3 years ago
    The VBA code did not appear when I pressed ALT & F11. I was able to pull up the Microsoft Visual Basic for Applications, but no code was present. Can you please advise?

    Thank you,
    Raj
    • To post as a guest, your comment is unpublished.
      KYLE · 3 years ago
      Hi Raj, no VBA code should be present. If you follow the guide above, when you double click on "ThisOutlookSession" it is supposed to be empty. You have to copy and paste the code shown in the guide into the "ThisOutlookSession" window and then save it. Hope this helps.
  • To post as a guest, your comment is unpublished.
    Ashley · 4 years ago
    Is it possible to schedule an email to be sent in outlook when the computer is gone. For example, I would like to send an appointment reminder on Sunday for a meeting on Monday, but I am not at work on Sundays, so how do I get that email to go out on Sunday when I am not at work and my computer is off?

    Thanks!
  • To post as a guest, your comment is unpublished.
    Kyle · 4 years ago
    Yes Aaron, I needed to do this myself. I tried adding a distribution list (Outlook Contact Group) called 'Spec Group'. This did not send. However, I changed the list name to 'Spec@Group' (to make it look like an actual e-mail address) and this worked perfectly. It must need the '@' to get picked up. Lucky guess! :lol:
    • To post as a guest, your comment is unpublished.
      Tracy · 2 years ago
      This worked well. Now I need the same email to go to multiple groups. Can anyone help?

      Private Sub Application_Reminder(ByVal Item As Object)

      Dim CF As Folder
      Set CF = Application.Session.GetDefaultFolder(olFolderContacts)

      Dim DLI As DistListItem
      Set DLI = CF.Items("GDL Group 1")

      Dim MItem As MailItem
      Set MItem = Application.CreateItem(olMailItem)
      If Item.MessageClass "IPM.Appointment" Then Exit Sub
      If Item.Categories "Recurring GDL Recert Email" Then Exit Sub
      MItem.To = DLI
      MItem.Subject = Item.Subject
      MItem.Body = Item.Body
      MItem.Send
      Set MItem = Nothing

      End Sub
      • To post as a guest, your comment is unpublished.
        Kristal · 1 years ago
        Make another Distribution list that contains/points to the other Distribution Lists that you already have setup that you want to include.
  • To post as a guest, your comment is unpublished.
    Aaron · 4 years ago
    Is there a way to send to distribution list in contacts?
  • To post as a guest, your comment is unpublished.
    Donna · 4 years ago
    Hey, check this out - I think you'll absolutely love this feature.. No more weekly template emails