export-events/main.py
2025-04-04 09:01:53 +00:00

48 lines
1.9 KiB
Python
Executable File

from intra import IntraAPIClient
import json
from icalendar import Calendar, Event, vCalAddress, vText
from datetime import datetime, timedelta
from pytz import timezone
import pytz
def utc_to_time(naive, timezone="Europe/Istanbul"):
return naive.replace(tzinfo=pytz.utc).astimezone(pytz.timezone(timezone))
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('summary', event['name'])
ical_event.add('description', event['description'])
ical_event.add('dtstart',
utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]), "Europe/Amsterdam"))
ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['end_at'].split('.')[0]), "Europe/Amsterdam"))
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('summary', event['corrector']['login'] + "->" + event['correcteds'][0]['login'] )
ical_event.add('description', event['corrector']['login'] + " will evaluate " + event['correcteds'][0]['login'])
ical_event.add('dtstart', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]), "Europe/Amsterdam"))
ical_event.add('dtend', utc_to_time(datetime.fromisoformat(event['begin_at'].split('.')[0]) + timedelta(minutes=30), "Europe/Amsterdam"))
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)