I'm using Emacs Org-mode to keep project notes and dates and so far it is working quite well.

What I'd like to do is have a macro that schedules a couple of dates based on one input date. The input date is the due date, and I'd like to generate hand-off dates, review dates, etc.

Functionally, here is an example:

  • Due date: zero day!
  • Hand-off date: -1 day
  • Review date start: -14 days
  • Review date end: -7 days
  • Localization date: -21 days
  • Start research: -30 days

The only other logic necessary would be to make sure that these days are not weekends (e.g. the day falls between Monday and Friday). If the date does fall on a weekend, then move to the Friday before.


With a relatively recent version of Org (7.9 or newer since it requires org-element.el) you can use the following file (linking since it's 170 lines of code): org-project.el

After evaluating the code (it also needs (require 'cl) if not being compiled), it can be called with op-create-project. This will prompt for the project name, and an optional category (which defaults to project title) for Agenda purposes. It will then ask for the final due date.

The top headline will have the project name, while the sub-tasks will be titled as defined in op-subtask-series. This defaults to the example you provided above.

The project will be inserted at the same level as the headline you are currently on, as the next headline.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.