2 # Convert iCalendar data to plaintext (very basic, don't rely on it :)
3 # Requirements: python-vobject (http://vobject.skyhouseconsulting.com/)
4 # Thomas Perl <thpinfo.com>; Fri, 14 Nov 2008 12:26:42 +0100
5 # Website: http://thpinfo.com/2008/urlwatch/
7 def ical2text(ical_string
):
10 if isinstance(ical_string
, unicode):
11 parsedCal
= vobject
.readOne(ical_string
)
14 parsedCal
= vobject
.readOne(ical_string
)
16 parsedCal
= vobject
.readOne(ical_string
.decode('utf-8', 'ignore'))
18 for event
in parsedCal
.getChildren():
19 if event
.name
== 'VEVENT':
20 if hasattr(event
, 'dtstart'):
21 start
= event
.dtstart
.value
.strftime('%F %H:%M')
23 start
= 'unknown start date'
25 if hasattr(event
, 'dtend'):
26 end
= event
.dtend
.value
.strftime('%F %H:%M')
33 date_str
= '%s -- %s' % (start
, end
)
35 result
.append('%s: %s' % (date_str
, event
.summary
.value
))
37 return '\n'.join(result
)
39 if __name__
== '__main__':
42 if len(sys
.argv
) == 2:
43 print ical2text(open(sys
.argv
[1]).read())
45 print 'Usage: %s icalendarfile.ics' % (sys
.argv
[0])