My credit card bill is due 3 weeks after the statement date. The statement date is always the 20th of the month. Due to the variable lengths of months, the due date is not always on the same day.

I'd like to have a TODO item with a time stamp on the credit card bill's due date. How can I do this in org? I know that I could enter 12 different entries for a year. I'm after a single TODO entry with a +1m indicating to roll the rule over to the next month, every month.

  • Org-mode is not a programming language. Please update your question and title to indicate more clearly what you are trying to do with what tool. Are perhaps using org-tables as a spreadsheet? Org tables do have formula syntax to manipulate dates.
    – Heikki
    Mar 27, 2021 at 5:43
  • You can not do it with a single TODO entry. See orgmode.org/manual/Repeated-tasks.html. However, it should be possible to write an elisp function that generates to you a series of TODO entries with correct dates but that would be an other problem.
    – Heikki
    Mar 29, 2021 at 18:05
  • How about a diary function? Mar 30, 2021 at 21:41

1 Answer 1


I'll hazard a guess what you mean and show one simple way of getting answers to your problem in an org-mode buffer.

Put your statement dates in an org-mode table like below. The dates have to be in a format that org-mode recognises. Here they are inactive dates without time string. Place the cursor in the formula line under the table and press C-c C-c to calculate the due dates 20 days later.

| Statement date   | Due date |
| [2021-04-20 Tue] |          |
| [2021-05-20 Thu] |          |
| [2021-06-20 Sun] |          |
#+TBLFM: $2=$1+20;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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