Emacs: Using Org Mode for Todo

By Xah Lee. Date: . Last updated: .

This pages is a tutorial on using emacs org-mode as todo list.

todo list crossout nothing

If you've never used org-mode before, see: Emacs: Outline, org-mode

TODO Heading

To mark a heading as todo item, start it with “TODO”.

* TODO call mom for birthday
* DONE finish coding absca
Ctrl+c Ctrl+t (org-todo)
change heading among 3 states: {TODO, DONE, normal}. It will add the word “TODO” or “DONE” in the heading.

Insert Date Time

Alt+x org-time-stampCtrl+c .
Insert a date like this: <2010-07-31 Sat>.
Ctrl+u Ctrl+c .
Insert datetime, like this: <2012-02-09 Thu 03:32>. Move cursor into a date, then press Shift+ to increase any {year, month, day, hour}. Press Shift+ to decrease.


Each heading may have keywords, called “tags”.

For example: work, family, urgent, coding.

The syntax for tag is any word between colon, like this: :something: or :this:that:. They are placed at end of the line. Like this:

* call mom for bday. :family:...
* finish writing the org-mode tutorial. :emacs:work:

Tag name cannot have space, nor hyphen.

Tags are inherited from parent nodes, in the sense that when you search for a tag, a heading with that tag will show but also all its children, even if the children's headings do not contain that tag.

Alt+x org-set-tags-commandCtrl+c Ctrl+q
Insert a tag. You can also just type the tag yourself.

Show Headings by Tag

Alt+x org-match-sparse-treeCtrl+c \
Show only headings of a given tag.

Org Mode

ErgoEmacs mascot-s276x226
Buy Xah Emacs Tutorial

Emacs Tutorial

Quick Start


Split Window



Find Replace




Rectangle Edit

Line Wrap


View Special File

Editing Brackets

Org Mode


Emacs Efficiency