CALENDAR(1) | General Commands Manual | CALENDAR(1) |
calendar
—
reminder service
calendar |
[-A num]
[-a ] [-B
num] [-D
moon|sun] [-d ]
[-F friday]
[-f calendarfile]
[-l longitude]
[-t
dd[.mm[.year]]]
[-U UTC-offset]
[-W num] |
The calendar
utility checks the current
directory for a file named calendar and displays
lines that fall into the specified date range. On the day before a weekend
(normally Friday), events for the next three days are displayed.
The following options are available:
-A
num-a
calendar
will process the file three times.
This option requires super-user privileges.
-B
num-D
moon|sun-d
-F
friday-f
calendarfile-l
longitude-t
dd[.mm[.year]]-U
UTC-offset-W
numTo handle calendars in your national code table you can specify “LANG=<locale_name>” in the calendar file as early as possible.
To handle the local name of sequences, you can specify them as: “SEQUENCE=<first> <second> <third> <fourth> <fifth> <last>” in the calendar file as early as possible.
The names of the following special days are recognized:
Other lines should begin with a month and day. They may be entered in almost any format, either numeric or as character strings. If the proper locale is set, national month and weekday names can be used. A single asterisk (``*'') matches every month. A day without a month matches that day of every week. A month without a day matches the first of that month. Two numbers default to the month followed by the day. Lines with leading tabs default to the last entered date, allowing multiple line specifications for a single date.
The names of the recognized special days may be followed by a positive or negative integer, like: “Easter+3” or “Paskha-4”.
Weekdays may be followed by ``-4'' ... ``+5'' (aliases for last, first, second, third, fourth) for moving events like ``the last Monday in April''.
By convention, dates followed by an asterisk are not fixed, i.e., change from year to year.
Day descriptions start after the first <tab> character in the line; if the line does not contain a <tab> character, it is not displayed. If the first character in the line is a <tab> character, it is treated as a continuation of the previous line.
The calendar
file is preprocessed by a
limited subset of cpp(1) internally,
allowing the inclusion of shared files such as lists of company holidays or
meetings. This limited subset consists of #include, #define,
#undef, #ifdef, #ifndef, #else, #warning,
and #error.
Conditions can be nested and the consistency of opening and closing instructions is checked. Only the first word after #define is used as the name of the condition variable being defined. More than word following #ifdef, #ifndef, or #undef is considered a syntax error, since names cannot include white-space. Included files are parsed in a global scope with regard to the condition variables being defined or tested therein. All conditional blocks are implicitly closed at the end of a file, and missing #endif instructions are assumed to be present on implied succeeding lines.
If the shared file is not referenced by a full pathname,
calendar
searches in the current (or home) directory
first, and then in the directory
/usr/share/calendar.
Blank lines and text protected by the C comment syntax
‘/* ... */
’ or
‘//
’ are ignored, but the latter only
at the beginning of a line or after white space to allow for URLs in
calendar entries.
Some possible calendar entries (<tab> characters highlighted by \t sequence):
LANG=C Easter=Ostern #include <calendar.usholiday> #include <calendar.birthday> 6/15\tJune 15 (if ambiguous, will default to month/day). Jun. 15\tJune 15. 15 June\tJune 15. Thursday\tEvery Thursday. June\tEvery June 1st. 15 *\t15th of every month. 2010/4/15\t15 April 2010 May Sun+2\tsecond Sunday in May (Muttertag) 04/SunLast\tlast Sunday in April, \tsummer time in Europe Easter\tEaster Ostern-2\tGood Friday (2 days before Easter) Paskha\tOrthodox Easter
The order of precedence in searches for a calendar file is: current directory, ~/.calendar, /usr/local/share/calendar, /usr/share/calendar. Files of similar names are ignored in lower precedence locations.
The calendar
program previously selected
lines which had the correct date anywhere in the line. This is no longer
true, the date is only recognized when it occurs at the beginning of a
line.
A calendar
command appeared in
Version 7 AT&T UNIX.
Chinese New Year is calculated at 120 degrees east of Greenwich, which roughly corresponds with the east coast of China. For people west of China, this might result that the start of Chinese New Year and the day of the related new moon might differ.
The phases of the moon and the longitude of the sun are calculated against the local position which corresponds with 30 degrees times the time-difference towards Greenwich.
The new and full moons are happening on the day indicated: They might happen in the time period in the early night or in the late evening. It does not indicate that they are starting in the night on that date.
Because of minor differences between the output of the formulas used and other sources on the Internet, Druids and Werewolves should double-check the start and end time of solar and lunar events.
The calendar
does only recognise the cpp
directives #include, #define, #ifdef, #ifndef and #else. It supports nested
conditions, but does not perform any validation on the correct use and
nesting of conditions. #endif without prior #ifdef or #define is ignored and
#else outside a conditional section skips input lines up to the next
#endif.
There is no possibility to properly specify the local position needed for solar and lunar calculations.
July 31, 2022 | macOS 15.2 |