from intra import IntraAPIClient import json from icalendar import Calendar, Event, vCalAddress, vText from datetime import datetime, timedelta cal = Calendar() cal.add('prodid', '-//Codam Events//Duinvoetje.nl//') cal.add('version', '2.0') ic = IntraAPIClient() response = ic.get("users/187348/events_users") for entry in response.json(): ical_event = Event() event = entry['event'] ical_event.add('uid', event['id']) ical_event.add('dtstamp', datetime.now()) ical_event.add('name', event['name']) ical_event.add('description', event['description']) ical_event.add('dtstart', datetime.fromisoformat(event['begin_at'].split('.')[0])) ical_event.add('dtend', datetime.fromisoformat(event['end_at'].split('.')[0])) ical_event.add('location', event['location']) cal.add_component(ical_event) response2 = ic.get("users/187348/scale_teams") for entry in response2.json(): ical_event = Event() event = entry ical_event.add('uid', event['id']) ical_event.add('dtstamp', datetime.now()) ical_event.add('name', "Evaluation" ) ical_event.add('description', event['corrector']['login'] + " will evaluate " + event['correcteds'][0]['login']) ical_event.add('dtstart', datetime.fromisoformat(event['begin_at'].split('.')[0])) ical_event.add('dtend', datetime.fromisoformat(event['begin_at'].split('.')[0]) + timedelta(minutes=30)) ical_event.add('location', "Codam Campus") cal.add_component(ical_event) print(cal.to_ical().decode('UTF-8')) # print("="*20) # print(json.dumps(response2.json(), indent=2)) # print("="*20)