.\" Copyright (c) 1989, 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Kim Letkeman.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)cal.1	8.1 (Berkeley) 6/6/93
.\"
.TH CAL 1 "January 2018" "util-linux" "User Commands"
.SH NAME
cal \- display a calendar
.SH SYNOPSIS
.B cal
[options]
.RI [[[ day ] " month" ] " year" ]
.br
.B cal
[options]
.RI [ "timestamp" | "monthname" ]
.SH DESCRIPTION
.B cal
displays a simple calendar.  If no arguments are specified, the current
month is displayed.
.sp
The \fImonth\fR may be specified as a number (1-12), as a month name or as an
abbreviated month name according to the current locales.
.sp
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
.B 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).
.sp
Optionally, either the proleptic Gregorian calendar or the Julian calendar may
be used exclusively.
.RB See\  \-\-reform\  below.
.SH OPTIONS
.TP
\fB\-1\fR, \fB\-\-one\fR
Display single month output.
(This is the default.)
.TP
\fB\-3\fR, \fB\-\-three\fR
Display three months spanning the date.
.TP
\fB\-n , \-\-months\fR \fInumber\fR
Display \fInumber\fR of months, starting from the month containing the date.
.TP
\fB\-S, \fB\-\-span\fR
Display months spanning the date.
.TP
\fB\-s\fR, \fB\-\-sunday\fR
Display Sunday as the first day of the week.
.TP
\fB\-m\fR, \fB\-\-monday\fR
Display Monday as the first day of the week.
.TP
.B \-\-iso
Display the proleptic Gregorian calendar exclusively.
.RB See\  \-\-reform\  below.
.TP
\fB\-j\fR, \fB\-\-julian\fR
Use day-of-year numbering for all calendars.  These are also called ordinal
days.  Ordinal days range from 1 to 366.  This option does not switch from the
Gregorian to the Julian calendar system, that is controlled by the
.BR \-\-reform\  option.
.sp
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
.B cal
also uses the Julian calendar system.
.RB See\  DESCRIPTION\  above.
.TP
.BI \-\-reform\  val
This option sets the adoption date of the Gregorian calendar reform.  Calendar
dates previous to reform use the Julian calendar system.  Calendar dates
after reform use the Gregorian calendar system.  The argument
.I val
can be:
.RS
.IP \(bu 2
.I 1752
- sets 3 September 1752 as the reform date (default).
This is when the Gregorian calendar reform was adopted by the British Empire.
.IP \(bu 2
.I gregorian
- display Gregorian calendars exclusively.  This special placeholder sets the
reform date below the smallest year that
.B cal
can use; meaning all calendar output uses the Gregorian calendar system.  This
is called the proleptic Gregorian calendar, because dates prior to the calendar
system's creation use extrapolated values.
.IP \(bu 2
.I iso
- alias of
.IR gregorian .
The ISO 8601 standard for the representation of dates and times in information
interchange requires using the proleptic Gregorian calendar.
.IP \(bu 2
.I julian
- display Julian calendars exclusively.  This special placeholder sets the reform date above the largest year that
.B cal
can use; meaning all
calendar output uses the Julian calendar system.
.PP
.RB See\  \%DESCRIPTION\  above.
.RE
.TP
\fB\-y\fR, \fB\-\-year\fR
Display a calendar for the whole year.
.TP
\fB\-Y, \fB\-\-twelve\fR
Display a calendar for the next twelve months.
.TP
\fB\-w\fR, \fB\-\-week\fR[=\fInumber\fR]
Display week numbers in the calendar (US or ISO-8601).
.TP
\fB\-\-color\fR[=\fIwhen\fR]
Colorize the output.  The optional argument \fIwhen\fP
can be \fBauto\fR, \fBnever\fR or \fBalways\fR.  If the \fIwhen\fR argument is omitted,
it defaults to \fBauto\fR.  The colors can be disabled; for the current built-in default
see the \fB\-\-help\fR output.  See also the \fBCOLORS\fR section.
.TP
\fB\-V\fR, \fB\-\-version\fR
Display version information and exit.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display help text and exit.
.SH PARAMETERS
.TP
\fBSingle digits-only parameter (e.g. 'cal 2020')\fR
Specifies the \fIyear\fR to be displayed; note the year must be fully specified:
.B "cal 89"
will not display a calendar for 1989.
.TP
\fBSingle string parameter (e.g. 'cal tomorrow' or 'cal August')\fR
Specifies \fItimestamp\fR or a \fImonth name\fR (or abbreviated name) according to the current
locales.
.sp
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.
.sp
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').
.TP
\fBTwo parameters (e.g. 'cal 11 2020')\fR
Denote the \fImonth\fR (1 - 12) and \fIyear\fR.
.TP
\fBThree parameters (e.g. 'cal 25 11 2020')\fR
Denote the \fIday\fR (1-31), \fImonth and \fIyear\fR, and the day will be
highlighted if the calendar is displayed on a terminal.  If no parameters are
specified, the current month's calendar is displayed.
.SH NOTES
A year starts on January 1.  The first day of the week is determined by the
locale or the
.BR \-\-sunday \ and \ \-\-monday \ options.
.PP
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 then the ISO 8601 standard week numbering
is used, where the first Thursday is in week number 1.
.SH COLORS
Implicit coloring can be disabled as follows:
.RS

.br
.B touch /etc/terminal-colors.d/cal.disable
.br

.RE
See
.BR terminal-colors.d (5)
for more details about colorization configuration.
.SH BUGS
.PP
The default
.B 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.
.PP
Alternative calendars, such as the Umm al-Qura, the Solar Hijri, the Ge'ez,
or the lunisolar Hindu, are not supported.
.SH HISTORY
A cal command appeared in Version 6 AT&T UNIX.
.SH AVAILABILITY
The cal command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
