cal - display a calendar
cal [options] [[[day] month] year]
cal [options] [timestamp|monthname]
cal displays a simple calendar. If no arguments are specified, the current month is displayed.
The month may be specified as a number (1-12), as a month name or as an abbreviated month name according to the current locales.
Two different calendar systems are used, Gregorian and Julian. These are nearly identical systems with Gregorian making a small adjustment to the frequency of leap years; this facilitates improved synchronization with solar events like the equinoxes. The Gregorian calendar reform was introduced in 1582, but its adoption continued up to 1923. By default cal uses the adoption date of 3 Sept 1752. From that date forward the Gregorian calendar is displayed; previous dates use the Julian calendar system. 11 days were removed at the time of adoption to bring the calendar in sync with solar events. So Sept 1752 has a mix of Julian and Gregorian dates by which the 2nd is followed by the 14th (the 3rd through the 13th are absent).
Optionally, either the proleptic Gregorian calendar or the Julian calendar may be used exclusively. See --reform below.
-n , --months number
Sometimes Gregorian calendars using ordinal dates are referred to as Julian calendars. This can be confusing due to the many date related conventions that use Julian in their name: (ordinal) julian date, julian (calendar) date, (astronomical) julian date, (modified) julian date, and more. This option is named julian, because ordinal days are identified as julian by the POSIX standard. However, be aware that cal also uses the Julian calendar system. See DESCRIPTION above.
See DESCRIPTION above.
Single digits-only parameter (e.g., 'cal 2020')
Single string parameter (e.g., 'cal tomorrow' or 'cal August')
The special placeholders are accepted when parsing timestamp, "now" may be used to refer to the current time, "today", "yesterday", "tomorrow" refer to of the current day, the day before or the next day, respectively.
The relative date specifications are also accepted, in this case "+" is evaluated to the current time plus the specified time span. Correspondingly, a time span that is prefixed with "-" is evaluated to the current time minus the specified time span, for example '+2days'. Instead of prefixing the time span with "+" or "-", it may also be suffixed with a space and the word "left" or "ago" (for example '1 week ago').
Two parameters (e.g., 'cal 11 2020')
Three parameters (e.g., 'cal 25 11 2020')
A year starts on January 1. The first day of the week is determined by the locale or the --sunday and --monday options.
The week numbering depends on the choice of the first day of the week. If it is Sunday then the customary North American numbering is used, where 1 January is in week number 1. If it is Monday (-m) then the ISO 8601 standard week numbering is used, where the first Thursday is in week number 1.
The output colorization is implemented by terminal-colors.d(5) functionality. Implicit coloring can be disabled by an empty file
for the cal command or for all tools by
The user-specific $XDG_CONFIG_HOME/terminal-colors.d or $HOME/.config/terminal-colors.d overrides the global setting.
Note that the output colorization may be enabled by default, and in this case terminal-colors.d directories do not have to exist yet.
A cal command appeared in Version 6 AT&T UNIX.
The default cal output uses 3 September 1752 as the Gregorian calendar reform date. The historical reform dates for the other locales, including its introduction in October 1582, are not implemented.
Alternative calendars, such as the Umm al-Qura, the Solar Hijri, the Ge’ez, or the lunisolar Hindu, are not supported.
For bug reports, use the issue tracker at https://github.com/util-linux/util-linux/issues.
The cal command is part of the util-linux package which can be downloaded from Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.