Below a description of how one can use zim to implement Getting
Things Done. This is a direct result of the thread about the Getting
Things Gnome application earlier. After that discussion I actually
went to get a copy of the GTD book and did some thinking about how
to structure my task lists. ( Not that this actually improved the schedule
for releasing the python port of zim ... but I'm making good progress now
and will make an announcement of current status soonish ... but I
This way of implementing GTD leaves a lot of freedom to the user,
maybe to much freedom. If you like a task manager app to enforce
some discipline this may not be for you. Still it may be useful.
Please feedback any comments to improve content (I know style is
still lacking - of course help rewriting is also welcome). My intention
is to include this in the manual as an example on how you can use
All the way at the bottom I give some ideas for improving zim to
allow better task management in the notebook. But keep in mind when
that zim is not intended to be a full fledged task manager.
====== GTD ======
The GTD methodology basically calls for maintaining lists of all loose
ends that need be taken care of. The idea is that when all things that
need to be done are recorded on a list it will give you peace because
you do not have to keep them in your mind all the time. However it is
essential that you can access the lists in and sort through them so
you always know what the next thing is that you can do given the time
and tools available at a certain moment.
For those not familiar with the book either read it or check any of
the numerous websites discussing it. Would like to include the
general flowchart from the book here but this is of course
copyrighted. But go check google image search for any of numerous
==== How I implement GTD in Zim ====
First create a new notebook to be used specific as a task tracker.
Create namespaces for the various categories. I use "Projects",
"SomeDay" and "Archive" for current, incubating and dormant projects.
There are two special pages, one called "INBOX" which is a generic
dump for incoming stuff and one called "Chores" (which is in the
projects namespace), this is a generic list of tasks that do not
belong to any particular project.
I also have several pages living in the top level of the notebook with
various lists. These do not contain tasks. For e.g. there is a list
there with books I have on loan or have loaned out to other people and
there is a list birthday present ideas. If you have many of these
lists consider putting them in a "Lists" namespace. Important is that
a list does not contain tasks.
Now for more complex sets of tasks, or projects each has it's own page
below the "Projects" namespace. It can have any number of children
with information that relates to this particular project and can have
tasks all over the place. Some items start out as a project from the
start, others first live as a bunch of related tasks on the "Chores"
page until they take up to much room and get moved out to their own
To define individual tasks I use checkboxes. This forces the main
description to be a single line, which is good to make sure each task
clearly states a physical action. Of course just below the checkbox
their can be a whole paragraph or even many sub-pages with all the
details. If the description sounds more like a topic than like an
action most likely it should be divided in smaller items that are
These task line items can have tags like "@work", "@home" etc. which
will allow you to filter them more easily in the task overview. Also
you can use the tag "@waiting" for tasks that you need to check on but
are now waiting on someone else to take action.
Also task line items can have a due date, which will show up in the
task list. But I do not use this - timing changes all the time anyway.
Priority can still be assigned using "!", but don't over-use it, prios
are shifting all the time anyway as well. Only use it for things that
need to be done ASAP to feel comfortable again.
Now to get an overview of all the tasks that can be done I open the
TODOList plugin and check the "include all open checkboxes" option.
This will show a flat list of the tasks defined throughout the
notebook and sorts by priority. One can filter on keywords or tags.
Projects that are still under incubation, so I collect ideas, but no
action yet, live under the "SomeDay" namespace. These do not contain
any tasks - as soon as they do they should move to the "Projects"
namespace. Projects that are finished, abandoned or on hold should go
under the "Archive" namespace. These should not contain any open tasks
as well. If there are any open tasks when I move a project there I
check them off with the [x] checkbox to show they will not be done.
As an extension I also use the Calendar plugin to have a journal page
for each day with notes from meetings etc. Action items from meetings
may live there, but this usage is a bit at odds with the use of the
INBOX page. At least I can reference discussion notes of a certain
date from a project page etc.
=== Summary ===
• Each action belongs to an open project - "Chores" is the collection
bucket for small tasks
• Open projects go in the "Projects" namespace
• Open projects should have a clearly defined goal which can be
evaluated and stamped "finished" at a certain point in time
• Otherwise they go in either "SomeDay" or "Archive"
• Each action should have a checkbox - possible follow up actions can
have normal bullets if they are not actionable yet
• Tags on action are used to generate lists
• Some tickler lists can have their own pages, like "Loans"
=== Possible improvement for the TODOList plugin ===
1. Rename to TaskList plugin
2. Add side pane in the TODO list showing tags -> patch committed,
available from launchpad
3a. Distinguise a tree view, showing hierarchy of checkbox lists and
page, and a list view only showing outer branches which represent
3b. Configure a special tag for items that are waiting (like @waiting)
and use this to filter actionable items
4. Make items directly editable from the TODOList dialog
Mailing list: https://launchpad.net/~zim-wiki
Post to : email@example.com
Unsubscribe : https://launchpad.net/~zim-wiki
More help : https://help.launchpad.net/ListHelp