| cal | |
|---|---|
| Developer | Charles Dye |
| Initial release | November 3, 1971; 54 years ago (1971-11-03) |
| Written in | Plan 9:C FreeDOS:x86 assembly language |
| Operating system | Unix,Unix-like,Plan 9,Inferno,MSX-DOS,FreeDOS |
| Platform | Cross-platform |
| Type | Command |
| License | util-linux:BSD-4-Clause FreeDOS:Freeware /Source-available software Plan 9:MIT License |
cal is ashellcommand that prints acalendar asASCII text for one or moremonths. With nocommand-line options, it prints a calendar for the current month.
It is specified in theSingle UNIX Specification and available on variousoperating systems includingUnix,Plan 9,Inferno andUnix-like systems such asLinux. It was present in1st Edition Unix. Acal command is also part ofASCII'sMSX-DOS2 Tools forMSX-DOS version 2.[1] It is also available forFreeDOS (developed by Charles Dye) in which it supports the Gregorian calendar (new style) and may be distributed freely, with or without source.[2]
The following prints the current month calendar which in this case happens to be Feb. 2024.
$cal February 2024 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
The following prints a calendar for the previous, current and next month.
$cal-3 June 2022 July 2022 August 2022Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 1 2 1 2 3 4 5 6 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 1312 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 2019 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 2726 27 28 29 30 24 25 26 27 28 29 30 28 29 30 31
The following prints a calendar for each month of 2023.
$cal2023 2023 January February MarchSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 1115 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 1822 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 2529 30 31 26 27 28 26 27 28 29 30 31 April May JuneSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 6 1 2 3 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 1716 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 2423 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 3030 July August SeptemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 1616 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 2323 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 3030 31 October November DecemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 2 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 915 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 1622 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 2329 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31
The following prints a calendar for the June 2023. A month is specified by its number (1-12) in the year.
$cal62023 June 2023Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 1718 19 20 21 22 23 2425 26 27 28 29 30
$cal91752 September 1752 S M Tu W Th F S 1 2 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30
TheGregorian calendar reform was adopted by theKingdom of Great Britain, includingits possessions in North America (later to become eastern USA and Canada), in September 1752. As a result, the September 1752 cal shows the adjusted days missing. This month was the official (British) adoption of the Gregorian calendar from the previously usedJulian calendar. This has been documented in the man pages for Sun Solaris as follows. "An unusual calendar is printed for September 1752. That is the month when 11 days were skipped to make up for lack of leap year adjustments."[3] ThePlan 9 from Bell Labs manual states: "Trycal sep 1752." Date of adoption of the reformdiffers widely between countries so, for some users, this feature may be a bug. Special handling of 1752 is known to have appeared as early as the first edition of theUnix Programmer's Manual in 1971.[4]
cal: print a calendar – Shell and Utilities Reference,The Single UNIX Specification, Version 5 fromThe Open Group