JADE LEE.
← ALL PROJECTS · /03 · PRAIRIECALENDAR

SIDE PROJECT · LIVE IN THE CHROME WEB STORE · 2025 —

PrairieCalendar.

A Chrome extension that sends booked PrairieTest exams to Google Calendar or an ICS file. It is live in the Chrome Web Store with 50 users.

50 USERS
18 AUTOMATED TESTS
01 · THE PROBLEM

PrairieTest lists confirmed exam reservations in its dashboard without a calendar export. Students have to copy the date, time, duration, and location by hand, where one typo can mean missing an exam.

PrairieCalendar started with UBC schedules, but the implementation is independent of any one campus, academic term, or timezone. PrairieTest is used by institutions across North America, so the same workflow can serve students beyond UBC.

02 · KEY FEATURES
01

Selective export

The popup reads confirmed reservations from the PrairieTest Home page. Students can choose individual exams or use Select All before exporting.

02

Google Calendar and ICS

One path signs the student in with Google OAuth and creates events through the Google Calendar API. The other generates an ICS file for Apple Calendar and other calendar apps.

03

Duplicate-safe events

Exporting the same exam again updates the existing Google Calendar event instead of adding another copy.

04

Timezone-safe scheduling

The extension reads PrairieTest's absolute UTC timestamps and timezone data from the page instead of rebuilding times from the text on screen.

05

Local by default

Reservation data stays in the browser through chrome.storage.local. PrairieCalendar has no database, and it only connects to Google when a student chooses Google Calendar export.

03 · THE HARD PART

Keeping exam times correct

TIMESTAMP PARSING

The time shown on screen is not enough to build a reliable calendar event. PrairieCalendar reads the exact instant and timezone published in the PrairieTest page, then calculates the end time from the exam duration.

If a duration cannot be read, the extension preserves the start time, uses a one-hour fallback, and tells the student to verify the event.

Making both exports agree

18 AUTOMATED TESTS

Google Calendar and ICS have different output paths, but both consume the same normalized event data. That keeps each reservation consistent whichever calendar the student uses.

Eighteen automated tests cover timestamp parsing, ICS generation, and Google export under several timezone settings.

04 · WHAT'S NEXT

PrairieCalendar has been tested at UBC. The next step is validating the campus-independent parser with students at more institutions that use PrairieTest.

Reservation-to-calendar data flow