1.\" Copyright (c) 1989, 1990, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 4. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" @(#)calendar.1 8.1 (Berkeley) 6/29/93 29.\" $FreeBSD$ 30.\" 31.Dd July 24, 2016 32.Dt CALENDAR 1 33.Os 34.Sh NAME 35.Nm calendar 36.Nd reminder service 37.Sh SYNOPSIS 38.Nm 39.Op Fl A Ar num 40.Op Fl a 41.Op Fl B Ar num 42.Op Fl D Ar moon|sun 43.Op Fl d 44.Op Fl F Ar friday 45.Op Fl f Ar calendarfile 46.Op Fl l Ar longitude 47.Oo 48.Bk -words 49.Fl t Ar dd Ns 50.Sm off 51.Op . Ar mm Op . Ar year 52.Sm on 53.Ek 54.Oc 55.Op Fl U Ar UTC-offset 56.Op Fl W Ar num 57.Sh DESCRIPTION 58The 59.Nm 60utility checks the current directory for a file named 61.Pa calendar 62and displays lines that fall into the specified date range. 63On the day before a weekend (normally Friday), events for the next 64three days are displayed. 65.Pp 66The following options are available: 67.Bl -tag -width Ds 68.It Fl A Ar num 69Print lines from today and the next 70.Ar num 71days (forward, future). 72.It Fl a 73Process the ``calendar'' files of all users and mail the results 74to them. 75This requires super-user privileges. 76.It Fl B Ar num 77Print lines from today and the previous 78.Ar num 79days (backward, past). 80.It Fl D Ar moon|sun 81Print UTC offset, longitude and moon or sun information. 82.It Fl d 83Debug option: print current date information. 84.It Fl F Ar friday 85Specify which day of the week is ``Friday'' (the day before the 86weekend begins). 87Default is 5. 88.It Fl f Pa calendarfile 89Use 90.Pa calendarfile 91as the default calendar file. 92.It Fl l Ar longitude 93Perform lunar and solar calculations from this longitude. 94If neither longitude nor UTC offset is specified, the calculations will 95be based on the difference between UTC time and localtime. 96If both are specified, UTC offset overrides longitude. 97.It Xo Fl t 98.Sm off 99.Ar dd 100.Op . Ar mm Op . Ar year 101.Sm on 102.Xc 103For test purposes only: set date directly to argument values. 104.It Fl U Ar UTC-offset 105Perform lunar and solar calculations from this UTC offset. 106If neither UTC offset nor longitude is specified, the calculations 107will be based on the difference between UTC time and localtime. 108If both are specified, UTC offset overrides longitude. 109.It Fl W Ar num 110Print lines from today and the next 111.Ar num 112days (forward, future). 113Ignore weekends when calculating the number of days. 114.El 115.Sh FILE FORMAT 116To handle calendars in your national code table you can specify 117.Dq LANG=<locale_name> 118in the calendar file as early as possible. 119.Pp 120To handle the local name of sequences, you can specify them as: 121.Dq SEQUENCE=<first> <second> <third> <fourth> <fifth> <last> 122in the calendar file as early as possible. 123.Pp 124The names of the following special days are recognized: 125.Bl -tag -width 123456789012345 -compact 126.It Easter 127Catholic Easter. 128.It Paskha 129Orthodox Easter. 130.It NewMoon 131The lunar New Moon. 132.It FullMoon 133The lunar Full Moon. 134.It MarEquinox 135The solar equinox in March. 136.It JunSolstice 137The solar solstice in June. 138.It SepEquinox 139The solar equinox in September. 140.It DecSolstice 141The solar solstice in December. 142.It ChineseNewYear 143The first day of the Chinese year. 144.El 145These names may be reassigned to their local names via an assignment 146like 147.Dq Easter=Pasen 148in the calendar file. 149.Pp 150Other lines should begin with a month and day. 151They may be entered in almost any format, either numeric or as character 152strings. 153If the proper locale is set, national month and weekday 154names can be used. 155A single asterisk (``*'') matches every month. 156A day without a month matches that day of every week. 157A month without a day matches the first of that month. 158Two numbers default to the month followed by the day. 159Lines with leading tabs default to the last entered date, allowing 160multiple line specifications for a single date. 161.Pp 162The names of the recognized special days may be followed by a 163positive or negative integer, like: 164.Dq Easter+3 165or 166.Dq Paskha-4 . 167.Pp 168Weekdays may be followed by ``-4'' ...\& ``+5'' (aliases for 169last, first, second, third, fourth) for moving events like 170``the last Monday in April''. 171.Pp 172By convention, dates followed by an asterisk are not fixed, i.e., change 173from year to year. 174.Pp 175Day descriptions start after the first <tab> character in the line; 176if the line does not contain a <tab> character, it is not displayed. 177If the first character in the line is a <tab> character, it is treated as 178a continuation of the previous line. 179.Pp 180The 181.Nm 182file is preprocessed by a limited subset of 183.Xr cpp 1 184internally, allowing the inclusion of shared files such as 185lists of company holidays or meetings. 186This limited subset consists of \fB#include #ifndef #endif\fR and \fB#define\fR. 187If the shared file is not referenced by a full pathname, 188.Xr calendar 1 189searches in the current (or home) directory first, and then in the 190directory 191.Pa /usr/share/calendar . 192Empty lines and lines protected by the C commenting syntax 193.Pq Li /* ... */ 194are ignored. 195.Pp 196Some possible calendar entries (<tab> characters highlighted by 197\fB\et\fR sequence) 198.Bd -unfilled -offset indent 199LANG=C 200Easter=Ostern 201 202#include <calendar.usholiday> 203#include <calendar.birthday> 204 2056/15\fB\et\fRJune 15 (if ambiguous, will default to month/day). 206Jun. 15\fB\et\fRJune 15. 20715 June\fB\et\fRJune 15. 208Thursday\fB\et\fREvery Thursday. 209June\fB\et\fREvery June 1st. 21015 *\fB\et\fR15th of every month. 2112010/4/15\fB\et\fR15 April 2010 212 213May Sun+2\fB\et\fRsecond Sunday in May (Muttertag) 21404/SunLast\fB\et\fRlast Sunday in April, 215\fB\et\fRsummer time in Europe 216Easter\fB\et\fREaster 217Ostern-2\fB\et\fRGood Friday (2 days before Easter) 218Paskha\fB\et\fROrthodox Easter 219 220.Ed 221.Sh FILES 222.Bl -tag -width calendar.christian -compact 223.It Pa calendar 224file in current directory. 225.It Pa ~/.calendar 226.Pa calendar 227HOME directory. 228A chdir is done into this directory if it exists. 229.It Pa ~/.calendar/calendar 230calendar file to use if no calendar file exists in the current directory. 231.It Pa ~/.calendar/nomail 232do not send mail if this file exists. 233.El 234.Pp 235The following default calendar files are provided in 236.Pa /usr/share/calendar: 237.Pp 238.Bl -tag -width calendar.southafrica -compact 239.It Pa calendar.all 240File which includes all the default files. 241.It Pa calendar.australia 242Calendar of events in Australia. 243.It Pa calendar.birthday 244Births and deaths of famous (and not-so-famous) people. 245.It Pa calendar.christian 246Christian holidays. 247This calendar should be updated yearly by the local system administrator 248so that roving holidays are set correctly for the current year. 249.It Pa calendar.computer 250Days of special significance to computer people. 251.It Pa calendar.croatian 252Calendar of events in Croatia. 253.It Pa calendar.dutch 254Calendar of events in the Netherlands. 255.It Pa calendar.freebsd 256Birthdays of 257.Fx 258committers. 259.It Pa calendar.french 260Calendar of events in France. 261.It Pa calendar.german 262Calendar of events in Germany. 263.It Pa calendar.history 264Everything else, mostly U.S.\& historical events. 265.It Pa calendar.holiday 266Other holidays, including the not-well-known, obscure, and 267.Em really 268obscure. 269.It Pa calendar.judaic 270Jewish holidays. 271The entries for this calendar have been obtained from the port 272deskutils/hebcal. 273.It Pa calendar.music 274Musical events, births, and deaths. 275Strongly oriented toward rock 'n' roll. 276.It Pa calendar.newzealand 277Calendar of events in New Zealand. 278.It Pa calendar.russian 279Russian calendar. 280.It Pa calendar.southafrica 281Calendar of events in South Africa. 282.It Pa calendar.usholiday 283U.S.\& holidays. 284This calendar should be updated yearly by the local system administrator 285so that roving holidays are set correctly for the current year. 286.It Pa calendar.world 287Includes all calendar files except for national files. 288.El 289.Sh COMPATIBILITY 290The 291.Nm 292program previously selected lines which had the correct date anywhere 293in the line. 294This is no longer true, the date is only recognized when it occurs 295at the beginning of a line. 296.Sh SEE ALSO 297.Xr at 1 , 298.Xr mail 1 , 299.Xr cron 8 300.Sh HISTORY 301A 302.Nm 303command appeared in 304.At v7 . 305.Sh NOTES 306Chinese New Year is calculated at 120 degrees east of Greenwich, 307which roughly corresponds with the east coast of China. 308For people west of China, this might result that the start of Chinese 309New Year and the day of the related new moon might differ. 310.Pp 311The phases of the moon and the longitude of the sun are calculated 312against the local position which corresponds with 30 degrees times 313the time-difference towards Greenwich. 314.Pp 315The new and full moons are happening on the day indicated: They 316might happen in the time period in the early night or in the late 317evening. 318It does not indicate that they are starting in the night on that date. 319.Pp 320Because of minor differences between the output of the formulas 321used and other sources on the Internet, Druids and Werewolves should 322double-check the start and end time of solar and lunar events. 323.Sh BUGS 324The 325.Nm 326internal cpp does not correctly do #ifndef and will discard the rest 327of the file if a #ifndef is triggered. 328It also has a maximum of 50 include file and/or 100 #defines 329and only recognises #include, #define and 330#ifndef. 331.Pp 332There is no possibility to properly specify the local position 333needed for solar and lunar calculations. 334