def calendar(): from hashlib import md5 # Calendar cal = Calendar() with open('calendars.cfg') as f: c = f.readline() events = [] while c: cid, cname = c.split(',') events += cal.get_events(cid.strip(), cname.strip()) c = f.readline() # Remove duplicates, only for 2 cals single_events = {} for e in events: key = '' if e['name']: key += e['name'].encode('ascii', 'ignore') if e['start']: key += e['start'].encode('ascii', 'ignore') key = md5(key).hexdigest() if key not in single_events: single_events[key] = e else: single_events[key]['calendar'] = 'all' events = sorted(single_events.values(), key=lambda event: event['start']) data = { 'events': events } res = make_response(json.dumps(data)) res.mimetype = 'application/json' res.headers['Access-Control-Allow-Origin'] = '*' return res