Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- # coding: utf-8
- '''
- Created on 21 sep 2014
- @author: Zettervall
- '''
- from icalendar import Calendar
- from icalendar import Event
- import xml.etree.ElementTree as ET
- from datetime import datetime
- from icalendar import LocalTimezone
- import pytz
- if __name__ == '__main__':
- xmlevents = ET.parse('/var/www/kalender/events.xml')
- locations = {u'Lidköping', u'Örslösa', u'Grästorp', u'Källby'}
- lt = LocalTimezone() # we append the local timezone to each time so that icalendar will convert
- # to UTC in the output
- for loc in locations:
- root = xmlevents.getroot()
- cal = Calendar()
- cal.add('prodid', 'www.pingstlidkoping.se')
- cal.add('version', '2.0')
- #print (root)
- for eventItem in root:
- dateStr = ''
- timeStr = '00:00:00'
- eventAdd = False
- if eventItem.attrib['web'] == "1":
- event = Event()
- for item in eventItem:
- if item.text != None:
- if item.tag == "title":
- event.add('summary', item.text)
- elif item.tag == "date":
- dateStr = item.text
- elif item.tag == "time":
- timeStr = item.text
- elif item.tag == "location":
- event.add('location', item.text)
- elif item.tag == "desc":
- event.add('description', item.text)
- elif item.tag == "group":
- if item.text == loc:
- eventAdd = True
- if eventAdd == True:
- d = datetime.strptime(dateStr, "%Y-%m-%d")
- t = datetime.strptime(timeStr, "%H:%M:%S").time()
- # TODO use tzinfo=pytz.utc
- event.add('dtstart', datetime.combine(d,t).replace(tzinfo=lt))
- event.add('dtend', datetime.combine(d,t).replace(tzinfo=lt))
- #event.add('dtstart', datetime.strptime(dateStr + ' ' + timeStr, "%Y-%m-%d %H:%M:%S"))
- #event.add('dtend', datetime.strptime(dateStr + ' ' + timeStr, "%Y-%m-%d %H:%M:%S"))
- cal.add_component(event)
- f = open(loc + '.ics', mode='wb')
- f.write(cal.to_ical())
- f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement