Section (1) cal

Linux manual pages Section 1  


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 −−reformbelow.


−1, −−one

Display single month output. (This is the default.)

−3, −−three

Display three months spanning the date.

−n , −−months number

Display number of months, starting from the month containing the date.

−S, −−span

Display months spanning the date.

−s, −−sunday

Display Sunday as the first day of the week.

−m, −−monday

Display Monday as the first day of the week.


Display the proleptic Gregorian calendar exclusively. See −−reformbelow.

−j, −−julian

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 −−reformoption.

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 DESCRIPTIONabove.

−−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 val can be:

  • 1752 - sets 3 September 1752 as the reform date (default). This is when the Gregorian calendar reform was adopted by the British Empire.

  • gregorian - display Gregorian calendars exclusively. This special placeholder sets the reform date below the smallest year that 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_zsingle_quotesz_s creation use extrapolated values.

  • iso - alias of gregorian. The ISO 8601 standard for the representation of dates and times in information interchange requires using the proleptic Gregorian calendar.

  • julian - display Julian calendars exclusively. This special placeholder sets the reform date above the largest year that cal can use; meaning all calendar output uses the Julian calendar system.


−y, −−year

Display a calendar for the whole year.

−Y, −−twelve

Display a calendar for the next twelve months.

−w, −−week[=number]

Display week numbers in the calendar (US or ISO-8601).


Colorize the output. The optional argument when can be auto, never or always. If the when argument is omitted, it defaults to auto. The colors can be disabled; for the current built-in default see the −−help output. See also the COLORS section.

−V, −−version

Display version information and exit.

−h, −−help

Display help text and exit.


Single digits-only parameter (e.g. _zsingle_quotesz_cal 2020_zsingle_quotesz_)

Specifies the year to be displayed; note the year must be fully specified: cal 89 will not display a calendar for 1989.

Single string parameter (e.g. _zsingle_quotesz_cal tomorrow_zsingle_quotesz_ or _zsingle_quotesz_cal August_zsingle_quotesz_)

Specifies timestamp or a month name (or abbreviated name) according to the current locales.

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 _zsingle_quotesz_+2days_zsingle_quotesz_. Instead of prefixing the time span with + or -, it may also be suffixed with a space and the word left or ago (for example _zsingle_quotesz_1 week ago_zsingle_quotesz_).

Two parameters (e.g. _zsingle_quotesz_cal 11 2020_zsingle_quotesz_)

Denote the month (1 - 12) and year.

Three parameters (e.g. _zsingle_quotesz_cal 25 11 2020_zsingle_quotesz_)

Denote the day (1-31), month and year, and the day will be highlighted if the calendar is displayed on a terminal. If no parameters are specified, the current month_zsingle_quotesz_s calendar is displayed.


A year starts on January 1. The first day of the week is determined by the locale or the −−sundayand−−mondayoptions.

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.


Implicit coloring can be disabled as follows:

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

See terminal-colors.d(5) for more details about colorization configuration.


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_zsingle_quotesz_ez, or the lunisolar Hindu, are not supported.


A cal command appeared in Version 6 AT&T UNIX.


The cal command is part of the util-linux package and is available from

  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.


    (#)cal.1 8.1 (Berkeley) 6/6/93