/org-gtd.el

A package for using GTD with org-mode

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

NOTICE

This is org-gtd 3.0.0.

Check documentation in doc/ (and the info manual within emacs itself) if you’re upgrading. Please report all defects as Github issues.

Use existing tags if you’d rather stick to a pre-3.0 version.

Sponsorship

I’ve put many hours of reading, research, and coding, to put this together. If it delivers value to you, helps you manage your life, please consider sponsoring (Github sponsors or Patreon) and allowing me to continue putting work into this package and other projects.

Org GTD

This package tries to replicate as closely as possible the GTD workflow. This package assumes familiarity with GTD.

This package provides a system that allows you to capture incoming things into an inbox, then process the inbox and categorize each item based on the GTD categories. It leverages org-agenda to show today’s items as well as the NEXT items. It also has a simple project management system, which currently assumes all tasks in a project are sequential.

For a comprehensive instruction manual, see the documentation:

  • Either the info file (within emacs, C-h i m org gtd RET)
  • or in the doc/ directory of the repository, there is a .org file you can peruse.

The documentation also details how to upgrade from one version to another.

Whirlwind tour of the package

What follows is an incomplete description of the package. It is useful if you just want to take it for a test run. Read the full documentation for the full set of features and customizability.

GTD Meta

Modes:

org-gtd-mode
If you want to be able to refresh the org-agenda views and have all the org-gtd files included in your org-agenda-files, you’ll need this to be enabled.

Customizable variables:

org-gtd-directory
Directory where org-gtd will look for its files
org-gtd-areas-of-focus
List of strings representing Horizon 3. See Steps 4 and 6 for further details.

GTD Step 1/6 : Capture

Functions:

org-gtd-capture
A wrapper around org-capture. Use it to capture items into the GTD inbox. Will create the inbox file if it does not exist.

Customizable variables:

org-gtd-capture-templates
Defines behavior for org-gtd-capture.

GTD Step 2/6 : Process

Functions:

org-gtd-process-inbox
Start a loop around step 3 (Clarify) for every item in the inbox.

GTD Step 3/6 : Clarify

Functions:

org-gtd-clarify-item
Call this from any org heading to clarify this item as a one-off and organize it into org-gtd.
org-gtd-clarify-agenda-item
Call this from any item in the agenda to clarify this item and organize it into org-gtd.
org-gtd-clarify-switch-to-buffer
Call this to switch back to any existing clarify buffer. Use this instead of switching back through the normal flow, as this manages some state.

Keymaps:

org-gtd-clarify-map
Sparse keymap for minor mode used in the clarify buffer.

GTD Step 4/6 : Organize

Functions:

org-gtd-organize
Pop up a menu asking how to organize (e.g. single action, appointment, etc.) the item at point. Great function to bind on org-gtd-clarify-map.

Hooks:

org-gtd-organize-hooks
Series of functions that get called to decorate each item (e.g. org tags, org effort, etc.). Add org-gtd-set-area-of-focus to this one to set areas of focus on each item.

GTD Step 5/6 : Engage daily

Functions:

org-gtd-engage
Your daily view.
org-gtd-engage-grouped-by-context
All NEXT actions, grouped by tags beginning with @. This may not work if you remove org-set-tags-command from org-gtd-organize-hooks.

GTD Step 6/6 : Review

Functions:

org-gtd-oops
Show all the missed appointments. Oops!
org-gtd-review-area-of-focus
Show an agenda view designed for one of your areas of focus.
org-gtd-review-stuck-*
The * here is any of the action types; you can find any of the ones that have fallen through the cracks.

Directory tree

dev
used as a jail environment. Copy somewhere else and spin up with $ HOME="dev/" emacs.
doc
where the documentation lives
test
where the tests are

Community

If you want help, you can open an issue right on Github.

You’re also welcome to join my discord server for all conversations related to org-gtd in particular and GTD in general. Many of the ideas for org-gtd came out of my reading the GTD book, and then reading some sections multiple times, but I am in no way an expert. Defining the GTD domain, which is to say, getting to clear nomenclature with clear actions, is still a work in progress.

Animated demos of org-gtd

Projects

doc/project.gif