cal(1) — Linux manual page


CAL(1)                        User Commands                       CAL(1)

NAME         top

       cal - display a calendar

SYNOPSIS         top

       cal [options] [[[day] month] year]

       cal [options] [timestamp|monthname]

DESCRIPTION         top

       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.

OPTIONS         top

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

       -v, --vertical
           Display using a vertical layout (aka ncal(1) mode).

           Display the proleptic Gregorian calendar exclusively. This
           option does not affect week numbers and the first day of the
           week. See --reform below.

       -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 --reform option.

           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.

       --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’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

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

               See DESCRIPTION above.

       -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). See
           the NOTES section for more details.

           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.

       -c, --columns=columns
           Number of columns to use. auto uses as many as fit the

       -h, --help
           Display help text and exit.

       -V, --version
           Print version and exit.

PARAMETERS         top

       Single digits-only parameter (e.g., 'cal 2020')
           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., 'cal tomorrow' or 'cal August')
           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 '+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')
           Denote the month (1 - 12) and year.

       Three parameters (e.g., 'cal 25 11 2020')
           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’s calendar is

NOTES         top

       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.

COLORS         top

       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

       The logical color names supported by cal are:

           The current day.

           The number of the week.

           The header of a month.

           Days that fall within the work-week.

           Days that fall outside the work-week.

       For example:

          echo -e 'weekend 35\ntoday 1;41\nheader yellow' >

HISTORY         top

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

BUGS         top

       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

       Alternative calendars, such as the Umm al-Qura, the Solar Hijri,
       the Ge’ez, or the lunisolar Hindu, are not supported.

SEE ALSO         top


REPORTING BUGS         top

       For bug reports, use the issue tracker at

AVAILABILITY         top

       The cal command is part of the util-linux package which can be
       downloaded from Linux Kernel Archive
       <>. This page
       is part of the util-linux (a random collection of Linux
       utilities) project. Information about the project can be found at
       ⟨⟩. If you have
       a bug report for this manual page, send it to This page was obtained from the
       project's upstream Git repository
       ⟨git://⟩ on
       2023-12-22. (At that time, the date of the most recent commit
       that was found in the repository was 2023-12-14.) If you discover
       any rendering problems in this HTML version of the page, or you
       believe there is a better or more up-to-date source for the page,
       or you have corrections or improvements to the information in
       this COLOPHON (which is not part of the original manual page),
       send a mail to

util-linux 2.39.594-1e0ad      2023-07-19                         CAL(1)