Python calendar.prcal() Function



The Python calendar.prcal() function prints the calendar for an entire year to the standard output.

This function is useful when you want to display a formatted yearly calendar directly in the console.

Syntax

Following is the syntax of the Python calendar.prcal() function −

calendar.prcal(year, w=2, l=1, c=6, m=3)

Parameters

This function accepts the following parameters −

  • year: The year for which the calendar is to be printed.
  • w (optional): The width of each date column (default is 2).
  • l (optional): The number of lines per week (default is 1).
  • c (optional): The space between month columns (default is 6).
  • m (optional): The number of months per row (default is 3).

Return Value

This function does not return anything; it directly prints the formatted calendar.

Example: Printing a Yearly Calendar

In this example, we print the calendar for the year 2025 using the calendar.prcal() function −

import calendar

# Print calendar for the year 2025
calendar.prcal(2025)

The output will be a full-year calendar formatted similarly to the calendar.calendar() function −

          2025

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                      1  2                      1  2
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       3  4  5  6  7  8  9
13 14 15 16 17 18 19      10 11 12 13 14 15 16      10 11 12 13 14 15 16
20 21 22 23 24 25 26      17 18 19 20 21 22 23      17 18 19 20 21 22 23
27 28 29 30 31            24 25 26 27 28            24 25 26 27 28 29 30
                                                    31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6                1  2  3  4                         1
 7  8  9 10 11 12 13       5  6  7  8  9 10 11       2  3  4  5  6  7  8
14 15 16 17 18 19 20      12 13 14 15 16 17 18       9 10 11 12 13 14 15
21 22 23 24 25 26 27      19 20 21 22 23 24 25      16 17 18 19 20 21 22
28 29 30                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30
...

Example: Customizing Calendar Layout

We can adjust the width, spacing, and number of months per row using optional parameters −

import calendar

# Print calendar with custom formatting
calendar.prcal(2025, w=3, l=1, c=10, m=4)

This will modify the spacing between months and adjust the alignment of days as shown below −

                                                                   2025

          January                              February                              March                                April
Mon Tue Wed Thu Fri Sat Sun          Mon Tue Wed Thu Fri Sat Sun          Mon Tue Wed Thu Fri Sat Sun          Mon Tue Wed Thu Fri Sat Sun
          1   2   3   4   5                                1   2                                1   2                1   2   3   4   5   6
  6   7   8   9  10  11  12            3   4   5   6   7   8   9            3   4   5   6   7   8   9            7   8   9  10  11  12  13
 13  14  15  16  17  18  19           10  11  12  13  14  15  16           10  11  12  13  14  15  16           14  15  16  17  18  19  20
 20  21  22  23  24  25  26           17  18  19  20  21  22  23           17  18  19  20  21  22  23           21  22  23  24  25  26  27
 27  28  29  30  31                   24  25  26  27  28                   24  25  26  27  28  29  30           28  29  30
                                                                           31
...

Example: Printing a Compact Calendar

By reducing the number of months per row, we can create a more compact calendar −

import calendar

# Print a compact calendar with 6 months per row
calendar.prcal(2025, m=6)

This results in fewer rows but a wider layout −

                                                                         2025

      January                   February                   March                     April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                      1  2                      1  2          1  2  3  4  5  6                1  2  3  4                         1
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       3  4  5  6  7  8  9       7  8  9 10 11 12 13       5  6  7  8  9 10 11       2  3  4  5  6  7  8
13 14 15 16 17 18 19      10 11 12 13 14 15 16      10 11 12 13 14 15 16      14 15 16 17 18 19 20      12 13 14 15 16 17 18       9 10 11 12 13 14 15
20 21 22 23 24 25 26      17 18 19 20 21 22 23      17 18 19 20 21 22 23      21 22 23 24 25 26 27      19 20 21 22 23 24 25      16 17 18 19 20 21 22
27 28 29 30 31            24 25 26 27 28            24 25 26 27 28 29 30      28 29 30                  26 27 28 29 30 31         23 24 25 26 27 28 29
...

Example: Printing a Wide Calendar

To create a more spaced-out calendar, we can increase the column width and spacing −

import calendar

# Print a wide-spaced calendar
calendar.prcal(2025, w=4, c=12)

This will produce a calendar with more space between days and months −

                                                            2025

             January                                       February                                       March
Mon  Tue  Wed  Thu  Fri  Sat  Sun             Mon  Tue  Wed  Thu  Fri  Sat  Sun             Mon  Tue  Wed  Thu  Fri  Sat  Sun
            1    2    3    4    5                                        1    2                                        1    2
  6    7    8    9   10   11   12               3    4    5    6    7    8    9               3    4    5    6    7    8    9
 13   14   15   16   17   18   19              10   11   12   13   14   15   16              10   11   12   13   14   15   16
 20   21   22   23   24   25   26              17   18   19   20   21   22   23              17   18   19   20   21   22   23
 27   28   29   30   31                        24   25   26   27   28                        24   25   26   27   28   29   30
                                                                                             31

              April                                          May                                           June
Mon  Tue  Wed  Thu  Fri  Sat  Sun             Mon  Tue  Wed  Thu  Fri  Sat  Sun             Mon  Tue  Wed  Thu  Fri  Sat  Sun
       1    2    3    4    5    6                              1    2    3    4                                             1
  7    8    9   10   11   12   13               5    6    7    8    9   10   11               2    3    4    5    6    7    8
 14   15   16   17   18   19   20              12   13   14   15   16   17   18               9   10   11   12   13   14   15
 21   22   23   24   25   26   27              19   20   21   22   23   24   25              16   17   18   19   20   21   22
 28   29   30                                  26   27   28   29   30   31                   23   24   25   26   27   28   29
                                                                                             30
...
python_date_time.htm
Advertisements