A timestamp is a specification of a date—possibly with a time or time range—in a special format, either ‘<2003-09-16 Tue>’ or ‘<2003-09-16 Tue 09:39>’ or ‘<2003-09-16 Tue 12:00-12:30>’58. A timestamp can appear anywhere in the headline or body of an Org tree entry. Its presence causes entries to be shown on specific dates in the agenda (see Weekly/daily agenda). We distinguish:
A simple timestamp just assigns a date/time to an item. This is just like writing down an appointment or event in a paper agenda. In the agenda display, the headline of an entry associated with a plain timestamp is shown exactly on that date. There can be multiple timestamps in an item.
* Meet Peter at the movies <2006-11-01 Wed 19:15> * Discussion on climate change <2006-11-02 Thu 10:00-12:00> * My days off <2006-11-03 Fri> <2006-11-06 Mon>
A timestamp may contain a repeater interval, indicating that it applies not only on the given date, but again and again after a certain interval of N hours (h), days (d), weeks (w), months (m), or years (y). The following shows up in the agenda every Wednesday:
* Pick up Sam at school <2007-05-16 Wed 12:30 +1w>
For more complex date specifications, Org mode supports using the special expression diary entries implemented in the Emacs Calendar package59. For example, with optional time:
* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month <%%(diary-float t 4 2) 22:00-23:00>
Time range is a timestamp having two time units connected by ‘-’
* Discussion on climate change <2006-11-02 Thu 10:00-12:00>
Two timestamps connected by ‘--’ denote a range. In the agenda, the headline is shown on the first and last day of the range, and on any dates that are displayed and fall in the range. The first example specifies just the dates of the range while the second example specifies a time range for each date.
** Meeting in Amsterdam <2004-08-23 Mon>--<2004-08-26 Thu> ** This weeks committee meetings <2004-08-23 Mon 10:00-11:00>--<2004-08-26 Thu 10:00-11:00>
Just like a plain timestamp, but with square brackets instead of angular ones. These timestamps are inactive in the sense that they do not trigger an entry to show up in the agenda.
* Gillian comes late for the fifth time [2006-11-01 Wed]
The Org date format is inspired by the standard ISO 8601 date/time format. To use an alternative format, see Custom time format. The day name is optional when you type the date yourself. However, any date inserted or modified by Org adds that day name, for reading convenience.
When working with the standard diary expression functions, you
need to be very careful with the order of the arguments. That order
depends evilly on the variable calendar-date-style
. For example, to
specify a date December 1, 2005, the call might look like
‘(diary-date 12 1 2005)’ or ‘(diary-date 1 12 2005)’ or ‘(diary-date
2005 12 1)’, depending on the settings. This has been the source of
much confusion. Org mode users can resort to special versions of
these functions, namely org-date
, org-anniversary
, org-cyclic
, and
org-block
. These work just like the corresponding diary-
functions, but with stable ISO order of arguments (year, month, day)
wherever applicable, independent of the value of
calendar-date-style
.