Last reviewed on January 13, 2014   —  11 comments

If keeping up with Outlook’s idiosyncrasies doesn’t drive you batty, you haven’t opened appointment forms using every method available and ticked the All Day Event box off and on to check the reminder settings.

The problem? Opening an appointment by double clicking on the monthly calendar or using click & type creates a new appointment with the reminder turned off. Using the New Appointment command to open an appointment then toggling All Day Event on and off results in 15 minute reminders or 0.5 days reminders.

A lot of users live in the Monthly calendar view. They double click on a date to open a new appointment form, untick All Day Event and create an appointment. While it may not be the most efficient method, it works and a lot of people do it.

Double-click on a date in the month view in older versions of Outlook, and the appointment form opens with an 18 hour reminder. Unticking All Day Event changes the reminder from 18 hours to your default reminder for timed events, then back to 18 hours when you tick All Day Event again. However… this does not work as expected in Outlook 2013. When you open a new appointment form by double clicking on a date in the calendar, the reminder is not set by default for All Day Events. Unticking All Day Event converts the event to an appointment but it does not set a reminder for timed events using this method.

Right click on the monthly calendar and choose New All Day Event (or use New Items > All Day Event), and the reminder is 18 hours. Untick all day event and the reminder is your default for timed events. Tick it again and the reminder is 0.5 days (12 hours). Twelve hours is the new default reminder for all day events, but dang, changing it to 12 hours everywhere would have been nice.

All Day Event

Using the “click & type” feature in Outlook 2010’s monthly view sets a reminder on All Day Events. Using click & type in Outlook 2013’s monthly view does not set a reminder. (Click & Type is the feature where you can type in on a date or time period to create a quick appointment without opening an appointment form.)

Use a macro to set a reminder

You can use this macro to set the reminder. This will cause the All Day Event to use an 18 hour reminder. Unticking All Day Event will keep the default reminder but clicking in All Day Event again will change it to the new all day default of 12 hours.

This macro works on “click & type” as well as double-clicking on a date or using the New button or keyboard shortcut.

To use:

  1. Set macro security to low in File, Options, Trust Center, Macro Security. You can sign the macro using selfcert after you test the macro.
  2. Open the VBA Editor using Alt+F11.
  3. Expand Project1 and double click on ThisOutlookSession.
  4. Copy the code below and paste it in to ThisOutlookSession.
  5. Click in the Application_Startup macro and click the Run button or press F8 to test it without restarting Outlook.

See How to use Outlook’s VBA Editor for screenshots and more information.

Test it by double clicking on a date in month view. This also set the reminder for appointments created using click & type.

Private WithEvents m_Inspectors As Outlook.Inspectors
Private WithEvents m_Inspector As Outlook.Inspector

Private Sub Application_Startup()
  Set m_Inspectors = Application.Inspectors
End Sub

Private Sub m_Inspectors_NewInspector(ByVal Inspector As Outlook.Inspector)
  Set m_Inspector = Inspector
End Sub
 
Private Sub m_Inspector_Activate()
 If TypeName(m_Inspector.CurrentItem) <> "AppointmentItem" Then
  Exit Sub
 End If
If m_Inspector.CurrentItem.AllDayEvent Then
    m_Inspector.CurrentItem.ReminderSet = True
End If
  Set m_Inspector = Nothing
End Sub

More Information

The macro samples on the pages listed below add, change, or remove reminders when the event is added to the calendar, unlike the macro above that enables the reminder when the new form is opened.

Add a reminder to Birthday Events
How to Remove Reminders on All Day Events
Adding Birthdays and Anniversaries to Outlook’s Calendar

Comments

  1. Susan Masiak says

    Hi, Diane --- I'm no expert, but can usually work my way through instructions. I have Hotmail, and now of course Outlook. I want to change the default for my reminders ---- ALL reminders -- to 12 hours. This way, I'll see all the reminders for the day when I open my computer at 6am. My screen doesn't look like the one above --- it's just the calendar. Right clicking on anything brings the screen with stuff like "inspect element". Would very much apprechiate any help.

    • Diane Poremsky says

      You are using the browser? You won't have default setting (AFAIK) - you can enable reminders in Calendar's gear icon, Options. (Should be https://bay01.calendar.live.com/calendar/options.aspx - it is here anyway) If you click on the calendar name at the top of the screen, you can set some defaults per calendar, like receiving a daily update each morning. Existing reminders need disabled one by one.

  2. Neil says

    Hi Diane - Thanks for the above work around, but I have an issue with it if you can help. I have completed the steps above even set a SelfCert to it. The procedure works until I click on New Email (or work with emails), I receive an error:

    Run-Time Error "438"
    Object doesn't support this property or method.

    I then get the option to (End, Debug or Help). If I select the Debug the following lines are highlighted in Yellow.

    m_Inspector.CurrentItem) = "AppointmentItem" And _
    m_Inspector.CurrentItem.AllDayEvent Then

    After this the method doesn't work again until I open Outlook again and go straight into Calendars.

    Any help would be appreciated.

    Thanks

    • Diane Poremsky says

      Hmm. That error means the item doesn't support what you are trying to do (add reminders). It will only work for appointments - or should only work for appointments. This part of the macro detects if it's an appointment so it shouldn't try to run for email.
      If TypeName(m_Inspector.CurrentItem) = "AppointmentItem" And _
      m_Inspector.CurrentItem.AllDayEvent Then

      For whatever reason, it's not - but this is working here -
      If TypeName(m_Inspector.CurrentItem) <> "AppointmentItem" Then
      Exit Sub
      End If
      If m_Inspector.CurrentItem.AllDayEvent Then

  3. Jon says

    Diane, your VBA work-around works great, although it has the unfortunate side-effect of bringing up a "Want to save your changes?" dialog if you change your mind and try to close the Event dialog. Any fix for that?

    Also, have you reported this bug to MS? I consider it a bug because creating an "All Day Event" using the ribbon menu already defaults to an 18 hour reminder. The behavior is inconsistent.

    • Diane Poremsky says

      I have brought the 12/18 hour inconsistencies to Microsoft's attention. The inconsistency stems from complaints about the 18 hour reminder and trying to change it to 12. They obviously missed some hooks that set it as 18. :( Type-in-place was intended for diary-like entries and it makes sense that they not have reminders. Double clicking to open should use the same reminder as the right click or New Item > All Day Event command IMHO.

      Unfortunately, there isn't a way to avoid the issue when you decide to not create an all day event and use the macro. I prefer to just right click and choose New All Day Event - this defaults to 18.

  4. Lisa says

    Diane, you are a goddess. I haven't tried this yet--will report back if there are any issues, but THANK YOU!!! Can't tell you how much this is appreciated. I posted to you on another thread that the WORST characteristic of MS is that it changes features from version to version. To put it bluntly, this just sucks. They need to keep consistency--adding new features is great, but they HAVE to leave the old options available--or give some custom turnaround so they can be changed by the user thru options. Thank you for this fix.

    • Lisa says

      Hi Again,
      I am not a programmer, but I can usually make my way thru what is being explained.
      First, I set set macro security via File, Options, Trust Center, Trust Center Settings, Macro Settings, to Enable all macros (because I couldn't get the macro window to open so I could paste your macro into it when I clicked something less than this--like digitally signed.)

      Next, when i go into Expand Project1 and double click on ThisOutlookSession.
      Copy the code below and paste it in to ThisOutlookSession.and from this page hit F8,
      then
      the line Private Sub m_Inspector_Activate() becomes highlighted in yellow.
      I hit F8 again, and the program highlights the next line
      If TypeName(m_Inspector.CurrentItem) "AppointmentItem"
      Then I hit F8 again and the program says
      Run-time error '91:
      Object variable or With block variable not set

      Suggestions?

      Also, just for reference, where do I find Click in the Application_Startup macro?

      And, once I get this to work, what setting should I set for Macro Security> Notification for all digitally signed macros, disable all others? Or another one?

      Thank you.

    • Diane Poremsky says

      Easy answers first :) Re: Click in Application_startup: click anywhere in the macro called application_startup (line 4,5, or 6)
      For testing (and later if you want) you need to have macro security set on low. later you can sign it with a selfcert and change the security level back to signed macros.

      do you have all of the lines of code? Specifically, the two above the application_startup macro. I think it's saying that the m_Inspectors_NewInspector macro isn't running, but error 91 can be a pain to decipher. :(

    • Diane Poremsky says

      >> the WORST characteristic of MS is that it changes features from version to version. To put it bluntly, this just sucks.
      So very true. :)

  5. Pete says

    Diane...I am getting feedback from one particular team member that he does not get my calendar invites with the reminder set. I send the invite with the 15 min reminder set, and it pops for me, on time. This one individual seems to be having problems.

    Pete

Leave a Reply