.\" 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 "June 2015" "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.
.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
\fB\-j\fR, \fB\-\-julian\fR
Display Julian dates (days one-based, numbered from January 1).
.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.
.PP
The week numbering depends on the choice of the first day of the week.  If Sunday
(the default) is used for the first day of the week, then the customary North
American numbering will be used, i.e. the first Sunday of the year starts the
first week.  If Monday is selected, then the ISO-8601 standard week numbering
is used, where the first Thursday of the year is in week number 1.
.SH COLORS
Implicit coloring can be disabled as follows:
.RS

.br
.BI "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
.B cal
program uses the 3rd of September 1752 as the date of the Gregorian calendar
reformation -- that is when it happened in Great Britain and its colonies
(including what is now the USA).  Starting at that date, eleven days were eliminated
by this reformation, so the calendar for that month is rather unusual.
The actual historical dates at which the calendar reform happened in all the
different countries (locales) are ignored.
.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
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
