A user with a Microsoft Exchange server mailbox wanted to prepare some messages to send later but didn't want to leave Outlook open or open it to send.
I want to schedule an email to send on the Exchange Server so that I can schedule emails to send while I’m on vacation without having to boot my laptop and open my email 1-2 times per day. I know how to do this in desktop Outlook, but you need to open Outlook on your laptop for this to work. Can I do this using Outlook on the web?
If you are using Office 365 mailbox, Outlook.com, or Microsoft Exchange 2019, you can now send later from the web.
To use it, click the Send menu and select Send Later. If you do not have the Send menu in Outlook on the web, it is not supported on your server version.

Choose the date and time (you can type in the time field) then Send.

When you defer sending a message, in either online or cached mode, Outlook will always show the Sent time as the time you pressed Send, not the time Exchange actually sent the message.
Use Online Mode
When you use an Microsoft Exchange mailbox (either on-prem or Office 365 Exchange online) you can send messages later, with Outlook closed, as long as you can set the account up in Outlook desktop using Online mode.
When you use online mode, the deferred messages are submitted to the Exchange message queue and held until the scheduled time as Outlook doesn’t have a local cache when you use online mode, so it can’t hold them at the client.
This only works if you have the account set up in Outlook in online mode. It will not work with Outlook.com accounts as they do not support online mode.
By default, Outlook sets Exchange accounts up in cached mode. You can check in File, Account Settings: open the account settings dialog, and double click on the account. Cached will be ticked by default when you set up the account, untick it to drop to online mode. The status bar should say 'Online', when you have cached mode turned off.

Before you disable cached mode: if you have the messages already in the Outbox move them to Drafts folder first so they will sync to the server. After you switch to online mode, go to the Drafts folder and Send the messages.
You won't see the messages if you look in Outlook on the web, so you just have to trust Exchange. To verify it is working, create an email to email address you can check on your phone. Defer it for 15 min from now and click Send. Close Outlook. If you receive the message in 15 min, it’s set up properly.
Stephen says
I have two Rules in Outlook.com, one to forward emails received from Midnight to Noon to one individual, and the other to forward emails from Noon to Midnight to a different individual. Both Rules forward the emails as attachments. My Question: What do I need to do to keep Outlook.com in a state where it will always catch the incoming emails? Do I need to be logged into Outlook.com continually and leave my Browser open? Or, can I log into Outlook.com, then just close my Browser? Do I have to keep my PC running all the time, or can I shut it down? This is where my confusion is. Thank you in advance.
Ricky says
I'm having an issue where our client is using Outlook locally on their machine in online mode, but in RDS, they use Outlook in cache mode (required for reasons which I won't get into). If they send an email from Outlook in RDS, it gets sent out perfectly OK, but on their local machine, the email shows either in their draft folder as a half-composed email, or it shows up in their Outbox. Any ideas why this is the case? Send/Receive is set to immediate.
Lillypop77 says
Hi, looking @ your 'expertise", I might have landed @ the right place ;) (Thanks for your tips) Here's my issue : whenever I scheduled delayed emails, they never show up or display in my outbox folder, makin it impossible to correct/modify if needed? BTW, I'm running outlook O365 :)
Diane Poremsky says
Are you using Outlook on Windows, Mac, or on the web? The messages waiting to be sent should be editable using the same Outlook that created them - either from the outbox or drafts folder.
shaiju says
Great Post. was very much helpful.
Thank You.
Brian Tillman says
Does this article need updating to mention "Send later"?
tonny says
Great post. Thank your for sharing this information.
There is a one drawback though - messages sent this way show as a sent date - the date and time you hit send ... not the delayed date and time when the message was actually sent...
Is there a way to fix that?
Diane Poremsky says
No, there is not a way to fix it- its a limitation of how the server handles it.
hari says
i need to delay a specific mail domain for 8 hours in outlook. i have this code.But it is not working. can you gaid me please.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
DelayTime = DateAdd("h", 8, Now)
Dim Mail As Outlook.MailItem
If TypeOf Item Is Outlook.MailItem Then
Set Mail = Item
If Mail.To "*saikumarm@domain*" Then
Mail.DeferredDeliveryTime = DelayTime
End If
End If
End Sub
GoodManStuckNMicrosfWorld says
(For my prior message, I am Microsoft Exchange, cached exchange mode)
GoodManStuckNMicrosfWorld says
This question is different but hope you can ease my suffering. I use Outlook 365 on a desktop (Windows 10). I take option "delay delivery" and set a time for "do not deliver before". I hit send. It enters Outbox. So far great,
Yet if I hibernate (leaving Outlook continuously open), and resume following the "delay-until time", with Outlook still running (in fact, sitting on the Outbox list), it never sends - sits forever in Outbox, and the "defer until" column shows a time in the past. I have one such example that has been sitting in Outbox for 6 months. The "defer until" time has long past. I have even restarted several times but it is silently ignored - no warning, no sending. It will sit there forever.
By the by way I have never received a message saying that I have unsent messages; even when I do a machine restart. Note I hibernate for weeks at a time without restarting. When I do the rare restart, nothing happens either. Note that my restarts have not been while a delay is still not up to the defer until time - by that I mean that I've only restarted when the "defer until" time has already passed, yet Outbox has messages. Either way it's incomprehensible that Outlook just lets it fester in Outbox forever as punishment for hibernating.
It does work as expected if I do not hibernate or sleep before the "defer until" time arrives.
BTW I am so grateful that you exist. Microsoft's support is alternatively supremely incompetent or utterly unresponsive. They never fix anything and at best give third world useless answers in the tragically useless answers.microsoft.com (no exagerration). I don't know how the world could function without you!
Yet Another Victim of Microsoft Deproductivity says
Sorry, i neglected to mention that I am Microsoft Exchange, cached exchange mode. (I am the same user BTW)
BUT - I unclicked that, and closed and reopened Outlook as it directed, and now the Outbox is just empty. The 6 month old message, plus the one I sent last night to go out at 7 A.M. (and hibernated until 8 A.M.) are just gone. Not in Outbox, not Sent, not Deleted, and not received by the recipient. Nor in Search with F3; nor in any search folder. Hitting F9 changes nothing.
So I clicked cached mode to turn it back on, and closed and reopened Outlook as it directed, but it looks like they're still gone. (BTW, a minor curious thing, the search term that I entered into F3 is now gone after restart with cached mode set. F3 search terms normally persist for at least months) **UPDATE: after several minutes they reappeared in Outbox.** Everything seems to look identical now to before.
So the condition remains: when I am hibernated at the time that "defer until" occurs, and resume from hibernation, messages sit forever in Outbox (except for briefly disappearing altogether when I tried running without cached Exchange mode).
Yet Another Victim of Microsoft Deproductivity says
Sorry, the edit period expired. I incompetently did not follow your advice to move the messages to Draft before changing the Cache setting. So the sub-comment I'm replying to is partially invalid.
Summarizing the prior comment:
1. Messages should be moved to Draft prior to changing Cache setting, but my failure apparently was not fatal; messages self-restored to Outbox.
2. Turning off cache mode and restarting did not cause overdue Outbox items to send. Turning it back on and restarting did not either.
3. I have not tried initiating a delayed send message while cache mode is OFF. I can try that next. Moreover, should I just turn it off forever without disadvantage? If that's what's keeping delayed send from working I feel like doing that.
Thanks and sorry for the edits.
GoodManStuckNMicrosfWorld says
I have spent some time getting more familiar with Outlook settings and what mine are set to, and reread your article more carefully and I seem to conclude that delayed send is useless when set to Cached mode; and if I try to do so anyway, I should copy Outbox items to Draft, restart without Cached mode, and resend; or I should just have cached mode off before I even try to send delayed. Not only is either way unenjoyable and requiring memorization of the process, but for all I know you need to STAY off of Cached mode until the messages are sent - is that correct? And finally then I would turn Cached mode back on?
I gather that I COULD just abandon Cached Exchange Mode entirely, but I like the comfort of having an OST file that I can back up, and even make periodic copies of it (in case something is lost between backups and the new backup overwrites, so permanently lost). I work 100% on this desktop, and Internet is on 100%, so I don't need Cached mode in that regard, but I still like the idea of having a local OST file, and I read that you need to use Cached mode to have an OST. Yet delayed send doesn't work in Cached mode.
So is 1. The only practical way to use Delayed Send to be "Online mode" instead of "Cached mode" (using Microsoft Exchange on a desktop, not 'Outlook on the web')? and 2. If I want to keep an OST file, I'll need to switch back and forth to use the feature? And in that case would I also have to *keep it in Online mode* until the delay/defer period expires?
Diane Poremsky says
>> conclude that delayed send is useless when set to Cached mode
More or less. I prefer using a macro to send the messages at the appointed time.
The method in this article uses an appointment - you write the message in the body, when the reminder first, outlook sends it.
This one sends drafts - the subject in the reminder is the subject of the draft
https://www.slipstick.com/developer/send-email-outlook-reminders-fires/
I should have one somewhere that sends drafts based the time and date in the subject - it removes the time from the subject before sending. It checks the drafts folder on a schedule so the deferment won't be exact - if you have 2:15 in the subject and the last hourly check was at 2:10, it will be sent at 3:10.
Diane Poremsky says
Ah... here it is. https://www.slipstick.com/developer/scheduling-drafts-in-outlook/
Freddie Christiansen says
Hi Diane - great article!
Is there any way to monitor these messages in Exchange Message Queue?
I've tried the PowerShell cmdlet "Get-Queue", but haven't been able to find the delayed messages. The "MessageCount" in all of our DBs is at zero, even if I have pressed "Send" in a delayed message in Outlook.
When they are finally sent, I got my hands on them using the "Get-MessageTrackingLog".
Diane Poremsky says
No, not to my knowledge, but i will double check.
chooriang says
1. Use Outlook 365 in cached mode.
2. Compose an email.
3. Press a special "delayed send" button with VBA code attached.
4. The VBA code will prompt the user to select a day/time to send the message.
5. The message would then be treated as an "online" message and placed into the drafts folder so that the Microsoft Exchange server would control the delayed sending and not the client.
Is this possible?
Diane Poremsky says
When you use cached mode, the message is held in the Outbox on your own computer, its not held in Exchange's outgoing que. You need to use online mode, which is only possible in business accounts.
You can use VBA to set the delay - but its going to be held in Outlook until the appointed time.
Diane Poremsky says
A VBA sample showing how to set the delay time is here:
https://www.slipstick.com/developer/set-a-default-do-not-deliver-before-time/
chooriang says
AFAIK, the functionality exists in the Outlook add-in named "Boomerang".
How they handle it in chaced mode but qued in Exchange server?
Diane Poremsky says
They hold it on their servers, not in Exchange, and release when it's time.
Viceverso says
It does not wok. It's a petty that such a useful feature is not available in Outlook when it works so flawlessly in gmail...
Diane Poremsky says
Outlook has two delay options - up to 120 minutes using a rule or you can delay mail to a set time (like next Friday). As far as I know, google only delays mail for up to 30 seconds, should you change your mind about sending it.
A rule holding mail for 1 minute replicates the gmail feature.
https://www.slipstick.com/outlook/email/delay-sending-a-message/