Master the cal Command: Your Linux Calendar

Plan with precision using the cal command!

What is the cal Command?

Imagine your Linux terminal as an office desk, and the cal command is your trusty wall calendar, displaying a neatly formatted monthly calendar. Type cal to see the current month’s calendar, like July 2025, with today’s date highlighted. It’s perfect for quick planning, scripting, or checking dates in the Linux world.

Why cal is Essential

Quick Planning

View monthly calendars to plan tasks or events.

Scripting Aid

Use cal in scripts to display or log calendars.

Historical Reference

Check calendars for any year or month, past or future.

Syntax and Options

The cal command is straightforward yet versatile:

cal [options] [month] [year]
        

Key options:

  • -1: Display one month (default).
  • -3: Show previous, current, and next month.
  • -y: Display the entire year’s calendar.
  • -j: Use Julian dates (day of year, 1-365/366).

Real-World Examples

1. Display Current Month

Type this:

cal
        

Output (for July 2025):

   July 2025       
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 30 31        
        

Shows the current month with today’s date highlighted (if supported).

2. View a Specific Month

Check December 2025:

cal 12 2025
        

Output:

 December 2025      
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 30 31           
        

3. Display Three Months

View previous, current, and next month:

cal -3
        

Output (for June, July, August 2025):

     June 2025              July 2025              August 2025       
Su 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  5                  1  2  
 8  9 10 11 12 13 14    6  7  8  9 10 11 12    3  4  5  6  7  8  9  
15 16 17 18 19 20 21   13 14 15 16 17 18 19   10 11 12 13 14 15 16  
22 23 24 25 26 27 28   20 21 22 23 24 25 26   17 18 19 20 21 22 23  
29 30                  27 28 29 30 31        24 25 26 27 28 29 30  
                                              31                    
        

4. Yearly Calendar

View the entire year:

cal -y 2025
        

Output: Displays all 12 months of 2025 (abridged for brevity).

5. Scripting with cal

Log a calendar in a script:

#!/bin/bash
cal > calendar.txt
echo "Calendar for $(date +%B\ %Y) saved to calendar.txt"
        

Saves the current month’s calendar to a file.

Advanced Usage

Elevate your cal skills with these techniques:

  • Julian Dates: Use cal -j to show day-of-year numbers, e.g., July 3 as day 184 in 2025.
  • Specific Year: Check historical or future years, e.g., cal 2000 for the year 2000.
  • Piping Output: Combine with grep to find specific days, e.g., cal 12 2025 | grep 25 to locate Christmas.
  • Script Integration: Use cal with date for dynamic planning, e.g., cal $(date +%m) $(date +%Y) for the current month.

Example: Find weekends in July 2025:

cal 7 2025 | grep -E 'Sa|Su'
        

Highlights weekend dates for planning.

Pro Tips

Quick Yearly View: Use cal -y for annual planning or scheduling.

Script Automation: Combine cal with cron to log monthly calendars.

Alias Shortcut: Set alias calendar='cal -3' for a three-month view.

Common Mistakes to Avoid

Avoid these pitfalls with cal:

  • Incorrect Arguments: Specify month and year correctly (e.g., cal 12 2025, not cal 2025 12).
  • Output Overload: Avoid cal -y in scripts if only a single month is needed, as it outputs the entire year.
  • Terminal Width: Ensure your terminal is wide enough for multi-month displays like cal -3 to avoid formatting issues.

Explore More Linux Commands

Master Linux with our expert guides!