My quest to select a good Antivirus for the year 2008
Magnitude 5.0 earthquake hits Bangladesh

Getting Things Done with TodoList

When I first learned about the methodology of Getting Things Done (commonly known as GTD) by David Allen, I did not give it much thought as it seemed too simple a technique to revolutionize my life. I discarded the the process initially. A few days later I realized that it was the only process that was simple enough to work. Following the process is hard since it requires that you follow a set of simple rules without exception. There are over millions of blog entries and articles referring to GTD, so I am not going describe it. Search web for “Getting things done” and you will find enough information.


GTD Softwares? 

There are over 100 web based GTD tool, also more than 100 desktop based GTD tools as well. I tried several and some were wonderful in different aspects. But none were fulfilling or perfect. Let me describe a few of them. First of all I refuse to accept any web solutions ( there are hundreds of them out there) as it requires you to be online 100% time which does not work for me. Lets review the software’s that I tried

Thinking Rock 2

ThinkingRock2 Thinking Rock is a Java based GTD software that in my mind is the reference implementation of David Allen’s concept of GTD. It also follows the full process. The UI is acceptable (as sleek as possible for a Java application, which is not so good). It has supports for different types of context like place based context, time available context, energy available context. Also another great thing about Thinking Rock is that it makes you write the stuff down first and process later on. Unfortunately I could not bear to live with the Java UI and font. Also keyboard shortcuts were adequate but not so friendly. It also lets you defer tasks or delegate a task to someone as well. I tried to use this reference implementation for several days but a few days later I found the UI to be inadequate and hard to find stuff. The screen where the user filters the actions after a few days proved hard to read and find relevant information because of poor Java widgets. So I stopped using this software. But I would suggest you try it as it is still on my top 3 list of GTD software. 

My Life Organized

My Life organized is another great software, unfortunately it is not freeware. There is a version for pocket PC as well, which is great news. But I believe the price is too high. After trying a few days I found it to be missing something. I could not exactly point to what it is missing, but was missing something for sure. The thing I liked most was the time of the day allocation to a context. You can just create a context called office and visually draw time from 9 AM to 5 PM and then remove the lunch time for different weekdays. Also the tree structure was excellent. If you have the capability to buy online, it is a good software.

What’s next

What’s next is an excellent software written in ruby on rails, I used to think ruby to be full of hype ( I still do ….a little somehow) . I actually hate functional programming languages, they don’t work in software projects that is supposed to be more than 3 months long and generally screws up the architectural beauty. Probably its more of those Ajax, Linq, Javascript stuff which will phase off in a few years. Anyway … I am drifting further away from the real topic. What’s next is a Great software I must say, it runs on Ruby on Rails server which you will have to run on your PC and connect to it via a browser. The UI is awesome, the keyboard shortcuts are marvelous. I must say, it almost won my choice of the GTD software. But it is still in beta and has only a few features of the GTD process.

Open source TodoList by dan g from Abstract Spoon

Now with all other software described, I must say TodoList is not a software specially made for GTD but it does it better than the specialist softwares. TodoList right now running version 5.5.7. The software is developed by Dan G ( He wrote this and posted in my once favorite website in 2003. This is one of the best resource ever (free tool) on code project with 2 million page view and still a rating of 4.77 out of 5. This software is written in VC++ and is open source with The Creative Commons Attribution-ShareAlike 2.5 License. It can serve as a simple todo list, hierarchical todo list or even as a replacement for Microsoft Project ( watch out project team). The developer even wrote the help file as a todo list. See screenshot  down below to see the application. The software is so flexible it can work as a todo list, a project management software, a mind mapping software, a gtd software, a hierarchical document etc.  You can download todolist, both source and binaries from this CodeProject atricle. By the way, once great site CodeProject has lost its article quality and does not attract me (probably others as well) there anymore.


  Screenshot of TodoList 

Getting Ready convert TodoList into A GTD tool


Define contexts  

First I needed to define the contexts that I work with. I have defined my context based on my lifestyle( different people will have different contexts based on their lifestyle). Let me discuss a few of them  Home is for the things that I must do at home, Work is for any official work, Office is for things to do in office, Meeting is for my meeting time from 6PM to 9PM. So if there is a work that can do only in office, I tag it with category office, if it is some work that I might do in office or do at home I tag it both office and work. Because of that I can find it in my list when I filter it with work and I am working from home.

  First Step is to save a TodoList and mark different task as different categories. Watch the bottom properties portion of TodoList and you will find the category drop down. Just add the categories that want to associate with a task. Look at the image below. 



You can assign multiple categories to a single task by checking the list. So the task can be valid for different contexts. Also it is very simple to add news to different elements as well. As you can see the pop up combo also has a textarea to write onto. You can just add new categories there by typing in … if you want to. You can also edit the list of categories manually if you want to my editing the todo list file. As you type in a category for the first time the software learns the category and offers it in future. In case you have mistakenly added a category and want to remove it. Just open the file and find the xml tag marked CATEGORY and edit it using notepad ( assuming you know what xml files are and do not screw up the file). See an example here :


CATEGORY4="Outside" CATEGORY5="Personal" CATEGORY6="Relaxed" 
CATEGORY7="Work" CATEGORY0="Communicating"/>

If I wanted to removed the category ‘Relaxed’, then I would just remove the attribute CATEGORY6="Relaxed" and make CATEGORY7="Work" to CATEGORY6="Work" and save the todo file.

Defining Task Status


As you can see from the image that you can mark a task status form the status dropdown and unlike category a task may have only one status. I have selected ‘Active’ as the task the need to be done ASAP, ‘Deferred’ as the task that need to looked at later (remember to always select a due date for deferred task), ‘Delegated’ as  the task that I have delegated somehow ( remember to type in the person’s name in the Allocated To field), ‘Draft’ for task that has been entered but not categorized or reviewed, ‘Inactive’ for all items that is not a must do now, but I can review later.

Now whenever I enter a new task I want it to start in ‘Draft’ status. Go to Tools>Preferences screen and find “Default Task Attributes” and set the default value there. See image below.


Columns to view

By default there are many columns visible, but I thought of them to be a distraction and have the columns that only I wanted to see. Right click on the column header of the task list the image below :


Click ‘Select columns’ and you will see the column selection screen. See the fields that I have selected to see on image below …


Filtering by Tasks

Since I believe that you can enter tasks by yourselves, it is time to introduce filtering. On top if the filter bar for the application. You can select and filer the items you want to see.


Now if I wanted to see the draft tasks and process them, I would filter by ‘Draft’. If I was at home and in a relaxed mode, I would filter by ‘Active’ status and ‘Home’ and ‘Relaxed’ category with ‘All categories must match’ option selected. So this way I can only see the things that I want to see.

timeFilter  I can even filter by the tasks that are incomplete, or tasks that are due today, or tasks that are due tomorrow, or tasks due by the end of this weeks etc. See the image on left side.

Hierarchical View & Other Features

Unlike David Allens simple list based on context, I love to have hierarchy among my tasks, so I love this tool. It lets me do more and see more than a one hierarchy list. The software lets me store notes against each task and they can be either simple text or rich text. I track progress with % done field. Map it to some external software with external id, add dependency etc.

Awesome Keyboard Shortcuts

This is one of the biggest reason I have selected this software. It has awesome natural keyboard shortcuts. F2 edits a task, Ctrl+N creates new task, Ctrl+Right makes the task a child of task above, Ctrl+Left moves it a one level up. I never have to leave my keyboard and touch the mouse or touchpad. I am a keyboard person, the less I have to touch the mouse the better the usability is, to me.

Other Capabilities

The other features that I loved about this software are as follows

1. I can encrypt the list with a password  

2. It can import tasks from Freemind, GanttProject, My Life Organized, outlined text file or another todo list

3. It can also export to html, Freemind, GanttProject, plain text file, Spreadsheet or and iCalendar file. You can select columns or the tasks that you want to export.  

4. It has plugin support

calendar You can also download this calendar plugin from codeproject and have a nice calendar like the picture below. I had to black ink over some entries for privacy reasons. But this gives you an overall look of the timeline. Also you may even write a plugin to sync with outlook since the file is only xml.

Have fun!

By the way ... if you want to download the settings that I used and the template you can find it here:

Download Just download and import the settings file, then use the todolist file.



Fantastic post.

Always searching for the ideal GTD app, it's a surprise that a tool of this type is in Codeproject site.

It looks very powerful, well supported and free :).

Anyway, don't you like Codeproject?. Are there better options?

Greetings from Spain

Shafqat Ahmed

Greetings. CodeProject used to have quality articles before, for last one year I did not get that many good articles there. I now rely on to find good .NET articles and to fine other general development related stuff.

Kevin Crenshaw - Productivity Coach

Thanks for the tips on setting up ToDoList for GTD. You helped us correct a mistake in our GTD Software Comparison Table (link below), and we've linked to your post in our software discussion area.

Kevin Crenshaw
Priacta, Inc.


Here's a great web based task management app -

Edwin Yip (Developer of Mind Mapping Software MindVisualizer)

Wow! It's a nice program. Both it and your post here inspired me on how to improve MindVisualizer :)


I've been using Tracks( It is a ROR app that is very slick. You can get a nice easy installer for it at

Lutfar Rahman Nirjhar

Great article. :)


Thanks, very nice list.

I am using for a few weeks, am I pretty happy with it. It's very simple to use, although quite basic at this moment.


I've been using TDL for about 2 years. I've read about GTD as well and have thought about implementing it. Your guide is a great start to it!

What do you think of the new TDL, version 5.6? I don't like the changes made to filtering and sorting. It has severely cramped how I use TDL. I haven't really opened any of my tasklists since it auto-updated to 5.6... and now I can't find a copy of 5.5.X to revert to.

Like to know your thoughts on 5.6 ... thanks!

Shafqat Ahmed

Thanks for your comments. Yes Mike, I did not upgrade to 5.6 too. I like 5.5.7 better and I am using that. I have a copy of 5.5.7 that I have uploded somewhere. I have emailed you the link to that.


Thanks for your contribution, I've added a link to the wiki:


Shafqat Ahmed

Thanks a lot for the wonderful software and support.


If you like tweaking programs to make them GTD compatible you should definitely check out ( It is free, open-source, multiplatform and will sync with the iPhone (don't know if this is needed for you as a .net guy :-))
Let me know what you think! Cheers, Tom

Geordie Keitt

Thanks for this post. I was looking high and low for exactly this tool, and it is great. Like you I don't like the filtering in a flat list view, but I don't have access to the earlier version, and I'd like to try it out. Can you send me a link to the 5.5 build? Much appreciated.


Thanks very much. That's exactly what I was looking for. I've just used ThinkingRock for 2 weeks whith exactly the same feelings... Todolist seems to be almost perfect : same feelings again, I don't like the filtering flat view. I've tried to find the graal : the 5.5.7 version whithout success. Somebody could help me?
Maybe the way of sorting will be an option in a future version...


Are you sure that ruby is functional language?


Thanks for the article, very informative. You may be interested to know that you can also delete categories (and the like) by pressing Ctrl-Del while the mouse pointer is over the category in the drop-down list - much easier than editing the file, even for keyboard addicts!


Shafqat- thanks for this blog. We have the same story, I also discovered GTD. Outlook Track-It is a great program too...small plugin for outlook that flags emails for a followup reminder. It's been nice.


"In case you have mistakenly added a category and want to remove it. Just open the file and find the xml tag marked CATEGORY and edit it using notepad" - in fact there's no need to do this, you can simply select category in the dropdown list and press ctrl-delete. (Should the deleted entry be assigned to any task then it will re-appear of course).

5.7.2 is an excellent little tool.


Bacarli - Outlook Track-It is the best for GTD, I agree. A lot of other programs are huge, but this is a small followup toolbar addon. I hope more things come out like Track-It. is where you can get it, if you want it.


Another application very similar to "ToDoList" is TaskCoach ( You do not have many capabilities of import / export, but on the other hand, is a multiplatform (Windows, Mac OS X, linux)


If I insert Estimated time and the Start and Due dates for multiple tasks that may overlap, is there anything to warn me when I have committed to multiple tasks that the estimated hours have exceeded a limit of hours in a day, week, month?

Ruby on Rails

I really like interactive comment's so life blog


Thanks for this helpful blog!


Thanks for your article. I'm on the TDL learning curve now...

How do I select an entry from a drop-down list without using the mouse? ALT+DownArrow opens the list, but I could not figure out how so select one of the entries. TIA.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.


Post a comment

Comments are moderated, and will not appear until the author has approved them.

Your Information

(Name and email address are required. Email address will not be displayed with the comment.)