Run update-copyright.py
[pycalendar.git] / README
1 Flexible aggregation for iCalendar feeds (`RFC 5545`_).
2
3 The iCalender standard provides a common format for exchanging
4 calendar information.  This project aims to provide a library with a
5 clean API for aggregating and processing iCalendar feeds.  What you do
6 with that processed information is up to you.
7
8 There are a number of existing aggregators, ranging from the
9 closed-source `Google Calendar`_ to the open-source elmcity_ and
10 Calagator_.  However, I want a library that can work as an iCalendar
11 version of feedparser_, and `code for a web-frontend`__ is just dead
12 weight.  It turns out that elmcity uses the icalendar_ parsing
13 library, and there are a number of other pre-existing libraries:
14
15 icalendar_:
16   A parsing library for Python 2.6 and 2.7 that spun off from Plone_.
17 RDFCalendar_:
18   A tool for converting between iCalendars and RDF.
19 Py-Calendar_:
20   A sparsely documented library.  There's a lot of code in here, but I
21   think it reproduces a lot of stuff that could be borrowed from the
22   standard library.
23 pyICSParser_:
24   Another sparsely documented library.  Again, there's a lot of code
25   in here, but I think there's too much local code.
26 PyCal_:
27   A (dead?) package.  The PyPI links don't go anywhere.
28
29 Installation
30 ============
31
32 Pycalendar is packaged with distutils_, so you can install it in all
33 the usual ways.  Any of the following should work::
34
35   $ python setup.py install
36   $ pip install pycalendar
37
38 The only dependency outside Python's standard library is pytz_.
39
40 Testing
41 =======
42
43 Test with nose_::
44
45   $ nosetests --with-doctest --doctest-tests pycalendar
46
47 There is also a example aggregation script that prints aggregate feed
48 to stdout and geographic positions to stderr.  Run it with::
49
50   $ PYTHONPATH=. test/aggregate.py
51
52
53 .. _Calagator: http://calagator.org/
54 .. _distutils: http://docs.python.org/3/distutils/
55 .. _elmcity: http://elmcity.cloudapp.net/
56 .. _elmcity code: https://github.com/judell/elmcity
57 .. _feedparser: https://pypi.python.org/pypi/feedparser/
58 .. _Google Calendar: https://support.google.com/calendar/
59 .. _icalendar: http://icalendar.readthedocs.org/en/latest/
60 .. _nose: https://nose.readthedocs.org/en/latest/
61 .. _Plone: http://plone.org/
62 .. _Py-Calendar: https://pypi.python.org/pypi/Py-Calendar
63 .. _PyCal: https://pypi.python.org/pypi/PyCal
64 .. _pyICSParser: https://pypi.python.org/pypi/pyICSParser
65 .. _pytz: https://pypi.python.org/pypi/pytz/
66 .. _RDFCalendar: https://pypi.python.org/pypi/RDFCalendar
67
68 .. _RFC 5545: http://tools.ietf.org/html/rfc5545