Email Snooze and Gmail Zero

Friday, October 19, 2012
By dreeves

A mouse happy with Gmail Zero

Two years ago, when I still had a day job and Beeminder was just a side project, I wrote about my epic struggle with email:

My email is dysfunctional. I keep things in my inbox because I can’t afford for them to go out of sight, out of mind — but then that’s exactly what happens. They get buried deeper and deeper in my inbox by all the other messages I delusionally think I’m going to deal with.

That was the preface of my article, Inbox Zeroer, in which I proposed that we all declare email bankruptcy and stop adding things to each other’s task lists willy nilly. No, but seriously, I laid out a wish list for some tools to help me reach Inbox Zero, namely, email snooze, re-ping, and auto-expire. Today I’m happy to announce that I’ve implemented those features for Gmail, and you don’t even have to be a nerd to use them. It’s a one-click install, except for saying yes to all the scary sounding things it wants to do: [1]

The best part is that it’s completely unobtrusive. It doesn’t add or change anything in the Gmail interface, working purely off of standard Gmail labels.

How Gmail Snooze Works


A thread with a single number as a label, say “7”, will reappear in the inbox in 7 days. To snooze for 7 days (assuming you have keyboard shortcuts turned on in your Gmail settings) just type: v7<enter>. That moVes the thread from the inbox to the label “7”.

Every night at midnight, everything will shift: threads labeled i will be moved to i-1, with new labels being created as necessary. And anything with label “1” will reappear in the inbox, with no more numeric label. [2]


Re-Ping just refers to snoozing your own outgoing mail so it comes back to you and reminds you to follow up (or re-ping the person) if you haven’t gotten a response.

I originally conceived of this as an additional part of the interface of composing a message, since that’s when you want to decide when a follow-up would be needed. Instead, I implement this by having all of my own sent-mail get filtered so it lands right back in my inbox when I send it. That sounds annoying but it’s just two more keystrokes to get a message back out (“xy” — select and archive) if you won’t need to re-ping. If you will, snooze it like any other message. The idea is that all active conversations should initially be in your inbox until you explicitly allow them to go out of sight, out of mind.

Here’s how to create a filter to make your own sent mail go to your inbox:

  1. Create a filter (available from the “show search options” dropdown on the search box)
  2. Set the From to your own email address, or your username — something that will match all the email addresses you send from
  3. On the next screen, check nothing but “Never send it to Spam”

I find this far superior to what I consider the next best alternative,, because there’s no external service to rely on, and no clutter, either in Gmail’s interface or in your email threads.


[UPDATE 2017: I didn’t end up liking Auto-Expire so I removed it. I still use Snooze and Re-Ping constantly.]

Auto-Expire is like the inverse of Snooze. A thread in your inbox with a label like “x90” will automatically archive itself in 90 days. To apply such a label (again, assuming keyboard shortcuts are enabled in your Gmail settings), type lx90<enter>. That applies the Label “x90”.

Similarly to Snooze, the number after the x will decrement nightly, until the number disappears and the label is just “x” (indicating auto-expired), when it will disappear from your inbox.

I don’t yet have much experience with Auto-Expire but the theory is sound: When a message first has your attention is the best time to make decisions about it. If it’s an email about an upcoming event, set it to leave your inbox sometime after the event will happen. It will then disappear from your inbox after it’s no longer relevant, with zero further thought from you. If you establish a habit of setting an auto-expiration for all incoming mail it would reduce the painful slogs through your inbox, clearing out no-longer-relevant email.

You can even use snooze and auto-expire together, for example, by setting a message to come back to your inbox a week, and then automatically leave again in a month: lx30<enter>v7<enter>.


“The fundamental problem that all this tries to solve doesn’t have anything to do with email processing tools, it’s my damn brain.”

I’ve been using some version of Email Snooze and Re-Ping for years now, in various hacky forms, and I think they’re really powerful tools. But guess what I found out? The fundamental problem that all this tries to solve doesn’t have anything to do with email processing tools, it’s my damn brain. Having an amazing IDE with built-in refactoring tools and a Turing-complete macro language won’t just make you produce code. (To rephrase that for the non-nerds, an amazing word processor won’t make you produce prose.) And as great as email snooze and company are, they don’t solve your fundamental procrastination problem.

Which sounds like a case for — Beeminder! Specifically, Beeminder’s Gmail Zero Project.

How Gmail Zero Works

Gmail Zero is almost as easy to get started with as Gmail Snooze. There’s the usual scary sounding permissions [3] as you connect your Gmail and Beeminder accounts, but then it’s just a matter of picking a target inbox size. Beeminder makes a graphical yellow brick road for you to follow to gradually get there. It periodically checks your inbox throughout the day and records the number of Read messages, plotting the counts along that road. It only counts the minimum of the day, so that you just have to hit the low point and stay there long enough for Beeminder to pick up on it. This lets you (and — once you add a pledge — forces you to) make slow but inexorable progress toward inbox zero.

Gmail Zero only works for people who (try to) diligently archive messages. It doesn’t count Unread messages against you since you don’t have control over those. For example, the 1000 messages you get on vacation? Not a problem — it won’t count them until you get home and start reading through them.

Ignoring unread messages is a double-edged sword, of course. One person using Gmail Zero reports that he finds himself leaving things as unread in order to avoid Beeminder’s sting. We suggest a simple trick to combat that tendency: mark a batch of unread messages as read at the end of each day, when you’re already safely on your yellow brick road, putting yourself on the hook to deal with them tomorrow. Of course Gmail Snooze itself lets you postpone Beeminder’s day of reckoning. But I find that if I’ve snoozed something often enough I’ll eventually admit that I’m never going to deal with it and I’ll just archive.

For me, Gmail Snooze and Gmail Zero are a beautiful combination. I have the option to procrastinate indefinitely on something, by repeatedly snoozing it. But Gmail Zero forces me to keep cycling through those things, never letting a deep pile accumulate where important items can get buried and forgotten about till they come back and bite me. I leave the biting (or stinging) to Beeminder. Here’s how it’s been working for me:

My own Gmail Zero graph

Try it yourself:

UPDATE 2013 August: Google briefly broke Google Apps Script and the Gmail Snooze script was failing to do the automatic nightly snooze shifts for several days (and sometimes doing them too often). It’s now fixed. GmailZero, described in the second half of this article, was unaffected.

Related Reading


[1] It’s actually entirely safe except in the unlikely event that you happen to already use Gmail labels like “7” — labels that are bare numbers — in which case don’t use this or it will change those labels on you!

[2] There’s no limit to how many days you can snooze something for, and Gmail Snooze cleans up after itself, deleting empty integer labels. Except for one-digit labels (1-9) which it keeps to avoid the extra keystroke of confirming label creation for those. So the very first time you snooze for 7 days, you’ll have to confirm that you want a new label “7” but never again.

[3] This is worse than for Gmail Snooze, which is written with Google Apps Script and hosted by Google. For external apps, Google doesn’t give fine-grained enough permissions for Beeminder to ask just to see stats about your email. It’s all or nuthin’ with them. But Beeminder’s not actually reading your email, I promise! See the original blog post on Gmail Zero for more on exactly what it’s doing.


Illustration by Bethany Soule

Tags: , , ,