Skip to content
This repository has been archived by the owner on May 4, 2022. It is now read-only.

Latest commit

 

History

History
58 lines (40 loc) · 2.23 KB

README.md

File metadata and controls

58 lines (40 loc) · 2.23 KB

UVic Schedule Exporter

This project is unmaintained.

It is broken due to UVic changing which version of Banner that they are using. Thank you for using my software, I hope it has served you well.**

Usage

Install the dependencies.

$ pip install -r requirements.txt

Run the program.

$ # Some example output of the interactive prompt
$ python schedule_downloader.py
Year [2021]: 2022
Term [Summer]: Spring
Log in to UVic
Username: malcolmseyd
Password: 
Downloading...
Parsing...
Done. Wrote to schedule-202201.ics

FAQ

Q. Why does it need my Netlink ID and password?
A. It uses it to get your schedule. If you don't trust it, read the code.

Q. I can't see my password when I type it? What's happening?
A. Don't worry, it's just being hidden from the terminal. The program will still read it

Q. What are those square brackets for the year and term?
A. Those are default options. If you put nothing, then the option in the square bracket will be chosen by default.

Q. What options are there for the term?
A. spring, summer, and fall, case insensitive. sp, su, and f also work as abbreviations.

About

What started out as a simple web scraping project eventually turned into a useful tool that can integrate with common calendar software. Let's see how it works.

On UVic's website, they support viewing your schecule as a list of courses. The first part of my script logs into the website and downloads the date. I've documented the API calls here.

Next, we use BeautifulSoup to parse the html to get text-based data from it. We push the data through a few functions until it's ready to be exported.

Finally, we write the data to an iCalendar file. This filetype supports recurring events, so your schedule will look the same as the one on UVic's website.

We can now import the file into Google Calendar and voila, no more manually entering your courses every term.

My schedule on UVic's website (before)

UVic's website

My schedule imported to Google Calendar (after)

Google Calendar