Skip to content

Instantly share code, notes, and snippets.

@juliushaertl
Last active March 18, 2018 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juliushaertl/4f676fd0e38e08771bcfac91dc33bd6c to your computer and use it in GitHub Desktop.
Save juliushaertl/4f676fd0e38e08771bcfac91dc33bd6c to your computer and use it in GitHub Desktop.
import json, requests
from icalendar import Calendar, Event, Alarm
from datetime import date, datetime, time, timedelta
from calendar import monthrange
from html.parser import HTMLParser
pars = HTMLParser()
addr = "19935"
year = 2018
date_start = "%d-01-01" % year
date_end= "%d-12-31" % year
url = "http://www.wuerzburg.de/de/themen/umwelt-verkehr/vorsorge-entsorgung/abfallkalender/32208.Abfallkalender.html"
url += "?_func=evList&_mod=events&ev[start]=%s&ev[end]=%s&ev[cat]=&ev[subcat]=&ev[addr]=%s" % (date_start, date_end, addr)
url += "&ev[search]=&_y=%d&_m=04&recon=4kbqs6bf1to9eqin1pepq7qq91&_dc=1460986965041" % (year)
cal = Calendar()
cal.add('prodid', '-//python wuemuell//jus//')
cal.add('version', '2.0')
dates = []
resp = requests.get(url=url)
data = json.loads(resp.text)
for d in data['contents']:
entry = data['contents'][d]
# print(entry['end'] + " " + pars.unescape(entry['title']))
event = Event()
d = datetime.strptime(str(entry['end']).split(' ')[0], "%Y-%m-%d")
event.add('dtstart', date(d.year, d.month, d.day))
event['summary'] = "%s" % pars.unescape(entry['title'])
alarm = Alarm()
alarm.add('TRIGGER', timedelta(hours=-14))
alarm.add('ACTION', "DISPLAY")
event.add_component(alarm)
cal.add_component(event)
print(cal.to_ical().decode('utf-8'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment