Demystifying Python Calendar Module with Examples for beginners
Table of Contents
- Introduction
- Creating Calendar object from class Calendar
- Calendar class Methods
- Calendar class itermonthdates() method
- Calendar class itermonthdays() method
- Calendar class itermonthdays2() method
- Calendar class itermonthdays3() method
- Calendar class itermonthdays4() method
- Calendar class iterweekdays() method
- Calendar class monthdatescalendar() method
- Calendar class monthdays2calendar() method
- Calendar class monthdayscalendar() method
- Calendar class yeardatescalendar() method
- Calendar class yeardays2calendar() method
- Calendar class yeardayscalendar() method
- Conclusion
Introduction
Python Calendar module provides methods for better-representing dates, weekdays, and months. The class Calendar
is quite helpful and displays all information to the user while working with days and calendar problems. In this post, we’ll solve and explain examples of all the methods provided in class Calendar
.
Below is a snippet of including the calendar module into your script.
import calender
Creating Calendar object from class Calendar
creating a calendar object
calendar.Calendar(firstweekday=0)
firstweekday
the argument is for setting starting weekday of month 0 is for Monday and 6 is for Sunday.
We can also update the firstweekday
by assigning value to it show below
calendar.Calendar(firstweekday=0) firstweekday=6
Calendar module also provides getter and setter function to assign a new value to firstweekday
.
calendar.Calendar(firstweekday=0) firstweekday=6 print(my_calendar.getfirstweekday()) #PYTHON OUTPUT 6 ---------------------- calendar.Calendar(firstweekday=0) my_calendar.setfirstweekday(3) print(my_calendar.getfirstweekday()) #PYTHON OUTPUT 3
Calendar class Methods
Calendar class itermonthdates() method
The itermonthdates()
method takes two arguments year, month, and returns a generator which contains
DateTime object.
year = 2020 month = 01 for date in my_calendar.itermonthdates(year, month): print(date) #PYTHON OUTPUT 2020-01-27 2020-01-28 2020-01-29 2020-01-30 2020-01-31 2020-02-01 2020-02-02 2020-02-03 2020-02-04 2020-02-05 2020-02-06

Using Python Calendar Module itermonthdates() method to iterate over dates
In the above output, we are getting incorrect dates because some dates belong to the first month, the second month, and others
belong to the third-month march.
To resolve this issue and get dates related to the given month follow the below example.
year = 2020 month = 01 for date in my_calendar.itermonthdates(year, month): if date.month == month: print(date) #PYTHON OUTPUT 2020-02-01 2020-02-02 2020-02-03 2020-02-04 ... ... ... ... 2020-02-26 2020-02-27 2020-02-28 2020-02-29

The method itermonthdates() loops over the dates of a particular month
Now we get dates related to the month Feb.
To get dates in form of a list wrap my_calendar.itermonthdates(year, month)
generator inside
list
a function and this will return us a list of datetime
objects.
year = 2020 month = 2 print(list(my_calendar.itermonthdates(year, month))) #PYTHON OUTPUT [datetime.date(2020, 1, 27), datetime.date(2020, 1, 28), datetime.date(2020, 1, 29), datetime.date(2020, 1, 30), datetime.date(2020, 1, 31), datetime.date(2020, 2, 1), datetime.date(2020, 2, 2), datetime.date(2020, 2, 3), .... .... datetime.date(2020, 2, 27), datetime.date(2020, 2, 28), datetime.date(2020, 2, 29), datetime.date(2020, 3, 1)]

Converting date objects to list in Python calendar module
Calendar class itermonthdays() method
itermonthdays()
takes two arguments year, month, and return generator object for dates. This again can be
converted to a list by using list()
a function.
year = 2020 month = 2 print(list(my_calendar.itermonthdays(year, month))) #PYTHON OUTPUT [0, 0, 0, 0, 0, 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, 0]
Calendar class itermonthdays2() method
itermonthdays2()
takes two arguments year, month, and return generator object for date and weekday number
in form of a tuple.
year = 2020 month = 2 for date in my_calendar.itermonthdays2(year, month): print(date) #PYTHON OUTPUT (0, 0) (0, 1) (0, 2) .... .... (27, 3) (28, 4) (29, 5) (0, 6)
Calendar class itermonthdays3() method
itermonthdays3()
is similar to the above itermonthdays()
and itermonthdays2()
methods
but the difference is that this method displays the date, month, and also year in the tuple.
year = 2020 month = 2 for date in my_calendar.itermonthdays3(year, month): print(date) #PYTHON OUTPUT (2020, 1, 27) (2020, 1, 28) (2020, 1, 29) (2020, 1, 30) (2020, 1, 31) (2020, 2, 1) (2020, 2, 2) .... .... .... (2020, 2, 25) (2020, 2, 26) (2020, 2, 27) (2020, 2, 28) (2020, 2, 29) (2020, 3, 1)

The itermonthdays3() method iterates over the dates and returns a tuple
Calendar class itermonthdays4() method
itermonthdays4()
returns list where each item is a tuple consisting of four elements representing a year,
month, date, and weekday number.
year = 2020 month = 2 for date in my_calendar.itermonthdays4(year, month): print(date) #PYTHON OUTPUT (2020, 1, 27, 0) (2020, 1, 28, 1) (2020, 1, 29, 2) (2020, 1, 30, 3) (2020, 1, 31, 4) (2020, 2, 1, 5) (2020, 2, 2, 6) (2020, 2, 3, 0) .... .... .... (2020, 2, 25, 1) (2020, 2, 26, 2) (2020, 2, 27, 3) (2020, 2, 28, 4) (2020, 2, 29, 5) (2020, 3, 1, 6)

The itermonthdays4() method iterates over the dates and returns tuple with four items
Calendar class iterweekdays() method
iterweekdays()
return number of weekday and iterates over weekdays. The first-weekday number can be
specified
using setfirstweekday()
method. Which iterates weekdays starting from the first weekday specified.
my_calendar.setfirstweekday(3) for date in my_calendar.iterweekdays(): print(date) #PYTHON OUTPUT 3 4 5 6 0 1 2
Calendar class monthdatescalendar() method
monthdatescalendar()
returns multiple lists of date object which contain dates of weeks in a given month.
year = 2020 month = 2 for date in my_calendar.monthdatescalendar(year, month): print("\n") print(date) #PYTHON OUTPUT [datetime.date(2020, 1, 27), datetime.date(2020, 1, 28), datetime.date(2020, 1, 29), datetime.date(2020, 1, 30), datetime.date(2020, 1, 31), datetime.date(2020, 2, 1), datetime.date(2020, 2, 2)] .... .... .... [datetime.date(2020, 2, 24), datetime.date(2020, 2, 25), datetime.date(2020, 2, 26), datetime.date(2020, 2, 27), datetime.date(2020, 2, 28), datetime.date(2020, 2, 29), datetime.date(2020, 3, 1)]

The monthdatescalendar() method returns list of DateTime object of the year
Calendar class monthdays2calendar() method
monthdays2calendar()
returns a list of items where each item is a tuple the first element of that item
represents a day in number form and the second item represents weekday number.
year = 2020 month = 2 for date in my_calendar.monthdays2calendar(year, month): print("\n") print(date) #PYTHON OUTPUT [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 5), (2, 6)] [(3, 0), (4, 1), (5, 2), (6, 3), (7, 4), (8, 5), (9, 6)] [(10, 0), (11, 1), (12, 2), (13, 3), (14, 4), (15, 5), (16, 6)] [(17, 0), (18, 1), (19, 2), (20, 3), (21, 4), (22, 5), (23, 6)] [(24, 0), (25, 1), (26, 2), (27, 3), (28, 4), (29, 5), (0, 6)]
Calendar class monthdayscalendar() method
monthdayscalendar()
returns a list of items where each item is number representing a day.
year = 2020 month = 2 for date in my_calendar.monthdayscalendar(year, month): print("\n") print(date) #PYTHON OUTPUT [0, 0, 0, 0, 0, 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, 0]

The monthdayscalendar() method returns days represented by day number
Calendar class yeardatescalendar() method
yeardatescalendar()
returns the date object for each of the days in that given year. It takes a year as an
argument.
year = 2020 for date in my_calendar.yeardatescalendar(year): print("\n") print(date) #PYTHON OUTPUT [[[datetime.date(2019, 12, 30), datetime.date(2019, 12, 31), datetime.date(2020, 1, 1), datetime.date(2020, 1, 2), datetime.date(2020, 1, 3), datetime.date(2020, 1, 4), datetime.date(2020, 1, 5)], [datetime.date(2020, 1, 6), ... ... ... datetime.date(2020, 1, 7), datetime.date(2020, 1, 8), datetime.date(2020, 1, 9), datetime.date(2020, 1, 10), ]]],
Calendar class yeardays2calendar() method
yeardays2calendar()
returns a list of items where each item is a tuple and its first item contains day and
second weekday in number format.
year = 2020 for date in my_calendar.yeardays2calendar(year): print("\n") print(date)

The yeardays2calendar() returns day and weekend in number format
Calendar class yeardayscalendar() method
yeardayscalendar()
returns week vise list of all days in a month at a given year.
year = 2020 for date in my_calendar.yeardayscalendar(year): print("\n") print(date)

The yeardayscalendar() return all days in a given month
Conclusion
You have reached the end of our post on Demystifying Python Calendar Module with Examples for beginners. We appreciate you for going through this post. If you find anything difficult with our way of
explanation please leave us a comment and if you have enjoyed reading our post then help us grow by sharing this post
link. We Thank You With All Our Heart.




