Official website for Linux User & Developer

Make an open source to-do list with Emacs

by Joey Bernard

Harness the power of Emacs to organise your work, as well as some options to track your to-do list when you’re on the go

Step 10

Estimating effort

Part of planning is estimating how long each of your tasks will take. You can set this by setting the effort property with the keyboard shortcut ‘C-c C-x e’. This effort can be used in several different functions, including ones you may write yourself.

Step 11

Adding files to your agenda

Org-mode has the concept of an agenda. Agenda functions use files include in the agenda list to calculate the jobs for a given time. You can add the current open org file to the list with the shortcut ‘C-c [’. Or you can manually add the files by editing the values stored in the variable ‘org-
agenda-files’ in your ‘.emacs’ file.

Step 12

Looking at your agenda

There are several built-in agenda functions available. The default agenda view is compiled using the shortcut ‘C-c a a’. This will give you a list for the week. If you want a list of all of your to-dos, use ‘C-c a t’. This agenda is interactive, allowing you to edit the tasks involved. You can also create your own agenda views, tailored to your workflow.

Step 13

Planning your day

Now that you are able to set deadlines, schedule tasks and view your agendas, you can plan out your day’s work and actually get some things done now. This is the real reason for all task management systems.

Step 14


This will get you working on tasks on your desktop system, but what if you want to go mobile? There is an app, available on both iOS and Android, called MobileOrg. This app can synchronise with your org files via Dropbox, WebDAV or an SD card.

Step 15

Setting up Toodledo

While it is fully functional, some people do not like the workflow MobileOrg uses on your mobile device. There are many different apps available which provide different layouts and workflows. Most of these apps synchronise with various web apps. One popular web app is Toodledo, and there are several mobile apps giving you access to your tasks. If you wish to use this, you will need to synchronise org-mode with Toodledo. The first step is to go and sign up and get your Toodledo account. Once you do, you can get Emacs configured.

Step 16

Getting org-toodledo

The project org-toodledo is hosted on GitHub, where you can download zip files or grab a copy of the Git repository. Once you download it, you need to add the directory to the Emacs search path with ‘(push “/path/to/ org-toodledo” load-path)’. You will also want to add the variables ‘org-toodledo-userid’ and ‘org-toodledo-password’ to allow access to your Toodledo account.

Step 17

Patching Emacs

Depending on your version of Emacs, you may need to patch some of the functions in the url-http file. If you installed from source, simply apply the patches before compiling and installing. If you install from your distribution, you will only have compiled elisp files. You will need to download the source files for your version from the Emacs site, patch the file url_http.el, then copy it over to the installed location.

Step 18

Initialising a file for Toodledo

The first step is to create and initialise a file to use for the interface to Toodledo. Create a new file, open it and run the command ‘A-x org- toodledo-initialize’. This will log into your Toodledo account, create a new heading called ‘TASKS’ and do an initial pull of all of the tasks you have createdthere.

Step 19

Setting task states

Task states need to be synchronised between Toodledo and your org-mode setup. You will want to be sure that your org file has all of the task states from Toodledo. These can be set by including the line:


...somewhere in your org file.

Step 20


Any time you make changes to your org file and try to write them, org-toodledo will ask you whether you want to synchronise to Toodledo. If you want to force a sync, say at startup, you can run ‘A-x org-toodledo-sync’. With Emacs, you can set a keyboard shortcut, or incorporate this synchronisation into some other function or trigger.

Step 21

Mapping time properties

There are different time properties, both in Toodledo and org-mode. This means that there needs to be some form of mapping. The org-mode deadline maps to the duedate and duetime in Toodledo, while the scheduled value in org-mode maps to the startdate and starttime in Toodledo.

Step 22

Getting rid of old tasks

You can’t cheat and delete tasks from your org file. If you do so, then they will reappear during the next sync. You need to mark them as done and then synchronise with Toodledo in order to propagate the change. Once that has happened, you can archive the done tasks with the shortcut ‘C-c C-x C-s’.

GNU Emacs
Mobile Apps

Step 23

Mobile apps

Now that you’re synchronising to Toodledo, you can go to your respective app store and find an app that matches your style of working on your mobile device. Our personal choice is DGT, but there are many more to chose from.

Step 24

Where to now?

This article only covered the most basic functions available in org-mode. Emacs is essentially a full running LISP machine, so you can always change the functionality to match your own personal workflow. Check out the links and see what else you can do.

Pages: 1 2
  • Tell a Friend
  • Follow our Twitter to find out about all the latest Linux news, reviews, previews, interviews, features and a whole more.
    • Dedicated Virtual Private Server

      It is really awesome writing about Emacs, I have successfully created an open source to-do list with help of Emacs. Mr. Joey thank you wring this thinking.

    • Server Management
    • David Masterson

      Two things you should add to this description of org-mode and Toodledo — (1) How does org-toodledo change the workflow of org-mode? & (2) How can you setup org-toodledo to only apply to some (one?) Org file?