Skip to main content
  1. Notes/

My "Ultimate" Org Agenda View Configuration

·946 words·5 mins
elisp orgmode emacs
Table of Contents

I love everything about org-mode. I adore reading about it and how people use it in various ways, such as implementing GTD or Kanban. Taking notes with it brings me joy, and I often find myself tinkering with it because I’m so passionate about it. So here, I’m sharing my org-agenda configuration in case you also enjoy reading other people’s setups for ideas.

Org-mode, which should be a powerful productivity tool, sometimes distracts me from actual tasks. Whenever I work with org-mode, I often find something to improve in its configuration, leading to fun procrastination sessions in my ~/.emacs. But hey, at least I haven’t touched my org-agenda-custom-commands variable for the last couple of months!

For capturing and organizing ideas and tasks, I stick with the GTD methodology, a principle I’ve integrated into my org-mode setup. As for my org-agenda custom view, I blend in a bit of the Eisenhower Matrix ( that one with important & urgent quadrant) approach. This combination helps me quickly assess tasks, deciding which ones need my immediate attention and commitment.

TL;DR #

(setq org-agenda-custom-commands '(("z" "My Agenda" ((agenda "" ((org-agenda-span 'day)
                                                                 (org-agenda-sorting-strategy '((agenda time-up priority-down category-keep)))
                                                                 (org-agenda-show-log t)
                                                                 (org-agenda-log-mode-items '(clock))))
                                                     (todo "NEXT" ((org-agenda-overriding-header "Next Tasks\n")))
                                                     (tags-todo "-tickler/TODO|WAIT" ((org-agenda-overriding-header "Tasks Stack\n")
                                                                                      (org-agenda-sorting-strategy '((tags todo-state-down priority-down category-keep)))))
                                                     (tags-todo "tickler-SCHEDULED={.+}/TODO|LOOP|WAIT|NEXT" ((org-agenda-overriding-header "Unscheduled Reminders\n")))
                                                     (agenda "" ((org-agenda-span 10)
                                                                 (org-agenda-start-day "+1d")
                                                                 (org-agenda-overriding-header "Upcoming\n")
                                                                 (org-agenda-show-log nil)))
                                                     (todo "PROJ" ((org-agenda-overriding-header "Projects\n")))
                                                     (tags "CLOSED>=\"<-7d>\"|LAST_REPEAT>=\"<-7d>\"" ((org-agenda-overriding-header "Completed in the Last 7 Days\n")))))))

“The Urgent but Not Important” Section #

Figure 1: “The urgent but not important” section & “the important but not too urgent” section
(agenda "" ((org-agenda-span 'day)
            (org-agenda-sorting-strategy '((agenda time-up priority-down category-keep)))
            (org-agenda-show-log t)
            (org-agenda-log-mode-items '(clock))))

First of all, don’t mind my habit graph, so much stuffs (good stuffs 😃) going on lately that I can’t catch up with my habits. Let’s talk about something else in this section.

The (org-agenda-span 'day) setting focuses on my tasks for today, including urgent ones like paying internet bills and more. It also alerts me about upcoming tasks that need days of preparation, such as paperwork for a driving license extension.

Additionally, using (org-agenda-log-mode-items '(clock)) overrides the default value of org-agenda-log-mode-items, which is '((closed clock)). By excluding completed tasks from the view, I maintain a clutter-free space, enabling me to stay concentrated on today’s tasks. However, I still like to keep track of my completed tasks, so I organize them in a separate section (as explained later).

“The Important but Not Too Urgent” Section #

(todo "NEXT" ((org-agenda-overriding-header "Next Tasks\n")))

In this section ( shown in figure 1), you’ll find my main highlight and the most frequently visited part of my agenda. It displays all my NEXT tasks, which are essentially my top priorities for the week. These tasks are the most important ones; they’re not extremely urgent but urgent enough to warrant completion within this week.

“The Not Important and Not Urgent” Section #

Figure 2: “The important but not too urgent” section & some parts of extra section
(tags-todo "-tickler/TODO|WAIT" ((org-agenda-overriding-header "Tasks Stack\n")
                                 (org-agenda-sorting-strategy '((tags todo-state-down priority-down category-keep)))))

In this section, I list my not-so-important and not-urgent tasks. These include my WAIT tasks, which are somewhat important but currently delayed due to external factors, such as awaiting a code review. Also, there are TODO tasks that aren’t urgent or significant right now but might become so in the next week. Despite their low urgency, I still keep an eye on them in my agenda view.

The "-tickler" filter in the snippet above helps me exclude tasks tagged with tickler. These are usually less important tasks that I don’t want cluttering my everyday view. When I capture such tasks, I schedule them for the future, tag them with tickler, and forget about them. When the right time comes, they pop up in my “the urgent but not important” section, serving as helpful reminders.

The Extra Section #

Figure 3: The extra section
  • Unscheduled Reminders

      (tags-todo "tickler-SCHEDULED={.+}/TODO|LOOP|WAIT|NEXT" ((org-agenda-overriding-header "Unscheduled Reminders\n")))
    

    As depicted in figure 2, this section displays all my tasks tagged with tickler. As mentioned earlier, these are tasks that should have a specific date assigned to them. In case I forget to set a date, I gather them in this section for a gentle reminder

  • Upcoming

      (agenda "" ((org-agenda-span 10)
                  (org-agenda-start-day "+1d")
                  (org-agenda-overriding-header "Upcoming\n")
                  (org-agenda-show-log nil)))
    

    This section provides a quick overview of the next 10 days. Although I don’t frequently concentrate on this area, it offers me peace of mind knowing that no urgent tasks are looming in the immediate future.

  • Projects

      (todo "PROJ" ((org-agenda-overriding-header "Projects\n")))
    

    This section helps me manage my focus by ensuring I don’t overwhelm myself with too many tasks labeled as PROJ. These tasks typically consist of multi-step (TODO).

  • Completed in the last 7 Days

      (tags "CLOSED>=\"<-7d>\"|LAST_REPEAT>=\"<-7d>\"" ((org-agenda-overriding-header "Completed in the Last 7 Days\n")))
    

    This section doesn’t actually helping in managing tasks; it serves more as a morale booster. There’s something uplifting about seeing my productivity over the last 7 days. If I’m feeling particularly productive, it’s a great confidence boost. However, if I’m not feeling as productive, I simply avoid looking at this section, recognizing that it won’t lift my spirits but might actually bring them down 😏.

Where is the “Important and Urgent” Section? #

Well, I handle important tasks by marking them as NEXT tasks and urgent ones by setting deadlines and tagging them with tickler. I find it unnecessary to have a dedicated section for this since important and urgent tasks are easily spotted among the NEXT tasks in “The Urgent but Not Important” section, as shown in figure 1.

That’s all! I’m currently content with this setup, but I’m always open to improvements in the future. Cheers! 😊