Learn the Linux Command - cal

Display a calendar within your shell session

The Linux cal program displays a simple calendar. If arguments are not specified, the current month is displayed.


Linux cal command

The command takes the following form:

cal [-smjy13 ] [[ month ] year ] 


Specify switches to modify the command's output:

  • -1: Display single month output. (This is the default.)
  • -3: Display prev/current/next month output.
  • -s: Display Sunday as the first day of the week. (This is the default.)
  • -m: Display Monday as the first day of the week.
  • -j: Display Julian dates (days one-based, numbered from Jan. 1).
  • -y: Display a calendar for the current year.

Usage Notes

A single parameter specifies the year (1 - 9999) to be displayed; note the year must be fully specified: cal 89 will not display a calendar for 1989. Two parameters denote the month (1 - 12) and year. If no parameters are specified, the current month's calendar is displayed.

A year starts on Jan 1.

The Gregorian Reformation is assumed to have occurred on Sept. 3, 1752. By this time, most countries had recognized the reformation (although a few did not recognize it until the early 1900's.) Ten days following that date were eliminated by the reformation, so the calendar for that month is a bit unusual.