Next: Running NNDiary, Up: The NNDiary Back End

##### 6.8.1.1 Diary Messages

`nndiary` messages are just normal ones, except for the mandatory presence of 7 special headers. These headers are of the form `X-Diary-<something>`, `<something>` being one of `Minute`, `Hour`, `Dom`, `Month`, `Year`, `Time-Zone` and `Dow`. `Dom` means “Day of Month”, and `dow` means “Day of Week”. These headers actually behave like crontab specifications and define the event date(s):

- For all headers except the `Time-Zone` one, a header value is either a star (meaning all possible values), or a list of fields (separated by a comma).
- A field is either an integer, or a range.
- A range is two integers separated by a dash.
- Possible integer values are 0–59 for `Minute`, 0–23 for `Hour`, 1–31 for `Dom`, 1–12 for `Month`, above 1971 for `Year` and 0–6 for `Dow` (0 meaning Sunday).
- As a special case, a star in either `Dom` or `Dow` doesn't mean “all possible values”, but “use only the other field”. Note that if both are star'ed, the use of either one gives the same result.
- The `Time-Zone` header is special in that it can only have one value (`GMT`, for instance). A star doesn't mean “all possible values” (because it makes no sense), but “the current local time zone”. Most of the time, you'll be using a star here. However, for a list of available time zone values, see the variable `nndiary-headers`.

As a concrete example, here are the diary headers to add to your message for specifying “Each Monday and each 1st of month, at 12:00, 20:00, 21:00, 22:00, 23:00 and 24:00, from 1999 to 2010” (I'll let you find what to do then):

         X-Diary-Minute: 0
         X-Diary-Hour: 12, 20-24
         X-Diary-Dom: 1
         X-Diary-Month: *
         X-Diary-Year: 1999-2010
         X-Diary-Dow: 1
         X-Diary-Time-Zone: *