‘Getting Things Done’ with GMail

Overwhelmed by how much you’ve got to do?

Want to make some sense of the chaos?

Just want to hear about another great use for GMail?

Then read on …

Having played with various ways of keeping track of my day-to-day tasks over the years (from good ‘ole pencil and paper to the latest smart-phone apps) I’ve finally started to settle with GMail, their revolutionary labels and David Allen’s ‘Getting Things Done’ system. So this seems like a good time to gather together what I’ve learnt and hopefully learn from other people’s experiences.

Get in touch now if you need any help with this or any other GAS scripts or have a look through some other free scripts and snippets.


'Getting Things Done' with GMail

What I particularly like about this scheme is I’m using a pretty universal tool that’ll be hopefully supported for ever – GMail, rather than storing all this valuable data in a proprietary system that could one day stop working. The labels came from ActiveInBox, which, don’t get me wrong I loved, but the ever moving target that is GMail’s API seemed to forever be breaking AIB. So one fateful morning, when I yet again couldn’t get at my tasks notes in GMail because AIB wasn’t starting up, I decided to ditch AIB and see if I couldn’t implement the features I was using in raw GMail. And the rest, as they say, is history…

Daily Tasks

  • Empty the Inbox: I go through the Inbox and deal with each and every email (not too onerous a task as I should have done this yesterday as well), only leaving ones that are to be acted on that day; aiming for Inbox Zero. Emails that are going to be dealt with that day can be left without labels for now.; just being left in the Inbox highlights them as important.
  • What’s :Hot ?: Each email in the :Hot list is reviewed, and if it requires an action today it is moved back into the Inbox.

Weekly Tasks

  • Once the daily tasks are complete, review everything in the !Action , !Waiting On and !Someday lists.1

Tip: When reviewing a list it is important to remove the label of the list you are in last, otherwise the email will be removed from that list and disappear. You’ll then need to go track it down again to finish updating the labels. For example if you are reviewing the :Hot list with an email open that is labeled :Hot and !Action and you want to change that to just !Waiting On , remove !Action and add !Waiting On first, and only then remove :Hot , at which point it’ll disappear as it is no longer in the :Hot list.

Label Types

Four types of labels are used: :<priority>, !<status>, R/<reference> and @<context> each color-coded appropriately.

The inbox is reserved for today’s tasks.

The punctuation marks used in the labels ensure that they appear at the top of the list of labels on the left hand side of the GMail window.

Priority Label (:)

A task is :Hot or it’s not (there is only one priority label)!

These tasks need to be reviewed on a daily basis, and if they are also an !Action time needs to be allocated in the calendar this week.

Status Labels (!)

I use !Action , !Waiting On and !Someday . Emails kept with no status label are implicitly “!Archived”, just as emails in the Inbox are implicitly a :Hot !Action without being necessarily labelled as such.

  • !Action requires me to perform some specific task like make a phone call or buy a specific thing.
  • !Waiting On means I am waiting on an action by someone else before I can do anything else on this.
  • !Someday means this is something on the back burner which I’ll get around to someday.

Reference Labels (R/)

The R/<name> label is used to group tasks into projects or categories, like R/Car or R/Mr Smith . These are used regardless of status or priority so that once a task is complete it can be archived without further labelling. ActiveInBox’s GTD approach uses a Project label (P/) when it’s an action and a different Reference label (R/) once it’s archived, but I found that these usually had the same name so I just use the R/ label straight away so once the !Action label is removed it is automatically archived with the correctly.

Context Labels (@)

I rarely use these as most things are ‘@Computer’, but I do use them for things like actions that involve meeting a certain person (e.g. @Jim) or being at a certain place (e.g. @TheSuperMarket).

Email Alias

This is a handy feature for automatically labelling emails. By adding “+<some text>” onto the username/first part of your email address and sending it to yourself you can automatically filter and label them. For example, if my GMail address was myemail@gmail.com I’d send it to myemail+act@gmail.com to automatically label it as an !Action , or myemail+wait@gmail.com for !Waiting On .

When sending emails that are going to require you to act on their response, you can BCC it to myemail+wait@gmail.com so it is automatically put into the !Waiting On list.

Tasks Notes

As a task develops I’ll makes notes on it by emailing it back to myself with extra comments – Gmail displays the first line of the latest email in the header summary so it’s usually possible to see the latest notes without opening up the email. You can also use the email alias (+) feature to automatically label these emails. For example forward it to myemail+notes@gmail.com and have a filter mark it as read and remove it from the inbox.

Regular Tasks

Regular tasks are listed in their own Google Calendar as an event and the notification emails I receive labelled appropriately (automatically via a GMail filter if possible)2. For example if I need a reminder to pay for the milk the first Friday of every month I’d schedule this event in the Tasks calendar and set up an email notification, I then have a filter on emails from Google Calendar to label it as an !Action .

Future Tasks

If a task is some way in the future, say more than a week, rather than have an !Action email lying around I’d add it to the Tasks calendar as a one-off event with an email notification being sent to me the day before.

Team Tasks

I wouldn’t want to share my email Inbox (although business users can delegate limited access to your GMail Inbox) so this scheme isn’t suitable for team projects, so instead I use a shared Google spreadsheet. My personal actions within the team only making it into GMail if there are emails about them. Although I may still have a catch-all ‘check the such-and-such list’ action.

Other People ‘GTD’ing with GMail

LifeHacker – Turn GMail into your ultimate GTD Inbox

LifeHacker – This GTD Workflow is How I Finally Got My Email Under Control

ActiveInBox – GMail best practices

1. I’ve not been able to find a way to filter the !Action list to exclude :Hot emails that I’ve already look at that day – “label:!Action -label::Hot“ doesn’t work.

2. I’ve developed a Google Sheets Add-on called Rose Task Manager which applies this idea to a team task list kept in a Google Spreadsheet.