Deferring e-mails with Outlook

** Updated 18-Mar-15 to include Today and Tomorrow as instructions **


I use Outlook at lot, and in particular reminders. However I have a bit of a blind spot with reminders (mainly because of the window constantly popping up).

To combat this I only use them for non-essential reminders that don’t need doing on a particular day - like cleaning the car; It needs doing at some point but there’s no pressing deadline for it (or in my case, it’s just never wink).

For more deadline based reminders I use deferred e-mails to send myself an e-mail at some point in the future, I tend to pay more attention to my Inbox:

Deferred e-mail dialog in Outlook

The UI is fine for occasional use, but it’s a bit long winded for what I need. I typically just want a reminder in 2 days or 2 weeks time.

So I cranked up my VBA skills to do something about it!


In essence I’d like to be able to create a normal blank e-mail, then [easily] instruct Outlook to defer the sending of the e-mail to some point in time. Adding the instruction in the Subject field seems like a natural starting point:

Deferred e-mail dialog in Outlook

We create the e-mail as normal, with a normal subject line but add a :: delimiter at the end. This will tell our VBA code to look at what follows and convert it into future time. Here’s some example subject lines:

  1. Make a brew :: in 20 minutes
  2. Set off for the dentist appointment :: on 23/3/15 at 3pm
  3. Lunch with Fred :: at 13:00
  4. Lunch with Wilma :: today at 1pm
  5. Lunch with Betty :: tomorrow at 1pm

Then fill in the body of the e-mail and Send as normal. Behind the scenes the macro populates the Delay Delivery settings as you would expect and the e-mail will quietly sit in your Outbox until it’s ready to go.


Installation is pretty straightforward.

  1. Enable the Developer tab in Outlook (if you haven’t already)
  2. Download the Deferrer.bas file and save it on your machine.
  3. Download the ThisOutlookSession.cls file and save it to your machine.
  4. In Outlook, click the Developer tab > Visual Basic button.
  5. In the IDE that opens, right click on Modules and select Import File and locate the Deferrer.bas file you downloaded earlier.
  6. Still in the IDE, right click on Microsoft Outlook Objects and select Import File and locate the ThisOutlookSession.cls file you downloaded earlier.
  7. Restart Outlook

Test Installation

With a bit of luck everything is installed correctly, so create a new blank e-mail with “Test ::in 1 minute” in the subject line. Hopefully it will sit in your Outbox for a while before magically appearing in your Inbox.

Finishing off …

A few things to keep in mind:

  1. The above was developed with Outlook 2010, but should work with later versions (though if it doesn’t, you’re on your own!).
  2. Outlook needs to be running for the e-mail to send; don’t rely on some Exchange Server magic to happen.
  3. The installation process is more than a bit rubbish, if you’ve a better way please mention it in the comments.

Until next time!

Posted in : techie-stuff, tips, office

Written by
Founder, Developer, tea maker