Emacs: How I organize my Org files

Michael Jones wanted to know how I organized my Org Mode files. Here’s how I do things!

Org Mode for Emacs is an outliner that lets you add a little structure to plain text files. Not only can you use it to move around, hide, and show sections of your outline, but you can also:

  • schedule tasks and mark them as complete,
  • add hyperlinks and formatting,
  • estimate effort and track time,
  • export to HTML and other formats,
  • and even include code that you can run in-line.

I started with a single Org Mode file (appropriately called organizer.org), but I’ve gradually fleshed this out into a number of files. My goals for organizing my files this way are to be able to:


  • Publish some files while keeping other files private,
  • Add or remove groups of tasks from my agenda, or focus my agenda/search on the current file,
  • Simplify processing my weekly review (categorizing accomplishments/tasks),
  • Get a quick overview of important things, and
  • Have file-specific options, like columns.

I often use Org agenda custom commands to jump around. For example, one agenda command lists projects, and pressing RET on an agenda line will take me to that project. I also use org-capture to take a note from anywhere, and I use org-goto to navigate my files. For jumping to a specific file, I use ido-find-file.

I use several Org Mode files. The six files below have a little more than 1.3MB of text in total – tiny! – but they help me tremendously. I also have lots of other Org files like my Emacs configuration and my blog index (I often use Org for publishing), but these are my main files.

Personal tasks and notes: organizer.org

This is the catch-all for any tasks or notes that don’t belong to the files below. Here’s the rough structure:

  • Quick notes: Tidbits that might not make it into their own blog posts, but which can be included in weekly reviews
  • Reference: Hours, license keys, etc.
  • Open loops: Anything I need to check on every so often
  • Projects: High-level things I’m focusing on
  • Financial goals: Things to save up for
  • Someday/maybe: Projects to do someday
  • Weekly review: Divided by year
  • Monthly review: More summaries
  • Plans: Personal plans
  • 2011, 2012, 2013…: I use org-capture to quickly jot down notes. The datetree option automatically files them by day, which makes older ones easier to archive.
  • Tasks: A bucket for miscellaneous tasks

Anything to do with business: business.org

I organize these by the types of tasks I focus on and the notes I want to keep.

  • Earn
    • Clients
    • Leads
  • Build
    • Projects
    • Research
    • Business ideas
    • Blog
    • Delegation
    • Planning
    • Business hygiene (accounting, etc.)
    • Learning
  • Connect
    • Meetups
    • Hangouts
    • Other
  • Reference
  • Tasks

Relationships: people.org

I organize these by relationships so that I can remember who’s out there.

  • Family
  • Extended family
  • Canada friends
  • Hacklab
  • Barkada
  • Letters
  • Meetups
  • Bloggers
  • Family friends
  • Other tasks

Regular tasks: routines.org

I organize these by frequency and omit the tasks from my weekly review. This also contains my “In case of…” scenarios and my backup documentation.

  • Every day
  • Once a week
  • Once a month
  • Once a quarter
  • Once a year
  • When…

Outline for future blog posts: sharing/index.org

I organize this by topic. See http://sach.ac/outline for the published version

Decision review: decisions.org

I organize these by status. I also use org-choose markers (ex: CHOSEN, MAYBE) inside the categories, but the headings make it easier to review.

  • Pending
  • Current
  • For review
  • Someday / maybe
  • Archive

Personal finance: ledger.org

I use John Wiegley’s command-line Ledger program to manage my finances. My financial data is in separate ledger-mode files, and I use an Org file with org-babel to make it easier for me to answer some questions about my finances. For example:

  • Given my average monthly expenses and the amount of money I’ve set aside, how long can I sustain my early-retirement experiment?
  • Am I ahead or behind in terms of household contributions?
  • What did I spend on last month?
  • Are my virtual envelopes balanced?

How do you organize your Org files or outlines?

Everyone’s got different ways of organizing outlines, and people also also change over time. How do you organize yours?

  • dwhoman

    I use the Getting Things Done system and am starting to use the Pomedoro system. In one file (datebook.org), I have the GTD in-basket (called Tasks since F12 has the default capture [t] Task), projects current, projects bull pen, and projects someday (I named them as such because it made refilling easier). This is the only file that I use for my adgenda. Each project gets a project status tag (P, P_HOLD, or P_CANNED), and each project has actionables items, or sub-projects with actionable items, taged with TODO, STARTED, HOLD, WAITING, or CANCELLED. Each top-level project also gets one or more tags describing how it fits into my overall goals. I also have another org file for GTD reference. Each project gets its own org file with a link to it from the project associated in the datebook. Also in the datebook, I keep recurring tasks (such as payments) under a separate heading, and events (such as birthdays) under another heading. I add a POMEDORO property to any actionable item that I want to time as a pomedoro. I created some functions that are hooked to org-clock -in -out and -cancel that create a count down timer and mark when a Pomedoro is voided under the corresponding CLOCK:, and I have a break entry that it will autmatically switch to when I time out.

    Notes are usually part of a project or field of study, which gets its own org file, or it goes into my reference org file. I don’t use org for contacts or finances, currently. Daily tasks go under a separate headline, and time spent in non-projects and non-tasks go under anther. Overall goals/vision go under another heading. Singleton actions go under a singleton heading under projects current.

    • Good idea on renaming headlines to make them easier to jump/refile to. =) Thanks for sharing your setup! Have you shared your Pomodoro-related functions anywhere? Lots of people like that technique, so chances are other people will find that code handy.

      • dwhoman

        At the time, I was using some hacks to get around the fact the org-timer.el had a fixed value for the alarm. On the mailing list, I requested that this be changed to allow for customization, and it was. I finally got around to cleaning up my code for general use and putting it on github.

  • You need to publish a ‘time management with emacs’ book.

    • Dave Bolton

      Yes! I would pay for that

      • Awww, thanks! It seems kinda straightforward, but maybe it’s because I’ve gotten used to this workflow: Use Org Mode or some other package to capture your tasks. Make sure you don’t commit to too many of them. Take notes so that you don’t have to solve the same problems again and again. It’s okay to use external tools like Google Calendar (I like the synchronization and sharing, so…), just make them part of your regular review process.

        What challenges are you running into?

  • Fredrik

    Hi, do you use the ledgerprogram on a PC and how in that case? I haven’t been able to find a binary for it…

  • Fred

    I saw on your configuration files that you use file+datetree with two
    parameters : the file path and a headline (for example (file+datetree
    “~/personal/books.org” “Inbox”). But it seems that file+datetree
    takes only one parameter (I use Org 8.0.1). Did you patch org-capture ?

    • Oh, that’s interesting. It appears to do nothing on this end, so I’ve removed the extra value. Thanks for catching that!

  • Rainbows ‘n Kittens

    What does you people.org file looks like? It’s basically an address book, right? Do you record birthdays in there? Telephone numbers, email addresses?

    I currently use Gmail but want to move away from it. You can add birthdays and other anniversaries and they automatically show up on your calendar. The whole thing sinks up with a phone.

    You mentioned file specific options. Where are you using these?

    • I use Google Contacts for address book information because it synchronizes with my phone. I use my people.org file for people-related TODOs and notes.

      As for file-specific options, I use FILE_TAGS, COLUMNS, and PROPERTY to tweak how my business.org file works.

  • Rainbows ‘n Kittens

    Can you share some sanitized examples of the queries you’re running over your ledger data? Are you generating graphs from babel code?

  • The headings in my ledger.org are:
    – Check my asset summary
    – Check my bank statements
    – Check my virtual envelope balances
    – Doublecheck that Play expenses have been classified (by default, all expenses come out of my play budget, and then I reimburse my play budget if I can file the expense under a different category)
    – Do I need to write W- a cheque? (Checks whether I’m ahead or behind on household contributions)
    – Review grocery expenses
    – Estimate my runway (Takes my average monthly expenses and the amount of money I set aside for this experiment, and estimates when I can run the experiment until)
    – Review last year’s expenses
    – Review average expenses
    – Review last month’s expenses
    – Review this month’s expenses

    I don’t generate graphs at the moment, although that might be interesting.

  • Why are you guys still use org-mode? It’s 2013! Why not use evernote completely or workflowy?

    What are pro’s for using org-mode? I looked at the features and i am not convinced yet….

    • I like Evernote’s ability to search and organize images (http://sach.ac/evernote) as well as synchronize with all my devices, but I simply haven’t found anything with the power and flexibility of Emacs Org Mode. =) You might want to check out my Org category to get a sense of what I’ve been doing with it.

      You’re certainly welcome to keep using Evernote, Workflowy, or your other favourite tools, but for me, Org is well worth the investment of time. For example, it would be pretty difficult to keep my blog post outline in anything else (even Scrivener!), or manage my tasks and weekly reviews in a different planner. Excellent stuff.

  • Do you mind sharing your ledger.org? I think it only has babel code to generate reports.

  • narendraj9

    Hi! It would be great if you can share code for generating ledger reports you have mentioned. :)