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

If you have a question, put $5 at patreon and message me on xah discord.
Or support me by Buy Xah Emacs Tutorial

Emacs Tutorial

Emacs Init

Emacs Keys


ELisp Examples

ELisp Write Major Mode

Emacs Tutorial

Quick Start

Manage Windows



Find Replace




Rectangle Edit

Line Wrap


View Special File

Working with Brackets

Org Mode


Emacs Efficiency