Skip to content

๐Ÿ“† Bookmarklet & browser extension for exporting your WebReg schedule to a calendar. Tested on UCSD's WebReg.

Notifications You must be signed in to change notification settings

AdoryVo/calendarize-webreg

Repository files navigation

Export your WebReg schedule to your calendars in one click!

Calendarized schedule screenshot

Highlights:

  • 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!

๐Ÿ“‹ Usage

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);})()

  2. Visit your WebReg page & click the bookmark to download your schedule as a calendar file (.ics)
    (Ctrl/โŒ˜+Shift+B to toggle bookmarks bar)
  3. Import the calendar file into your Google Calendar here. Make sure to check your intended Google Account in the top right!
  4. Double-check that the calendar events created match the times on WebReg!
    • If there are any inconsistencies or errors, fill out the feedback form. I will try to address them ASAP!

Extension: Chrome, Edge, Brave (or other Chromium-based browsers)

  1. Download the extension from the Chrome Web Store here
  • If your browser does not support the Chrome Web Store, follow these instructions to download the extension:
    1. Download calendarize-webreg-chrome.zip from the latest release
    2. Extract (AKA unzip) the downloaded zip folder (via right click > Extract All...)
    3. Delete the .zip version and move your unzipped folder into a permanent, safe place
    4. In your browser, click the extensions icon (should look like a puzzle piece ๐Ÿงฉ) and click Manage extensions
    5. Toggle Developer Mode on
    6. Click Load Unpacked and choose your unzipped folder from earlier

      โญ๏ธ Make sure you keep the extension folder in a permanent, safe place (don't delete or move the folder after loading it)

  1. Head to your WebReg page and click on the extension (you may have to dropdown the extensions menu ๐Ÿงฉ). Voilร , your schedule is downloaded! ๐ŸŽ‰
  2. Import the calendar file into your Google Calendar here. Make sure to check your intended Google Account in the top right!
  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. I will try to address them ASAP!

Notes on being in different time zones

If you're not located in the same time zone as your school, change the time zone of your calendar to match before importing your calendar file. After importing, you can change your time zone back to your own and the events will shift to your time zone accordingly.

For Google Calendar, this can be done in Settings > General > Time zone.
Otherwise, here are steps for Apple Calendar and here are steps for Outlook.
For UCSD students, the time zone should be (GMT-07:00) Pacific Time - Los Angeles.

๐Ÿค” How does it work?

When you click the bookmark or extension, your browser runs a script (AKA a program) that takes the text in your WebReg table, organizes it into your schedule information, and creates a .ics calendar file.

This type of script is called a bookmarklet, an obscure technology that I found fitting to add accessibility for most browsers. You may take a look at some other cool bookmarklets here.

โญ๏ธ Update: To further improve accessibility for browsers not supporting bookmarklets, a browser extension option has been added!

// 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

๐Ÿ”’ Privacy

If you have any concerns about privacy, the program does not collect or store any of your information (you may verify this with the source code).

โญ See also


Source code | Uses ics.js for .ics generation
Created by Adory Vo with contributions from Rebecca Chen