org-mode agenda tip

2019-10-29

I have been using org-mode for several years now as my private knowledge store and task list. My directory structure looked something like this

~/org/
  `----> todos
  |      `----> capture.org # misc todo list
  |      `----> proj_<name1>.org # Project specific todo lists
  |      `----> ...  # ...
  |      `----> proj_<nameN>.org # Project specific todo lists
  `----> notes/
         `----> topic1.org # Notes (possibly in subdirectories)
         `----> ...  # ...
         `----> topicX.org #
         ...

Now, if you are familiar with org-mode, there is a variable called org-agenda-files that takes either

I used to set org-agenda-files to ~/org/todos and org-mode used to automatically pull in todos from all the *.org files in that directory.

Often, while making notes (during a meeting, while fixing bugs, or while reading some documentation), I would need to add some tasks. org-capture is really good for this. It not only stores tasks into my ~/org/todos/capture.org but also stores the current file I am in to provide context. Since capture.org is in

org-agenda-files, it would automatically get listed in my agenda as well.

Recently though, I started using Evernote as a trusted store for a lot of reference documents and for note taking - primarily because attaching files, syncing and sharing notes is simpler with evernote especially when I am on my phone.

While using Evernote, I came across one very neat feature - we could add reminders to any note. For instance, I have a page with my electricity bill receipt attached and a reminder to pay and attach the receipt for the next month. There is great value in this subtle change - interspersing notes with tasks improved the quality of both the notes and also gave better context to tasks. Furthermore, evernote lists all reminders in the current notebook together - much like an agenda view.

There are things that don't fit Evernote's model well. Reminders are always at the level of notes. Tags are at the level of notes. Individual items in checklists are simply treated as text with a clickable box next to them.

As an org-mode user, the ability to add different todo states per task is second-nature and this is very limited in Evernote. I use the following todo states with fast selection/notes

;; https://orgmode.org/manual/Fast-access-to-TODO-states.html#Fast-access-to-TODO-states
(setq org-todo-keywords
  (quote
   ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
    (sequence "CLARIFY(c@)" "SCHEDULED(s)" "|" "MET(m@)")
    (sequence "WAITING(w@)" "|" "REASSIGNED(r@)"))))

A little thought about how to structure a better workflow lead me to discover the following keybindings which I had previously disregarded.

The changes done by these two commands are stored into emacs-custom-file which is ~/.emacs.d/custom.el for me.

In some sense, I had been wasting time organizing my tasks and notes in separate places when I could have let org-mode do it for me instead. I still have a capture.org for tasks from non org-files. However, I have stopped capturing when I am in any org-mode file. I simply add a TODO task to the file I currently am in and I add it to my agenda list using C-c [. Now, I not only have the ability to visit the note which the current task is associated with (I also had this previously using capture templates), but I also have the ability to quickly see the tasks while I go through my notes as well.