If you are following me on Medium, you are probabilly wondering why I have decided to write something not related to Python and programming as I usually do.

The easy answer is that the best programming language in the world can’t make you productive just by itself.

You do need something more.

I’ve been a GTD enthusiast for a while now and I want to share with you something about the way I use this methodology.

Please note: this article has not been sponsored by David Allen, his organization or the “Remember the milk” website. Not yet at least… :)

What is GTD?

GTD is an acronym for “Getting Things Done”. It’s one of the most popular productivity methods in use today… and one of the most “forked” to use an IT term. :)

This article is not intended to explain the full GTD methodology; I am assuming that you already know GTD and how it works. However, if you don’t, there are tons of free tutorials and resources on the web about GTD and all its clone (like ztd and others), but to find out more I do advise to buy the book “Getting Things Done” by David Allen, the author of this methodology.

You can easily find it on Amazon, maybe by using my sponsored link ;)

(in this case… thank you!).

What is “Remember the milk”?

Remember the milk (RTM) is a popular service for managing todo lists and sync them across all your devices. Since the GTD methodology is based on todo lists and Remember The Milk is accessible from any browser or from the specific app available for iOS and Android, it’s a great tool to manage your everyday GTD system.

Remember the Milk is a “freemium” project. You can use a lot of feature for free and basically all the features you will need to follow this article are free. Upgrading to the “pro” account (that is $39.99 per year) gives you

a lot more features (like the possibility to use the integration with If This Than That to automate something or the Apple Watch App etc…).

However, I currently have the free account and I’m quite happy with that. :)

Let’s start!

So, assuming that you do know how GTD works and that you have created a Remember the milk account, we can start.

First of all, we will base our system on three main lists:

Inbox : This is a System list, you cannot actually delete or modify it.

We will put here all the tasks we will create. Being an existing system list… you don’t have to do anything at the moment.

: This is a System list, you cannot actually delete or modify it. We will put here all the tasks we will create. Being an existing system list… you don’t have to do anything at the moment. Waiting For : This is the list where we will put all the tasks that we have delegated to others. We need this list, so go ahead and create it now.

: This is the list where we will put all the tasks that we have delegated to others. We need this list, so go ahead and create it now. Maybe, Someday: This is the list where we will put all the tasks that are not actionable yet, something that we will start someday… maybe… However, we need this list, so go ahead and create it now.

Now you are probabilly wondering… why we have created just this two lists? Why we don’t have the Next Actions list?

Well, actually we don’t need a “real list” for that, we can easilly create a smart list.

So, create a smart list and call it “Next Actions”. Being a “smart” list, this isn’t a real list, it’s just a query that shows some results extracted from a real list you have. If you are a programmer, think about it as it was a view in a database.

So, the query for the Next Actions list is the following:

list:Inbox and dueBefore:Tomorrow

Note: you may be able to create a query also by using a wizard, but I prefer to use the query editor. Find out more about the query editor at this link).

Did you get it? Your Next Actions list is just your inbox list, filtered for all the items that have a due date that is before Tomorrow (hence, Today or someday in the past).

Ok, now we have the Next Actions list for all the tasks that are supposed to be done before tomorrow, but what for the ones that are supposed to be done Tomorrow or someday in the future?

Let’s create a “Scheduled” smart list for them. The query for this smart list is:

list:Inbox and dueAfter:Today

Quite easy, isn’t it? I bet you have understood the idea, so there’s no need to explain that.

Now… the last problem. If we go to the Inbox list we see all the tasks we have created, that’s because the inbox is the real list that contains all the task we have created. It’s a real mess! How to solve that?

You got it! With another smart list! :)

Let’s create another smart list and call it “My Inbox”. The query for this smart list will be:

list:Inbox and due:never

It’s that easy!

All our system is based on the due date. If a task has a due date that is today or before, it’s a Next Action task, if it has a due date that is tomorrow or someday after tomorrow, it’s a Scheduled task and if it doesn’t have any due date, it’s still in the inbox, waiting to be planned.

In this way, every single day, looking at your Next Actions list, you will have an up to date picture of what you have to do, isn’t that great?

Now, the main part of the system is done, what are we missing?

“Contexts” and “Projects”.

For the GTD “Projects” I simply use tags. When I create a new task, I assign it to a tag (or I create a new tag if it is the first task of a new project) named after a project. So my projects are my tags and RTM show me all my projects in the Tags section.

For the “Contexts”, I use only four context: @work, @home, @phone and @pc, but of course you can create as much contexts as you want.

So, for the @work and the @home contexts, I am using the “Location” feature. I have created this two locations with my real address. For “virtual” locations like @phone or @pc, I have created other two locations and since RTM do want a fisical address for every single location (I’d rather if it wouldn’t actually), I have assigned the address “Antartica” to them. This ensures me that I will never be notified for tasks in this location… I mean, I live in Italy, Vostok is quite far (and quite cold) from here. :)

Final steps

Ok, almost done. Just some additional tips:

If you click on the contextual menu of a list, you can choose to add a list to your “Favourites” section. Do it for the

following lists: My Inbox, Next Actions, Waiting For, Maybe, Someday, Scheduled and you will have in the Favourites section just the lists of your GTD system.

following lists: My Inbox, Next Actions, Waiting For, Maybe, Someday, Scheduled and you will have in the Favourites section just the lists of your GTD system. If you want an Archive list where you can see all the completed tasks, just create another smart list called Archive and with the following query: status:completed (You could also decide to add this list to your Favourites section as well).

If you like, create a smart list for every single project you have and don’t add them to your Favourites section. Doing this, you will have the “Favourites” section filled up with all the list of your GTD system and the section “Smart List” with the smart lists of all the projects you have created.

How to use this new set up

Using this new set up is super easy.

If you need to empty your brain from all the tasks you have to complete, just go to the My Inbox list and start creating tasks. Don’t do anything right now, just empty your brain and fill the My Inbox list with everything you have to do.

Later, go to the My Inbox list and review all these tasks, one at a time. Click on it and assign it a context and a project. When you are ready, just plan it by choosing a due date. If the task have to be done now or ASAP, set Today as the due date, if it has to start someday in the future, just pick the specific start date. Each time you set a due date, the task will move from the My Inbox smart list to one of the other two smart list (Scheduled or Next Action).

Now, if you have a task that you want to delegate, just move it phisically to the Waiting For list and do the same if you want to put it on the Someday, Maybe list.

To complete a task is a trivial operation: just select it and click the button on the upper bar to set the status as completed. To delete a task, select it and press the DEL key on your keyboard.

Finally, to postpone a task that is in your Next Action list, just change the due date. It can be done with just a click on the bar.

To sum up

Let’s just sum up the 10 steps needed to get the system running.

Create a list called “Waiting For” Create a list called “Maybe, Someday” Create a smart list called “Next Actions” with the following query

list:Inbox and dueBefore:Tomorrow Create a smart list called “Scheduled” with the following query

list:Inbox and dueAfter:Today Create a smart list called “My Inbox” with the following query

list:Inbox and due:never Create a smart list called “Archive” with the following query

status:complete Create a set of tags, one for each project you have Create a set of locations, one for each context you want to create Set all your GTD list and smart list as favorites and sort them all as your will enjoy!

That’s all folks!

Your GTD System is up and running for free! :)

D.