Summary:Using the GTD system with PmWiki
Prerequisites:PmWiki version 2.1.27

Questions answered by this recipe

How can I use PmWiki for work-life-time management?


Using the GTD system with PmWiki.

The recipe one way of using David Allen's Getting Things Done (GTD) system on PmWiki. More about GTD can be found by searching for it on the web, or at .

This page is about the mechanics of doing it on PmWiki, not the philosophy behind it; as with any system, the mechanics are only half the battle. There are several sites about it on the web, including . (I was searching for wikis for my Palm (PmWiki just won't fit) and found that one.)

Fair warning, though: This system lacks the portability and speed that a proper PIM requires, unless you carry your laptop around and leave it turned on.

In short, and translated to PmWiki:

Groups are:

  • Homepage.
  • Contexts. More details later.
  • Projects.
  • Calendar.
  • Due. aka Tickler. Possibly combined with Calendar.
  • Reference, Archives, all the other usual stuff.

The system makes extensive use of (:pagelist link= :)

All the notes for a project go on a page in Projects. Project is very broad. It can be an accumulation of little things, or a big project. The key thing is that everything you need to do gets into the wiki, no matter how big or small.

Each project gets at least one Next Action (NA). To be an NA, the action must be doable. Getting the car serviced is a project, telephoning the garage is an action. Reading the odometer so you don't feel like an idiot when the service rep asks for it is the NA. Every project gets an NA, otherwise you'll never be reminded to work on it.

"Wait" is a valid NA. Often these NAs will also have a link, so you don't wait too long.

Some people have an additional group called Someday/Maybe, to collect things you don't want to call projects but may want to work on.

Each NA gets a Context, which is where you are when you can do it. Assign contexts by adding a link beside the NA. So, assuming you have the odometer reading, your NA is: Call garage. [[Context.Phone]].

Only assign contexts to NAs; no sense reminding yourself to do step two if you haven't done step one.

The main page has (:pagelist link=Context.*:). Now you have a single page showing all the things you have to do, sorted by where you can do them, and without all the actions that you can't do just yet. And you don't have to manually maintain a list of phone calls to make.

Beautiful, isn't it? (Yep, the Context group is a lot like the Category group.)

Calendar. If you need one. PmCalendar works. Or just a page listing appointments. I'd (:include:) the current day (week?) on the site homepage, I'm sure there's a way to do it.

Due. This one is a bit trickier. Decide up front how finely you want to divide things. For each action with a deadline, add a link to Due.Date (or Due.Month, or Due.Hour). Then on Due.HomePage (or Main.HomePage) put (:pagelist link=Due.* order=#title :)

As with Calendar, I'm sure there's a way to include the next week's worth of Due on the Main.HomePage.

I wonder if you can add (:pagelist link=Due.ThisDay:) to each entry in the display-by-month?

You might not want to bother distinguishing between Due and Calendar. Depending on your schedule, you might not even need a proper month view. Just use (:pagelist link=Due.* order=#title :).

No more flipping back and forth between calendar and project page while planning, just stay on the project page and add a link to Due.Date. Then go to Due.HomePage to see the schedule for all your projects combined.

Note: The GTD system does not assign times to things unless absolutely necessary. It uses Contexts, which are more flexible. It reminds you to make the call while the computer's down but your phone's still working, even if you hadn't planned on doing it for another few days.

References, Archives, Diary -- all the usual suspects. Wikis are searchable. All the pagelist commands above can include or exclude these groups.

You can probably do most of this by searching for keywords. I like using backlinks because it's more forgiving of typos. If you misspell [[C.Telephone]], you'll still see it in the list of all pages linking to members of C.*, but if you'll never find it if you search for "Telephone".


Release Notes

If the recipe has multiple releases, then release notes can be placed here. Note that it's often easier for people to work with "release dates" instead of "version numbers".

See Also

  • GTD PHP project (requires MySQL) still in beta, but very usable: GTD-PHP (Plug Warning: Crisses[XES] is a contributor on the project) - XES March 06, 2007, at 04:33 PM



See Discussion at GettingThingsDone-Talk?

User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.