Manually extract the timetable as HTML from the IN4SIT webpage and parse it into a csv. The file generated should be a .csv which can be imported into Google Calendar.
There are constant updates and changes to the timetable. Import the csv file into a NEW CALENDAR. Updating it is as simple as deleting the old calendar and re-importing the updated csv.
- Install python lmao
- Download convert.py and create a 'source.txt' file in the same directory
- Log into IN4SIT
- Open the shortcut in the same browser
- Open Inspect Element (CTRL + SHIFT + I)
- Copy the <body> and paste it in 'source.txt'
- Double click 'run.bat'
- Import 'output.csv' into Google Calendar
- Magic
- Clean up all the useless HTML tags and keeps the important bits (run spellchecks here as well)
- Split data by course, then do further cleaning to remove headers and labels
- Extract important info into their own global variables
- Use the variables to construct a calendar event (in .csv format)
- Merge all the lists and output as a .csv file
I made it. Thanks to Google and stackoverflow for answering my questions. No thanks to the school for not having an option to export as CSV/ICS.
! Remember: Surround data with " if it has commas
Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description,Location,Private
Final exam,05/30/2020,10:00 AM,05/30/2020,1:00 PM,False,50 multiple choice questions and two essay questions,"Columbia, Schermerhorn 614",True
<course_info> // breaks down into <course_id> - <name_of_course>
// can just ignore, it's all probably enrolled // number up to 2dp for some reason // graded or pass/fail
// at the start of each component <Class_Nbr> // unique id for the class
// repeats
<Days_and_Times> // time of the class
// usually the same, Online or room id in the form of -<room_id> like SP-SR2E
// name of instructor in full caps, trailing .
to clean up
<Start/End_Date> // formatted as DD/MM/YYYY - DD/MM/YYYY