I emailed you last night, why didn't you reply? - ANME Blog

I emailed you last night, why didn't you reply?

Posted on: 18th Dec 2021 by: Rick Cowell

The topic of emailing out of hours is likely to have been debated in a lot of workplaces, especially in schools and colleges.

Accessing emails has never been easier, and while that is handy most of the time, it also poses a problem - it’s just too easy to open your emails – at any time of day – wherever you may be – whether out of curiosity, force of habit, or just boredom… but whose responsibility is it to resolve this issue?

  • Should all staff be instructed not to send any emails after a certain time?
  • Should they be told not to expect it to be read until the next working day?

Who’s at fault?

If people want to check their emails out of work, that’s understandable – provided they don’t feel pressured to do so, but should they send emails too, or reply to others then and there, potentially putting pressure on the recipient to act on it? Or should they save it as a draft to send in the morning?

What can be done?

The option to delay delivery has been a feature of the Microsoft Outlook client for many years, and has more recently been introduced to Outlook on Microsoft 365 (previously known as Office 365). However, this relies on the sender setting that delay manually each time they send an email, and if they’re used to sending them quickly as soon as they’ve finished typing – too easily done by pressing Ctrl & Enter – there’s little chance of them remembering in time…

Can it be done automatically for everyone at work?

No, in a word… Not yet anyway.

There currently aren’t any options for delaying emails sent out of hours on mail servers – or none that I’ve been able to discover so far – so I started looking into ways of customising the Outlook desktop client to handle this for me as I use Outlook on my PC for the vast majority of my emails.

This will involve VBA scripts… I’m the first to admit I’m certainly no expert when it comes to scripting! After a couple of failed attempts, and near-miss, I posted on the Mr Excel forum (a site I’ve used many times for help with tricky formulae in Excel, but never used the area for “Other” programs before), and was quickly helped by user GWteB there, who completely re-wrote the script for me! What a darned decent guy!

Now I can email away without having to worry about the time, safe in the knowledge that any emails I send after 1800 Monday-Friday, or any time at the weekends, don’t get sent until 0800 the next weekday morning.

Is there anything else I need to know?

There are, of course, a few things to bear in mind…

  1. It only works on emails sent in Outlook that this script has been added to.
  2. It only works on Outlook on Windows, not Macs (there may be a way to add it to Mac, if you try it and get it working, feel free to let me know and I’ll add it here).
  3. Outlook must be running at 0800 (or whatever time you specify in your script). If it’s not running, the emails will only get sent when you open Outlook again on that machine. So if you sent them on your laptop at night, but don’t log back into your laptop until lunchtime at work the following day – the emails won’t send until then.
  4. If you edit the code at any time in the future e.g. to change the times, you will need to re-sign the project (steps 11-20 below).

Having considered those points, I’m wondering whether this is really a practical solution for anyone really, other than the uber-geeky! However, it’s relatively simple to implement – if your account permissions allow it.

It’s a success!

I’ve been using this script for about a month now, and just at the weekends it’s delayed over 170 emails until Monday morning – so saved those people potentially seeing the emails and acting on them, or just thinking about them. It’s quite alarming seeing the Outbox fill up over the course of the weekend, and you realise just how many emails you actually send!

How does the script work?

In a nutshell, it's a code that needs to be entered in Outlook, and then signed. 

Nothing is ever quite that straight forward, but it's not that tricky really! 

The code:

(You can copy and paste this!)

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Const DELAYDAYSFROM As String = "3.Friday, 2.Saturday, 1.Sunday"

            ‘If you want to allow specific emails to bypass the delay, you can add the keyword specified below – it’s recommended that you use a nonsense word that isn’t likely to feature in the email normally.

            ‘The keyword is set as “SendNow” below – change there to use a different word – ensure it is still in the speech marks (you don’t need to include the speech marks in the email)

    Const KEYWORD       As String = "SendNow"                           ' <<<< change to suit

    Dim AddDays As Long, Pos As Long, SendTime As Date

            ‘Choose below whether you want to bypass the delay with the keyword above in the main body of the email or in the subject.

            ‘The ‘ (apostrophe symbol) makes the rest of that line get ignored, so make sure it is only at the beginning of the option you don’t want

    If InStr(1, Item.Body, KEYWORD, vbTextCompare) Then                 ' <<<< choice 1: keyword in body

   If InStr(1, Item.Subject, KEYWORD, vbTextCompare) Then              ' <<<< choice 2: keyword in subject

        ' send immediately

        AddDays = -1


        ' assume a delayed send

        SendTime = #8:00:00 AM#

        ' assume Monday, Tuesday, Wednesday or Thursday

        If Time < #7:59:00 AM# Then

            AddDays = 0

        ElseIf Time > #5:59:00 PM# Then

            AddDays = 1


            ' send immediately

            AddDays = -1

        End If

        ' check on weekend

        Pos = InStr(1, DELAYDAYSFROM, VBA.Format$(Date, "dddd"), vbTextCompare)

        If Pos > 0 Then

            ' possible delay until Monday

            AddDays = CLng(Mid$(DELAYDAYSFROM, Pos - 2, 1))

            ' Friday?

            If AddDays = 3 Then

                'Friday before 8.00 AM?

                If Time < #7:59:00 AM# Then

                    ' yep, postpone to 7.00 AM same day

                    AddDays = 0

                'Friday after 6.00 PM?

                ElseIf Time > #5:59:00 PM# Then

                    ' yep, postpone to Monday


                    ' Friday during office hours, send immediately

                    AddDays = -1

                End If

            End If

        End If

    End If

    If Not AddDays = -1 Then

        Item.DeferredDeliveryTime = Date + AddDays + SendTime

    End If

End Sub

The instructions:

Adding/editing the code:

(You don't have to edit it - if you want it to delay emails Monday - Friday after 1800, and any time at the weekend until 0800 the next working day - the code above will be fine)

1. In Microsoft Outlook on your PC, press Alt & F11
This opens the Microsoft Visual Basic editor
2. Expand “Project1” (the Plus symbol to the left)
3. Expand “Microsoft Outlook Objects)
4. Double click on “ThisOutlookSession”
5. Copy and paste the code above into the VbaProject.OTM – ThisOutlookSession (Code) window
(edit the options for Keyword and times if necessary)
6. Click the Save button 


Keeping things secure - creating a certificate:

To avoid making your PC less secure, you need to sign your macro.

You need a certificate to sign your macro with, and you can create that yourself by using selfcert, which is installed as part of Microsoft Office – although they don’t make it easy to find!

You can find selfcert in the folder with your Office files. In Outlook 2010 and older, selfcert is usually at C:\Program Files\Microsoft Office\OfficeXX where XX is your version of Office. In Office 2019 it can be found here: C:\Program Files (x86)\Microsoft Office\root\Office16.

In this folder you will find selfcert (or selfcert.exe if you have your file extensions showing, which is always advisable!).

Creating the certificate is easy:

7. Double click selfcert.exe
(See information about where to find selfcert.exe above)
8. Enter a name for the certificate
9. Click OK
10. Click OK
(don’t worry about where it’s gone – it’s not a file you’ll need to save, if you do ever need a new one on a different machine, you can just create a new one)


Keeping things secure - signing your macro:

Now to sign your macro with your certificate.

11. Back in the VBA editor, in ThisOutlookSession where you pasted the code above
12. Click Tools - "Digital Signature"
13. Click "Choose..."
14. Click “More choices”
15. Select your signature from the list
16. Click “OK”
17. Click “OK”
18. Save your macro and close the VBA editor.
19. Close Outlook, it will prompt you to save the VBA Project “VbaProject.OTM”, click “Yes”
20. Re-open Outlook and click “Trust all documents from this publisher”

Just remember – if you edit the code in the future, changing the times etc., you will need to sign the signature again.

Is emailing out of hours an issue where you work? Have policies been introduced to minimise it? Let us know by Tweeting mentioning @TheANME


Rick Cowell

Director and Founder of ANME Ltd.

Association of Network Managers in Education





The information which is summarised herein does not constitute technical or other professional advice and is general in nature. It does not take into account your specific circumstances and should not be acted on without full understanding of your current situation by your Network Manager. In doing so you risk implementing changes that may not be suitable to your needs.

Whilst we have tried to ensure the accuracy and completeness of the contents of this website, ANME Limited cannot offer any undertaking or guarantee, either expressly or implicitly, including liability towards third parties, regarding how correct, complete or up to date the contents of this website are. We reserve the right to supplement this website at any time or to change or delete any information contained or views expressed on this website.

ANME Limited accepts no liability for any issues, loss or damage howsoever arising out of the use of this website or reliance on the content of the website.

Tags: Wellbeing, Rick Cowell,

Latest News

EdTech Trends for 2022

14th Jan 2022

Next Event/Meeting

Latest Tweet

Thanks to Edulink onefor joining the #ANMETrail at #Bett22 and donating a £75 Amazon Voucher!… https://twitter.com/i/web/status/1483371876831354881

1 day ago

Testimonials from Members & Partners

  • “Fantastic event, with interesting content and very well organised.”

    Alain Squiteri, Sales Director - InVentry

  • I thought the day was excellent. It was really good to have the companies there and invaluable for meeting and speaking with new contacts. I really hope this carries on as it was desperately needed in our field.

    Janet Cannell, Member

  • We’re really proud to be ANME’s platinum sponsor. It’s such a great platform for school network managers to get together and share ideas, plus it provides us the opportunity to speak directly to schools using our solutions and get their feedback and input into new features. Every event is always different, with fantastic speakers providing real insight and ideas on all things edtech.

    Al Kingsley, Group Managing Director, NetSupport Limited

  • ANME meetings provide valuable networking - being able to talk to other professionals doing the same role and understanding their approach and their context. This is a great way to challenge what you are doing in your own setting.

    Neil Limbrick, ANME Ambassador

  • A fantastic online resource of like-minded professionals that you can use to bounce ideas off, chat things through, get advice from. Invaluable.

    Ric Turner, Balshaws Church of England High School

  • The ANME is a priceless resource for anyone working in an IT support role in the education sector. The online forum is lively and informative and the regular meetings provide insight into new products and valuable networking opportunities with peers from other establishments. I've lost count of the number of valuable conversations and helpful tips that I've had since becoming a member. If you've not been to a meeting before then try to attend the next one in your area, you won't be disappointed.

    Dave Leonard, ANME Ambassador and ICT Manager at Matthew Moss High School

  • The ANME has been a great resource when you're a lone IT manager, now you have friends going through the same obstacles as you, with plenty of advice and guidance.

    Michael Frost, ANME Member & IT Network Manager at Parkwood Hall Co-operative Academy

  • Being part of the ANME is like being part of a large corporate IT department, there's always someone you can ask for advice

    Paul Gillon, ANME Member & Network Manager at West Hill School, Stalybridge

  • ANME is like having a team of IT experts at my fingertips. It helps me keep up to date with the latest trends in IT education.
    Rick and the ANME members have always helped when I've needed extra guidance to make great IT decisions

    Clifford Fernandes, ANME Member & IT Manager at Claremont High School

  • I attended my first ANME regional meeting recently which was great. It was Informative, relevant and useful! Unlike some meetings I attend where you get one or two useful nuggets of information, but other bits have been added to the agenda as fillers. Glad to be a member of this group of like-minded individuals.

    Adam Hall, ANME Member & IT Operations Manager at Four Oaks Learning Trust