Before I delve into the journey, let me express what the premise is. Like almost any student across the globe I have courses that I am taking in school and I have various times and locations for all these courses. Some students are given a beautiful interface for seeing this data and given lovely tools such as the ability to export to a calendar. Our system gave no such option, and was displayed in a quirky format.
I wanted all of my courses added into my Google Calendar so that I could get all the lovely features that come with Google Calendar, such as notifications, syncing, location support (can quickly pull up location in Google Maps). Moving all of these courses over would be time consuming manually. This leads into the journey…
I needed a way to get my courses into Google Calendar, and I thought others may benefit from such a tool as well so I sought out to make a browser extension which allowed you to export a course schedule simply by being on my school’s schedule view. A new button was added that looked native to the system being used and allowed you to simply download a ical (.ics) file which can be exported into almost any calendar application. Using fancy recurring events and everything. Nice and simply, no hassle for the user.
At least, I thought there was no hassle at first. The problem was that I was isolated to only helping ease the usage of our system if a user was on Google Chrome. Many people at Universities are mac users, and I realized a decent portion of people were using the default Safari. Before going into the problem of cutting off users, let me show you what exactly I added to the page:
Of course this button was not easy to find when you first started using the plugin. There were pictures in the Google Chrome screenshots advertising the extension, however as I should have assumed most users did not look at that. I’m still very far from being any kind of user interface expert here!
So the Google Chrome extension had to go. It would not be ideal to make the browser extension that supports all of the browsers as it gets harder to support such a product when working solo on this, and also came back to a similar problem of inconvenience. The effort involved for someone to add an extension to only be used for a few seconds seemed pointless. You were wasting a lot of the time you were trying to save. Not to mention you’d like only ever use the extension a whopping two times in a year so it was a waste of resources to even really want to keep installed.
I opted to keep what was working, the ical exports, and instead switch over to a webapp. I noticed: “hey, all of these course pages have the same format”. This meant that I could then get out some regular expressions and simply play around with parsing out the exact content I got before into the Google Chrome extension. In fact, with the help of regex101 I managed to get some nice regex setup and working leaving mostly just the ical part left.
In total since I could use most of the code from my Chrome extension I actually only spent a few hours making the web app which I have named “Course 2 Calendar“. The project is also open sourced for all to see and use. Who knows, maybe you want to apply my hacked out code to your own project specific to your school?