Headlines for Saturday:

  1. Emacs: managing schedule (377 words)
  2. Tweaking day-specific planner pages (273 words)
  3. Choosing a daily schedule in Emacs (762 words)


Priorities - A: high, B: medium, C: low; Status - _: unfinished, X: finished, C: cancelled, P: pending, o: in progress, >: delegated.
AXDo laundry, make sure I have clothes for next week
AXPick up envelope from Purolator
AXPlan the week's meals
AX1h Review library books, make notes
AX30min Scan through blogs
AX@15:30 17:00 1.5h work on book 4h work on book - edit blog posts from this week, fill in more basic information: GOAL: get to 18 pages
AX@17:30 19:00 1.5h work on book


@20:20 # 30min Review library books, make notes

Forthcoming Appointments

Sun 2007.10.28 13:00 17:00 # Work on book


1. Emacs: managing schedule: 16:23

If you spend a lot of time in Emacs—writing code, reading mail, saving the world—then it makes sense to manage your schedule in Emacs as well.

Here are some productivity tips for getting the most out of Emacs scheduling:

  • Make it easy to add to your schedule. Bind your appointment-creation functions to shortcut keys and practice using them until you've memorized where they are.
  • Make it easy to review your schedule for the day. The keybinding C-c s is handy for this. If you prefer not to use the Control key, then F9 s or any of the other function keys might work. Diary: Bind M-x diary to a shortcut key. Org: Bind org-agenda-list to a shortcut key. Planner: Bind planner-goto-today to a shortcut key.
  • Set up an automatic reminder system such as Appt. If you can trust that your reminder system will interrupt you even if you're focusing on something else, you'll worry less about missing appointments. You'll find it easier to stay focused because you won't need to check your schedule as often.
  • If you need to be reminded earlier than normal, create another, earlier appointment. For example, if the commute to a meeting takes half an hour, you don't want to be reminded of the meeting only 10 minutes before it starts. Create another appointment that starts at least half an hour before so that you'll be on your way. It might be a good idea to start even earlier.
  • Planning ahead helps you save time and avoid stress. Plan your day the night before, or in the morning if you need to. Spend a little time during the weekend to review your upcoming week, making sure to schedule in time for your important tasks. Diary: C-u 7 M-x diary. Org: org-agenda (bind this to C-c a), choose the agenda view (a), and switch to week (w). Planner: Use planner-appt and M-x planner-appt-forthcoming-display. To include this in your Planner page, create a section for forthcoming appointments. For example, on your Saturday and Sunday templates, you can add a section heading * Forthcoming Appointments. I'll post code on how to have day-specific templates soon.

On Technorati:

Random Emacs symbol: custom-variable-p - Function: Return non-nil if VARIABLE is a custom variable.

2. Tweaking day-specific planner pages: 16:40

If you set planner-day-page-template to a function. Planner invokes the function when creating a new day page. This means that you can do all sorts of stuff. For example, to include the day name in your day template, add the following code to your ~/.emacs:

(setq planner-day-page-template (lambda ()
  "Day page template for Sacha."
  (let ((date (planner-filename-to-calendar-date (planner-page-name))))
    (insert (calendar-day-name date) "\n* Tasks\n\n\n* Schedule\n\n\n* Notes\n"))))

Let's say that you wanted to have day-specific messages:

(setq planner-day-page-template (lambda ()
  "Day page template for Sacha."
  (let* ((date (planner-filename-to-calendar-date (planner-page-name)))
         (day (calendar-day-of-week date)))
    (insert (cond
             ;; Day of week starts from 0
             ((= day 0) "Woohoo! Sunday!")
             ((= day 1) "Oh no, it's Monday")
             ((= day 5) "T.G.I.F.!")
             ((= day 6) "I love Saturdays.")
             ;; The rest of the days
             (t "Is it Friday yet?"))
            "\n\n* Tasks\n\n\n* Schedule\n\n\n* Notes\n\n"))))

... although you might want to have a more upbeat way to think of weekdays. ;)

You could do lots of things to your day page template. You could include one line describing your career goals into your planner every weekday and one about your personal goals every weekend. You could use fortune to include a random work-related joke or quotation during the weekday and a fun-related one during the weekend. You can even include text based on the current month or day or year, if you wanted.

It pays to learn Emacs Lisp. Crazy Emacs geeks like me build all sorts of entry points for customization, so you're really just limited by your imagination. =)

Random Emacs symbol: w3m-toggle-inline-images-internal - Command: Toggle displaying of inline images on current buffer.

On Technorati:

3. Choosing a daily schedule in Emacs: 19:13

There's more than one way to plan your day in Emacs, just like there's more than one way to do everything in Emacs. The basic end of the spectrum includes Diary, Calendar, and Appt. More sophisticated modules include Org (part of Emacs 22) and Planner (available separately). Then there are Emacs modules to export and import calendar data to and from external programs, such as Remind.

If all you need to do is keep track of recurring events such as birthdays and anniversaries, then Diary can be a good fit for you. All it takes is one text file specifying the dates and descriptions of one-time or recurring events, and one line in your ~/.emacs file to display the diary entries for today whenever you start up. If you switch to either Org or Planner later on, you can configure your Emacs to include information from your old diary file.

If you find yourself wanting more integration with your task list and your notes so that you can see everything related to the day, then you'll want to go for either Org or Planner. The choice between the two depends on how you want to plan your day. ...

If you've worked with a paper-based planner or a typical calendar application for a while, then Planner might be a good fit for the way you think. Planner has a strong day orientation. With Planner, you plan your schedule in terms of day pages, and optionally cross-reference the tasks with project pages. You can keep your schedule as plain text on your day page, or you can follow the format suggested by Planner so that your scheduled tasks and appointments will be added to Emacs' appointment reminder system. Planner is similar to the scheduling method of Franklin-Covey day planners and other paper organizers. I like Planner because it's easy to scribble notes onto my daily schedule, just like I would pencil comments into my paper planner.

Org focuses on projects instead of days. With Org, you plan your projects first, and then schedule specific tasks or appointments onto your calendar. Your daily view is then dynamically generated from the headlines of the outline nodes that are scheduled for the day. You need to use a special format, but built-in commands make it easy to create and edit timestamps. Org has great support for David Allen's Getting Things Done (GTD) productivity technique. If you think in terms of next actions or outlines, Org is a good fit for you.

You can still think in terms of projects with Planner, but you'll need to remember to use the built-in commands for editing functions so that your changes are also reflected in the day pages. You don't need to organize your Org file by project. You can throw everything into one outline if you want. However, you'll still need to use the dynamically-generated summary view (org-agenda-list) to see your daily or weekly schedule, and reading all the text associated with the day could mean some jumping around.

In short:
  • If you think in terms of day schedules, start with Planner.
  • If you think in terms of projects or outlines, start with Org.

If you haven't figured out how your brain works yet, I recommend starting with Org. I think that the project-based approach will probably help more people out in the long run. I have to admit that I love Planner and I've been using it very happily for more than four years. I love being able to add all sorts of free-form notes while going through the day, and Planner makes it easy to publish that as my blog. (Automatically removing all my private notes, of course!) I've gotten used to the way Planner works, and because of my extensive modifications, Planner's gotten used to the way I work as well. If you're starting from scratch, you might like Org's better support for projects, outlines, and overviews. Give Org a try first. If you find yourself wanting more flexibility in your day view, try Planner next.


If you've tried both, I'd love to hear your thoughts on the differences between them. I'm trying to figure out when one fits better than the other because I'm working on a book called "Wicked Cool Emacs". I love Planner, I'm getting the hang of Org, and I'd love to hear from other people who have given both a shot. =)

Random Emacs symbol: message-forward-decoded-p - Variable: Non-nil means the original message is decoded.

On Technorati:


  1. E-mail to Karen Quinn Fung, Richard Eriksson
  2. E-mail to sacha
  3. Reply to Alex Schroeder - sent today
  4. Reply to Michael McGuffin - sent today