Flexible aggregation for iCalendar feeds (RFC 5545).
The iCalender standard provides a common format for exchanging calendar information. This project aims to provide a library with a clean API for aggregating and processing iCalendar feeds. What you do with that processed information is up to you.
There are a number of existing aggregators, ranging from the closed-source Google Calendar to the open-source elmcity and Calagator. However, I want a library that can work as an iCalendar version of feedparser, and `code for a web-frontend`__ is just dead weight. It turns out that elmcity uses the icalendar parsing library, and there are a number of other pre-existing libraries:
- icalendar:
- A parsing library for Python 2.6 and 2.7 that spun off from Plone.
- RDFCalendar:
- A tool for converting between iCalendars and RDF.
- Py-Calendar:
- A sparsely documented library. There's a lot of code in here, but I think it reproduces a lot of stuff that could be borrowed from the standard library.
- pyICSParser:
- Another sparsely documented library. Again, there's a lot of code in here, but I think there's too much local code.
- PyCal:
- A (dead?) package. The PyPI links don't go anywhere.
Pycalendar is packaged with distutils, so you can install it in all the usual ways. Any of the following should work:
$ python setup.py install $ pip install pycalendar
The only dependency outside Python's standard library is pytz.
Test with nose:
$ nosetests --with-doctest --doctest-tests pycalendar
There is also a example aggregation script that prints aggregate feed to stdout and geographic positions to stderr. Run it with:
$ PYTHONPATH=. test/aggregate.py