Anybody Use Keyboard Maestro to Snooze / Defer Emails?

So I find myself reading emails and deciding that I will come back to it. Now, I have read and it seems it is best to reply / process the email the first time you see it, but sometimes you need to do some pre-work before you can reply to the email.

One option is to move the email to a to do list program and then one ends up with a cluttered to do list.

So I am toying with the idea of creating a snooze routine for emails.

  • read an email and decide to snooze
  • then choose between 4 hour, 1 day snooze period
  • the email goes is removed from the inbox and moved to another folder
  • at the appointed time, the email can be brought back into the inbox
    • and this bringing back can happen on a schedule
    • (the obvious flaw here is that if the computer is not running then keyboard maestro might not be the reliable bring it back software)
    • this flaw can perhaps be removed by having a separate script running on a server or somewhere that moves emails from snoozing folder to inbox (now this will require handling SMTP folders, checking if emails have been in the folder for longer than that folder is designed to hold and then to kick it out)

As with many ideas, it becomes complex once I try to spec it out.

So I am wondering, if anybody here has already done something along these lines? There is this old thread that did but I could not get to the downloadable macro linked to in that post.

Thank you for reading!

This is an interesting idea. So I would imagine you'd keep a list in KM of the emails to be reminded about, and when they should trigger a reminder. (I'm not exactly sure how to identify the emails, but I assume you already know how to do it.)

So I figure the macro would run periodically throughout the day, say every hour or so. If the time is up for a specific email, display the reminder prompt, probably with a timeout in case you're not at your computer.

When you acknowledge the prompt, then move the email and whatever else you need to do, and remove it from the list. This way, if you don't respond to the prompt, the next time the macro runs you'll get reminded again.

If you don't put a timeout on the prompt, you might want to put a Semaphore Lock action at the start so the macro with a timeout of 0 and "Notify" turned off, so you don't keep displaying prompts.

If more than one email's time is up, you might want to have the prompt only display once for all the emails - collect them in a list of some kind.

Just thinking out loud. I'd be interested to see what you come up with - not that I'd necessarily use it, but it's a great programming exercise.

So I started by thinking that execution could happen this way:

  • multiple folders be created for 4 hour snooze, 8 hour snooze, 1 day snooze and 2 day snooze (any longer and the email can be put in a to do list software and email can be moved to a temporary folder)
  • have a KM palette or shortcuts that snooze emails by moving emails into one of those folders
  • then KM runs a macro every 10 minutes say and checks if there is any email in that folder, and if so, then moves that email back into inbox - either quietly or with a notification

What if KM is not run because computer not switched on

  • Then I thought about the possibility that there could be times when my computer is not switched on (albeit not so frequent) and therefore KM does not get to access the emails. And at such times it would make sense to work directly on the IMAP server folders.
  • So I started to think that the script which moves emails back to inbox from those folders, should be run on a server and should act on IMAP server.
  • And at that point, I paused for a bit and decided to post here and see if anybody else has developed or at least brainstorm the logic. That is where I am at.

And finally, the issue nagged at me that would it be better to be more disciplined and leave very very few emails for future work, reply to all emails in a quick way and move the very few emails to my to do list folder. This is the idea that snoozing emails is not a good idea.

So that is where I am at right now :).
Will think it through some more and then decide which way to do. Will share.
And if others have ideas or have implemented their own solutions, would love to hear those.

I understand completely what you're going through. It happens to me all the time. There's two things I try to boil it down to:

  1. Will it actually be helpful?


  1. Will it be fun to do?

If #2 is yes, #1 is kind of irrelevant. :smile:

1 Like

So true.

In this case, for the time being, what I have done is to see if I can be happy using fastmail's web interface for email rather than Apple Mail. So far so good and have not used snooze there although there is the snooze ability. Web interface has more shortcuts!

Sometimes, I capture emails from Mail to OFocus and to Devonthink. Those workflows will now have to be rethought if I stay with the web interface.

And computers were supposed to save us time. :laughing:


Very curious if sims or anyone else has figured out a way to do this with Keyboard Maestro.

A related but slightly different question is about if there’s a way for Keyboard Maestro to send already composed emails on a delayed schedule.

I’ve just recently upgraded from Mojave to Big Sur and see that a very useful set of Apple Mail plug ins (MailSuite 2021) is now only offered on an “Annual Maintenance Model.” Since the main thing I use this plug in for is scheduling emails to be sent later, I was wondering if any in the community have used Keyboard Maestro to automate a “Send Later” macro. I know I could get this functionality with automator or a third party app like MailSuite 2021 or MailButler, but I’d love to be able to do it myself.

I have mapped command+return to be my "send email" keyboard command, so I’m thinking that would be the start of a 'delayed send' macro but I’m lost as to what to try next.

This would have required some serious development which is beyond my skill level. So I am trying to revert back to - action every email immediately and what I cannot action I should leave in the inbox. :man_facepalming:

As for send deferred, I also used to use an extension, and stopped deferring.

With that said, KM is great, and the community here is even better.

Yeah, I may have to go back to an extension if I can’t figure something out. Thanks!

Hey Jim,

Could it be done? Yes.

But it would be awkward and not particularly easy.

Apple has basically stopped developing Mail. They're maintaining it, but when has it gotten a decent new feature? When have they fixed any of the bugs in its AppleScript dictionary much less improved it?

I suggest you spend a minute and complain to Apple:

Feedback - Mail - Apple


That makes sense. Irked that delivery options exist in Outlook but not Mail but not ready to switch just for this feature.

1 Like

I've been using Outlook for decades -- basically since it was released in Windows.
IMO OL is head-and-shoulders above Apple Mail.
For this particular use case, it has several tools built in that I use all the time:

  1. Reminders -- quick click to be reminded of an email or calendar item
  2. Follow-up flags that are easy to set and mark complete, as well as have a start/due day, and a reminder date.

I've only used Apple Mail a little bit (mostly in helping clients), but I see no reason not to switch to Outlook, which BTW, is very scriptable, unlike Mail.

Interesting. I need to look back into this option. Thanks.

Not sure if this is still of interest. But I was searching for this particular task and found out a way to do it.

I used the Cron Trigger and disabled the Macro after it run on the dedicated time.

It worked well during some tests and in the meantime also in a real situation.

Hey HaPe,

Please post a copy of the actual macro and not just a picture of it.

Take Care,

(Keyboard Maestro Moderator)

Hey Chris,

Sure, thanks for the hint. I thought it wasn't worth uploading because of just the few actions. The most amount of time one would spend is to prepare the eMail to be sent I guess. :wink:

Here we go (exported in deactivated status):

Send Scheduled eMail KM.kmmacros (3.0 KB)

Hope it works like this.

thanks for that reminder! one forgets, one just forgets