This is a guide to implementing Getting Things Done (GTD) using Simpletask by Mark Janssen.
Simpletask uses the todo.txt syntax, but has sufficient differences and quirks of its own to be worth describing in detail---at least, that's the story I'm going with. I actually began this guide as an exploration of my own trusted system. Personal workflows are by definition eccentric; I have included only what seems to me to be broadly useful.
This implementation of GTD covers the "standard" classifications: next actions by context, projects, somedays, agendas by person and meeting, etc. In a departure from strict GTD, each entry in these lists is also tagged with an area of focus, interest or responsibility. I find that the ability to slice the system by this extra dimension is worth the additional complexity at the processing and organizing stages. Limitations, issues and workarounds are discussed at the end.
Before we begin, some words of wisdom:
Your system has to be easy enough (and complete enough) that you will be motivated to work it even when you have the flu. The system is only as good as what you're willing to maintain when you don't feel like it. ---David Allen, "Let the Lists Fall Where They May"
I refer to every line in your todo.txt
as an "entry" to differentiate them from tasks. Simpletask takes a broader view of what constitutes a todo.txt
file.
Entries may belong to one list (@something
) and they may have one or more tags (+something
) assigned to them. They may also utilize due dates (due:2014-04-2
) thresholds (t:2014-04-3
), recurrance (rec:1w
) and priorities ((A)
).
Simpletasks collects all @somethings
in your entries and calls them lists.
Lists hold all entries on the first four Horizons of Focus: from Runway to 30,000 feet, or Next Actions to Goals & Objectives. If you find this format appropriate, you could feasibly include items from the remaining two altitudes: Vision, Purpose and Principles.
Lists are mutually exclusive. If an entry can be placed in more than one list, you need to clarify either the entry or your lists.
The inbox consists of all entries that have not been assigned to a list. They are typically not tagged, either. Although I will often revise entries before tagging and assigning them to another list, I generally preserve the original creation date.
Do not create a list called @Inbox
; it will just slow you down at the collection phase. If you want to view just your Inbox, filter by -
in the left drawer.
Next actions are filed in lists that begin with an at-sign (@), one for each context. The at sign is an established shorthand that reinforces the idea that the context (place or tool) is required for the action to be performed. More importantly, the at-sign makes these lists sort above the others, so you can find them more quickly.
The standard GTD contexts are:
@@agendas
@@anywhere
@@calls
@@computer
@@errands
@@home
@@office
Next actions are tagged with an area tag and, for entries relating to communication, an agenda tag (either a person or meeting).
Agendas may be listed under @@agendas
(for face-to-face and impromptu communications) or required context (@@calls
, @@computer
, etc.) but not both.
A list called @Projects
with an entry for every multi-step outcome you are committed to completing within the next year. Each project entry is tagged with an area and, if applicable, an agenda.
Example: Clean out the garage +household @Projects
A list called @Someday
with an entry for every project (multi-step outcome) or single action you are incubating -- i.e., that would like to periodically review but are not committed to moving on, yet. Each someday entry is tagged with an area and, if applicable, an agenda, allowing you to view potential commitments along with your current ones.
Example: Learn to play the piano +creativity @Someday
You could feasibly have multiple Someday/Maybe lists (@Someday-Soon
or @Someday-Never
, etc.) if you need the additional granularity.
A list called @Tickler
contains all tickled items which are not actions. Tickled items are all entries with a threshold date; if their threshold has not passed, they will also have a priority of (B)
. Tickled actions are not included in this list; they are placed under the appropriate context.
A list called @WaitingFor
with an entry for each delegated action, tagged with both area and agenda.
Example: +JSmith re: conference +consortium @WaitingFor
A list called @\_Areas
with entries identifying all your areas of focus, interest or responsibility. There is overlap between this horizon and the area tags (described below), but a 1-to-1 correspondence is not obligatory. How you set up this horizon depends on how you think about your life and how it makes sense to carve up your commitments.
Example entries:
Family +family
@_AreasHealth, Vitality & Well-Being +health @\_Areas
Hobbies +blog +painting +rpg @\_Areas
Note: the underscore in front of this list is merely to have it sort to the bottom of your Lists.
A list called @\_Goals
with an entry for every outcome you are committed to completing within the next 2-5 years, tagged with an area and, if applicable, an agenda. Goals are treated basically as long-term projects.
Example: Attain some promotion +career @\_Goals
Simpletasks collects all +somethings
in your entries and calls them tags.
Tags specify areas of focus, interest or responsibility, as well as agendas for people or meetings.
All lowercase tags refer to areas of focus, interest or responsibility. These generally relate to the 20,000 feet horizon, but will probably be more granular. There's no rule here; you will need as many areas as you need. A word of warning, however: avoid making area tags too specific (so that they basically map to your projects). Most area tags will be somewhere between projects and areas (or approximately 25,000 feet :)
Examples:
+gtd
+blog
+health
+household
To make sure that these are always available, define them in your @_Areas
entries or add them to a hidden entry (see below).
All tags that begin with a capital letter refer to agendas -- that is, to people or meetings.
Tag Examples:
+Mom
+JSmith
+StaffMeeting
Place agenda entries in the appropriate context list and they tag them with an area.
Examples:
Tell +Bob about the party @@agendas +fun
Email +DevTeam re: new client @@online +work
People and meetings you refer to often can be added to a hidden entry (see below) for easy access.
The left drawer allows you to view your system by any combination of horizon, area and agenda. This is a rough sketch of how your left drawer should look:
- Lists
- Inbox
- Contexts
- Higher Altitudes
- Tags
- Agendas
- Areas
The most frequently used ways to slice your system -- contexts and areas -- are the quickest to reach, being at at the top and bottom, respectively. Less used stuff is in the middle. (YMMV.)
You can choose multiple lists and tags to slice your system in various ways. For example, you can see all the @@calls
you have to make for +work
, the @Projects
relating to your +family
or all the +fun
things you might do @Someday
.
Hidden Entries
These serve as placeholders to preserve your lists and tags when they do not contain any items.
Examples:
h:1 Contexts: @@agendas, @@anywhere, @@calls, @@computer, @@errands, @@home, @@office
h:1 Other Lists: @Projects, @Someday, @Tickler, @WaitingFor, @_Areas, @_Goals
h:1 Contacts: +Mom, +JSmith, etc.
Per GTD, I only use due dates for the "hard landscape", such as appointments, rather than estimations of when I'd like to do something. I also add them to projects to indicate deadlines (after which completion becomes moot).
For time-sensitive actions I prefix generally prefix times like so: [10:15] Taskname
That said, I find Simpletask's calendar integration to be really clunky, and I have begun adding items straight to the calendar, which I find problematic.
Threshold dates allow you to incubate actions or reminders (tickled entries). Add the (B)
priority to all newly created tickled entries. Tickled actions are filed under the appropriate context. For reminders, you can use the @Tickler
list.
The priority is remove when the entry has been "tickled" (the threshold has been passed).
GTD does not have a priority system. I use the todo.txt
priority syntax to help me filter two kinds of entries:
-
Entries with
(A)
priority are "hot": they are actions that I plan (not would like) to do today or, at most, tomorrow. I update this list daily. -
Entries with
(B)
priority are "tickled": all actions or reminders with a threshold date have this priority until the threshold is passed.
Projects and higher altitudes never have priorities.
Saved filters allow you to bring up or review aspects of your GTD system. The ones I've found most useful are:
The Hotlist shows me anything with a priority. In this way I see all my "hot" actions for today or tomorrow, as well as all "tickled" entries (incubated actions with a threshold that have become relevant).
The hotlist not a GTD concept, but in interviews David Allen has accepted the it as a potentially useful, as long as it does not become a system unto itself. It also allows an incubation system with date-specific triggers.
- Hide completed tasks and tasks with threshold date in future.
- Show all tasks (including complete and tasks with threshold in the future).
- Sort with Completed on top.
- Simpletask provides an option to automatically generate a creation date for new tasks. Use it.
The following are known issues with the GTD implementation in this guide.
-
Inbox. I enter data straight into the
todo.txt
with Simpletask or a text editor. I haven't experimented with using emails or other input, which is why I don't discuss this at all. There are some ifttt recipes, but I haven't tried any of them. -
Calendar. You do not need a calendar with this system -- at least insofar as your GTD system is concerned. Integration with an online calendar would be useful, but that is a feature that would need to be provided by Simpletask, or via something that can read the text file and populate the calendar.
-
Reference System. This is outside the scope of a list maker such as Simpletask.
-
Project Support. A subset of the Reference System that is related your active actions, projects, etc. There is no inherent
I include these as "notes" (see above). For example: 2014-01-07 Complete Something or Other // Files in Dropbox > Projects > SomethingOrOther
.
-
Read/Review.
-
"Must read" items go into the main system at the appropriate context -- since I am committed to reading or reviewing them. This works very well for items that you can keep on your Android device.
Example:
Read email from bank @@anywhere +finances
. -
"Nice to read" things do not go into the main system. You might want to add some of these to your classify
@Someday
list, if you would like to review them weekly.
-
Since I don't care much if anything falls through the cracks, they are housed in various systems: books and movies are in text files (in a custom format, but I might convert these to the todo.txt
format as well), online articles are in a read-it-later service, etc.
-
Performance. Simpletask becomes quite slow if you are viewing many entries at once (over 200 on my phone). You might want to experiment with breaking off the Someday/Maybe entries into their own todo.
That said, my
todo.txt
is over 400 lines and, while not snappy, is still usable.
- 0.1.0 - Intial public release
Some comments:
I like the term entries. Will use that as well :)
Tickler
Why don't you use threshold dates for tickling? If the date is in the future, the item will come back to the visible entries if the threshold date has passed.
Also I find using prios very clunky. The
todo.txt
prio implementation also doesn't have prios in completed tasks (simpletask does support this) so completing a task with prio will lose it.Calendar
In newer versions there is proper calendar integration which automatically adds all tasks with due date to the calendar, is this still clunky? I agree calendared items shouldn't really be on your lists though.
Performance
I did look quite deeply in improving performance. For me performance is acceptable with thousands of tasks. What type of phone do you have?