Internet Calendaring and Scheduling (iCalendar) for Python

The icalendar package is a RFC 5545 compatible parser/generator for iCalendar files.


Homepage

https://icalendar.readthedocs.io

Code

https://github.com/collective/icalendar

Mailing list

https://github.com/collective/icalendar/issues

Dependencies

python-dateutil and pytz.

Compatible with

Python 2.7 and 3.4+

License

BSD


Quick Guide

To install the package, run:

pip install icalendar

You can open an .ics file and see all the events:

>>> import icalendar
>>> path_to_ics_file = "src/icalendar/tests/calendars/example.ics"
>>> with open(path_to_ics_file) as f:
...     calendar = icalendar.Calendar.from_ical(f.read())
>>> for event in calendar.walk('VEVENT'):
...     print(event.get("SUMMARY"))
New Year's Day
Orthodox Christmas
International Women's Day

Using this package, you can also create calendars from scratch or edit existing ones.

Versions and Compatibility

icalendar is a critical project used by many. It has been there for a long time and maintaining long-term compatibility with projects conflicts partially with providing and using the features that the latest Python versions bring.

Since we pour more effort into maintaining and developing icalendar, we split the project into two:

We expect the master branch with versions 5+ receive the latest updates and features, and the 4.x branch the subset of security and bug fixes only. We recommend migrating to later Python versions and also providing feedback if you depend on the 4.x features.