Last Updated: February 25, 2016
· diurnalist

Set up a script to clean up old GMail threads

I follow a lot of projects on Github. As such, I get a lot of email that I only glance at occasionally, just to get a high-level view at the repo activity. I don't need these emails more than, say, past a week. It would be cool if I could just set up GMail to automatically delete emails older than a week, if they match certain criteria.

In my case, I set up a label called "Github", and any incoming Github notifications are automatically tagged with the label. Then, I set up a simple Google Apps Script to run once a day to flush any emails with that label that are over a week old.

 * Moves any threads with a given label older than 1 week to the trash
function flushLabel(labelName) {
  var threads ="older_than:7d label:" + labelName);

  for (var i = 0, thread; thread = threads[i++];) {
    Logger.log("Trashing " + thread.getFirstMessageSubject());

 * Arguments cannot currently be passed to functions running on a schedule.
 * Each label that should be flushed automatically has its own function.
function flushGithub() {

To schedule a script to run once a day, go to the triggers section (looks like a stopwatch with a pointer in the UI) and set up a Time-driven trigger to run whatever function you want.