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.


The command takes the following form:

cal [-smjy13 ] [[ month ] year ] 
Linux cal command


Specify switches to modify the command output:

  • -1: Display a single month output. This is the default.
  • -3: Display previous, current, and 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 are one-based, numbered from January 1).
  • -y: Display a calendar for the current year.

Usage Notes

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

A year starts on January 1.

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