Fast, yet simple, iCalendar reader with excellent recurrence support. RFC 5545 compliant.
Documentation: https://jorricks.github.io/iCal-library/
Source Code: https://github.com/Jorricks/iCal-library
client.load_ics_file("<my_file>").timeline
' to show all your events of that week.python-dateutil
and pendulum
.Python 3.8+
iCal-library uses two major libraries for their date and time utilities:
To use iCal-library, first install it using pip:
pip install iCal-library
A simple example. Please look in the docs for more examples.
from ical_library import client
calendar = client.parse_icalendar_file("/home/user/my_icalendar.ics")
print(calendar.events)
print(calendar.todos)
print(calendar.journals)
print(calendar.free_busy_list)
print(calendar.time_zones)
Note: iCal-library is fully Debugger compliant, meaning it is very easy to use a debugger with this project. It will be much faster to see all the different attributes and functions from inside a Python debugger. If you are unsure whether your IDE supports it, take a look here under the sections 'IDEs with Debug Capabilities'.
I first tried several libraries for iCalendar events. However, none of them supported recurring events as well as they should be. For some libraries my calendar loaded but then didn't show my recurring events, while others simply threw stacktraces trying to load it. Furthermore, I noticed that my calendar (with over 2000 events) took ages to load. After traversing the code of the other libraries I decided I wanted to build my own. With some key principles: