/calendarize-webreg

📆 Bookmarklet for exporting your WebReg schedule to a calendar. Tested on UCSD's WebReg.

Primary LanguageJavaScript

A tool for easily exporting your WebReg schedule to your calendars (pictured below).

  • Adds your classes as recurring events
  • Adds your finals as one time events
  • Importable into calendar apps like Google Calendar, Outlook, etc.
  • Tested on UCSD WebReg schedules
  • Usage instructions below!

Command line screenshot

📋 Installations

Extension: Chrome, MS Edge or Brave

  1. There're 2 ways to download the extension: (a) Download a hard copy of the zip file from the Release page (b) Clone this repo
  2. Unzip the folder
  3. Enable Developer Mode on your browser
  4. Select "Load Unpacked" and choose the unzipped folder calendarize-webreg-chrome-extension
  5. Head to your WebReg page, click on the extension. Voilà, your schedule is downloaded!

⭐️ Make sure you keep the extension folder in a permanent, safe place. Aka don't delete or move the folder after loading it

Bookmarklet

  1. Copy the entire code blurb below & add it as a new bookmark: Ctrl+D or ⌘+D, click "More...", then paste the blurb in as the URL

javascript:(function(){const calendarize=document.createElement('script');calendarize.src='https://adoryvo.github.io/calendarize-webreg/calendarize.min.js';document.body.appendChild(calendarize);})()

  1. Visit your WebReg page & click the bookmark to download your schedule as a calendar file (.ics)
    (Ctrl/⌘+Shift+B to toggle bookmarks bar)
  2. Import the calendar file into your Google Calendar here
  3. Double check that the calendar events created match the times on WebReg!
    • If there are any inconsistencies or errors, fill out the feedback form in the See Also section below. I will try to address them ASAP!

🤔 How does it work?

Essentially, when you click the bookmark, your browser runs a script (AKA a program) that I wrote which simply takes the text in your WebReg table and organizes your schedule information into the format needed to create a .ics calendar file.

This form of bookmark tool is called a bookmarklet, an obscure technology that I found fitting for this project as it allows for the tool to be used across all browsers. You may take a look at some other cool bookmarklets here.

If you had any concerns about privacy, the program abstains from persistently storing any of the information read in (you may verify this with the source code linked at the bottom of this site!).

// This code will be executed upon clicking the bookmark
javascript:(function() {
	// Fetch the script used to scrape & parse schedule information from the web page 
	const calendarize = document.createElement('script');
	calendarize.src = 'https://adoryvo.github.io/calendarize-webreg/calendarize.min.js';

	// Add the script to the current page, causing it to run!
	document.body.appendChild(calendarize);
})()

The bookmark code blurb, formatted

⭐ See also


Source code | Uses ics.js for .ics generation
Created by Adory Vo