Python script to parse data from 'Check/Print Courses Registered' to ICS
main→ stable branch for local usefeature-fes→ flask experimentsprod-heroku-outdated→ Heroku shuts down free tierprod-render→ deployed to Render
server.py→ production servervibe.py→ generate.icsfrom course datagroove.py→ converts.icsto.jsonfor calendar viewscrap.py→ prepare HTML data before passing tovibe.py
- Date of semester's first day according to NTU Calendar
- Semester's course data from Check/Print Courses Registered
1. Using the Deployed Site
- Select date of semester's first day
- Upload your course data
- Option 1: Upload the
.htmlfile [Recommended] - Option 2: Paste course table data
- Option 1: Upload the
- Click
Parseto previewVEVENTs - Click
Downloadto obtain the.icsfile
2. Running the vibe.py Script Locally
-
Clone the repository
git clone https://github.com/reown/ntu-ical.git cd ntu-ical -
Save your Check/Print Courses Registered data as
- a
.htmlfile or - copied to a
.txtfile
- a
-
Install dependencies
pip install -r requirements.txt -
Run the script (requires 2 arguements)
python fes/vibe.py <filePath> <DDMMYYYY><filePath>: path to your.htmlor.txtfile<DDMMYYYY>: date of semester's first day (eg.,09082021)
-
The
.icsfile will be saved in the same directory with the same name as your input file
- Exempted Modules
- Online Modules
- Recess Week
- Saturday Classes
- Merged rows (Empty Course/Title)
- Missing Laboratory Codes (Engineering only?)
- 'Asynchronous online learning' Remark
- HTML from STARS
- Exam Schedule





