“Getting Things Done” in a spreadsheet

Last time we looked at implementing a calendar in 43 physical folders. This time, we’re going to look at implementing all of GTD using no specialized software: just a spreadsheet and a calendar. For the spreadsheet, I’m going to use the one from LibreOffice because unlike That Big Famous One™ it’s free, and unlike That Other Famous Online One™ it doesn’t involve using an online cloud system you may or may not trust from a company you might consider evil. But you should be able to accomplish this with either of those if you prefer.


First, open a new spreadsheet. Add the following tabs to it: Actions, Someday, Completed.

In the Actions tab, make the following columns: R, Project, Action, Context, Defer, Due, Requires.

For a project, make a new row and enter its name in the Project column. Enter “…” in the Action column. Don’t put anything in the Defer column, but feel free to put a date in the Due column. Don’t put anything in the Requires column either.

Let’s say I’m planning to clean for my birthday party and the cleaning needs to be done the day before my birthday. So right now, the sheet looks like this:

Just one row so far.

Now for each action in the project, in what I think the order will be (if it matters), add another line. Copy/paste the project name, but fill out the action and add a meaningful context. And this time, feel free to include a defer date as well as a due date.

Great example for defer dates: clean too far in advance and the house will be messy again.

Now add more projects and actions. Remember to lead off every project with a “…” action line.

Note that the “fix doorknob” project has no due dates because (let’s pretend) it’s a “when I get to it”, rather than having deadlines like the party and the bills.

Now if you notice, I have “Requires” fields for some of those actions above: I can’t mail the mortgage check, for example, until I write it and put it in the envelope; I can’t buy the doorknob until I go to the hardware store; I can’t install it until I buy it. Did I just cut and paste those? No; I actually used formulae.

I clicked in the “Requires” column of the “mail check” line, hit the equals sign key to start a formula, and clicked in the “write mortgage check” action on the line above, then hit ENTER. Note that the formula bar shows “=C7”.

Now why did I do that instead of just copy/pasting? Well, if you’re really handy with a spreadsheet, you could imagine doing more with this than I’m going to go into great detail with, but I’ll mention an idea or two near the end of this post.


Most modern spreadsheet programs (LibreOffice and the two Which Shall Not Be Named among them) have some sort of filtering option. You can highlight the headings row of your sheet and then click a filter button or choose it from a menu (in LibreOffice, it’s “AutoFilter” in the “Data” menu). This will give you handy little popup menus in the heading row that let you sort the sheet and select values, which make the two next techniques possible. Here’s what things look like with filters turned on and opening one of the popups:

Context Filtering

When I’m in a context figuring out what to do, I can go to the Context header and pick options. So for example, I’m at home and online, and I’m capable of getting in the car, so I can choose those …

… and when I have made my selections and clicked “OK” …

… I see only the options available in my current available contexts! So I no longer see “buy the doorknob” because I’m not at the hardware store, and I no longer see “mail the check” because I’m not near a mailbox.

Now we did note a few posts back that contexts are really like Venn diagrams: an action might be in more than one context. So this is a slight limitation of a simple spreadsheet. Still, it is a good enough method to handle the majority of cases. And since when you click the autofilter popup menu you do see all the contexts in your sheet, it’s easy and quick to review which options might be relevant.

Weekly Review

The Weekly Review is also made simple by autofiltering. First, clear the Context filter we set above (go back to seeing items in All contexts). Then in the Action filter, choose to show only the action “…”, and voilà …

… we see only the project headings.

Or by clearing the Action filter and toggling the Project filter, you can just see the actions for one project. So to do the Weekly Review, you could look at a project, and then when you’ve reviewed it and are happy, put an “x” in the R column of its master (“…” action) row. Then switch back to only showing the “…” rows and see which projects are still missing their “x”. Then switch back to showing all the actions of those projects. And so forth. When you’re done with the review, just clear all the “x” cells until next week’s review.

The other tabs

The Someday and Completed tabs can be organized as you see fit. How much information do you need to keep about completed projects or actions? How much detail does a “Someday/Maybe” idea get to have before it becomes a real project? Up to you.

Room for Improvement

Here’s just a few ways you could make this spreadsheet even cooler if you’re a spreadsheet geek:

  • Add a “Done” column to the Actions tab. When you put an “x” in that column, it’s another way to filter out actions you don’t need to see anymore all the time but maybe you want to keep them for easy reference as the project continues.
  • If you wanted to get really sophisticated, you could add a “Ready to act?” column and define a formula. If the action doesn’t have a Defer date at all, or if its Defer date has already passed, and it doesn’t have a Required action, then it’s ready to do.
  • Combining the above two ideas, you could get really sophisticated with some further formula tricks: an item whose Required action is marked Done would then become Ready itself (once any applicable Defer date had come).
  • Big projects could be broken out into their own tabs.
  • Big contexts could be broken out into their own tabs, gathering next items from project tabs by looking at the Context columns of each.

And so on. The takeaway here is, if you can’t afford some dedicated to-do software with contexts and dependencies and workflows … build your own to your own level of sophistication.

Incidentally, there are plenty of people who’ve made sophisticated spreadsheet templates and setups for the GTD methodology. A little searching will find a number of them. I just wanted to make a very simple example which uses only the most basic spreadsheet functionality for the beginner. Hopefully you’ve found it useful.

Next post: In what will likely be the finale of our GTD series, we will wrap up with a brief summary of the ideas we’ve learned along the way.