A small example:
>>> from icalendar import Calendar
>>> import os
>>> directory = os.path.dirname(__file__)
>>> cal = Calendar.from_string(
... open(os.path.join(directory, 'small.ics'),'rb').read())
>>> cal
VCALENDAR({'VERSION': vText(u'2.0'), 'METHOD': vText(u'Request'), 'PRODID': vText(u'-//My product//mxm.dk/')})
>>> for component in cal.walk():
... component.name
'VCALENDAR'
'VEVENT'
'VEVENT'
>>> cal['prodid']
vText(u'-//My product//mxm.dk/')
>>> cal.decoded('prodid')
u'-//My product//mxm.dk/'
>>> first_event = cal.walk('vevent')[0]
>>> first_event['description'][:75]
u'This is a very long description that will be folded This is a very long des'
>>> first_event['summary']
vText(u'A second event')