lillianwang112/tiger-calendar
TigerCalendar is a progressive web app that turns your Princeton course schedule into an interactive calendar, with fast course setup, editable assignments, and smart semester-aware views designed for everyday use.
The calendar app built for Princeton students β course scheduling, academic calendar, cloud sync, and more
Free, ad-free, and made specifically for Princeton life
π Open App β’ π Quick Start β’ β FAQ
Hey Everyone! π
I built TigerCalendar because Google Calendar doesn't know what a precept is, and iCal doesn't know when Spring Break starts. This is a full-featured calendar and task manager built specifically for Princeton students β with course setup, semester-aware scheduling, academic calendar overlays, cloud sync, and a time grid that actually works on your phone.
π Table of Contents
- Quick Start
- Install as an App
- Export to Google Calendar & More
- Features at a Glance
- How to Use
- All Features
- Keyboard Shortcuts
- FAQ
- Tech
- About This Project
β‘οΈ Quick Start (TL;DR)
- Visit lillianwang112.github.io/tiger-calendar
- Click "Courses" to set up your semester schedule
- Pick your semester (Spring 2026 or Fall 2026)
- Add your courses with lecture, precept, lab, and drill times
- Hit "Save & Generate" β your whole semester populates automatically π
π± Install as an App (PWA)
TigerCalendar is a Progressive Web App β install it on your phone or computer for a fullscreen native app experience, no App Store required.
iPhone/iPad (Safari):
- Open the app in Safari
- Tap the Share button (square with arrow)
- Scroll down and tap "Add to Home Screen"
- Toggle "Open as Web App" ON
- Tap Add β launches fullscreen like a real app!
Android (Chrome):
- Open the app in Chrome
- Tap the three-dot menu β "Add to Home Screen" or "Install App"
Desktop (Chrome/Edge):
- Look for the install icon (β) in the address bar
- Click "Install"
Your data saves locally and syncs to the cloud if you sign in with Google β so you won't lose anything even after installing.
π€ Export to Google Calendar, Apple Calendar & More
Don't want to switch calendar apps? No problem.
TigerCalendar is also the fastest way to set up any calendar for the Princeton semester. Use the Course Wizard to enter all your courses in under 5 minutes β lectures, precepts, labs, drills, office hours, exams, and problem set deadlines β with Princeton's academic calendar (spring break, midterm week, finals) all pre-loaded and handled automatically. Then export everything as a standard .ics file and import it directly into Google Calendar, Apple Calendar, Outlook, or any other app.
The workflow:
- Set up your full semester schedule in TigerCalendar (~5 min)
- Go to Settings β Export .ics
- Import the file into your calendar app of choice
- Done β your entire semester is populated, breaks skipped, precepts included
Google Calendar doesn't know what a precept is. TigerCalendar does.
Set it up here, take it anywhere.
β¨ Features at a Glance
| Feature | Description |
|---|---|
| π 5 Calendar Views | Day, Week, Month, Year, Schedule |
| π Course Wizard | Add lectures, precepts, labs & drills with per-day time overrides |
| ποΈ Princeton Academic Calendar | Breaks, midterm week, finals, and more β auto-loaded |
| π Recurring Events | Daily, weekly, monthly, annually, weekdays, or fully custom |
| π Relative Assignment Generator | Auto-generate a full semester of pset deadlines tied to your course schedule |
| β Exams & Assignments Tracker | Deadlines, problem sets, and exams per course β with relative auto-generation |
| ποΈ Syllabus View | Auto-generated timeline of all lectures, precepts, labs, and drills per course |
| π Study Block Generator | Quickly create recurring study sessions tied to a course |
| βοΈ Google Cloud Sync | Sign in to sync across all your devices in real time |
| π± Mobile-Optimized | Long-press-to-drag, pinch-to-zoom, swipe navigation |
| π― 100% Free | No ads, no paywalls, no subscriptions |
π How to Use
Step 1: Open the App
Visit: lillianwang112.github.io/tiger-calendar
Step 2: Set Up Your Courses
- Click "Courses" in the top bar
- Select your semester (Spring 2026 or Fall 2026)
- For each course, enter:
- Course name and color
- Lecture days and times
- Precept, lab, and drill sessions (if applicable)
- Locations for each session type
- Click "Save & Generate" β events are created for every class day of the semester, skipping breaks automatically
Pro tip: Use the "Same time every day" toggle if your precept time varies by day of week β you can set per-day overrides!
Step 3: Auto-Generate Your Problem Set Deadlines
One of TigerCalendar's most powerful features: instead of entering each pset deadline manually, use the Relative tab in Exams & More to generate your entire semester's worth of assignments in one step.
- Click "Exams & More" in the top bar and select your course
- Go to the Relative tab
- Set the anchor (e.g., "After each Lecture"), offset in days, due time, and title prefix
- Enable auto-numbering (PSET 1, PSET 2, β¦) and hit Preview β to review
- Confirm β every deadline for the semester is created instantly
Step 4: Add Events & Tasks
Left: Click and drag to set duration Β |Β Right: Fill in event details
On desktop:
- Click any empty time slot to create an event at that time
- Click and drag to set start and end time at once
On mobile:
- Tap any time slot for a quick preview, then tap again to create
- Long-press (hold 300ms) and drag to draw out a duration
For tasks: Use the task type to set a deadline without blocking off calendar time.
Step 5: Sign In for Cloud Sync (Optional)
Click your profile area and sign in with Google to:
- Sync your calendar across your phone, tablet, and laptop
- Never lose your schedule if you clear your browser
Step 6: Explore Views
Switch between views using the buttons at the top or keyboard shortcuts:
- Week view β the main workhorse; shows your full schedule at a glance
- Month view β great for planning ahead
- Schedule view β a linear list of upcoming events, perfect on mobile
- Day view β zoomed in on a single day
- Year view β bird's-eye view of the whole year
β¨ All Features
π Calendar Views
- Day β full time grid for a single day
- Week β 7-column time grid with swipe navigation on mobile
- Month β traditional grid with color-coded event chips and task dots
- Year β compact overview of all 12 months at once, with event indicators
- Schedule β chronological list of upcoming events and tasks, perfect on mobile
- Now line β live red indicator showing the current time, updates every minute
- Mini calendar in sidebar for quick date jumping
- Pinch-to-zoom on the time grid to adjust hour height
π Course & Academic Integration
- Course setup wizard β configure lectures, precepts, labs, and drills in one place
- Per-day time overrides β set different times for, say, Tuesday precept vs. Thursday precept
- Semester selector β Spring 2026 and Fall 2026 with all Princeton academic dates pre-loaded
- Academic calendar overlay β add/drop deadline, midterm week, spring break, finals, commencement, and more
- US Holidays overlay β toggle on/off independently
- Auto-generation β skips breaks and non-class days automatically when generating your schedule
- Syllabus view β after course setup, the Exams & More modal shows a full auto-generated timeline of every lecture, precept, lab, and drill session for the semester, with exact dates and locations
π Events & Tasks
- All-day events with multi-day span support
- Recurring events β daily, weekly (with specific days), monthly, annually, every weekday, or fully custom (every N days/weeks/months/years, with specific days-of-week and configurable end conditions: never, by date, or after N occurrences)
- Location field β shown inline on the time grid
- Notes field β for details, readings, or links
- Tasks β separate from events, with a due date and optional due time; overdue tasks are highlighted
- Drag-to-reschedule β move events by dragging on desktop
- Click and drag to create β drag across a time range to set start and end time at once
- Undo β Cmd/Ctrl+Z to undo any change
π Exams, Assignments & Office Hours Tracker
All accessible from the Exams & More button in the top bar, organized per course across five tabs:
- Exams β log quizzes, midterms, finals, oral exams, and practicals with date, time, location, and study notes
- Assignments β log individual problem sets and assignments with due date, due time (to the minute), tags, estimated hours, and details
- Office Hours β add recurring office hours with instructor/TA name, days of week, time, and location; automatically appear under the "Office Hours" sidebar category
- Relative β automatically generate a full assignment series tied to your course schedule (e.g., "Problem Set due 0 days after each Lecture at 11:59 PM"), with auto-numbering (PSET 1, PSET 2, β¦) and a live preview before committing β saves significant setup time at the start of the semester
- Syllabus β browse the complete auto-generated list of all course sessions (lectures, precepts, labs, drills) with dates and locations, as a quick reference
π Study Block Generator
- Quickly create recurring study sessions tied to a specific course
- Set a label (e.g., "Study"), choose days of the week, and set start/end times
- Appears on the calendar with the course's color for at-a-glance weekly planning
ποΈ Sidebar & Filtering
- Upcoming panel β scrollable list of events and tasks for the next few days, grouped by date
- Category filtering β toggle any category or course on/off to declutter your view; each course gets its own toggle chip
- Time Insights β total hours scheduled this week, broken down by course with named colored bars (e.g., MAT 217: 4.0h, COS 126: 4.0h)
- Weekly load chart β bar chart visualizing your event density by day of the week, broken down by type (Class, Exam, Work) to quickly spot busy vs. light days
- Tasks panel β toggle between Tasks, Events, or Both in the sidebar; tasks show completion state and undo support
βοΈ Sync & Persistence
- localStorage β all data saved locally in your browser automatically, no sign-in required
- Google account sync via Firebase β sign in with Google to back up and sync across all your devices in real time; a "Syncing across devices" indicator confirms active sync in your account panel
- Offline-capable β works without an internet connection once the page has loaded (service worker caching)
- Export/Import β download your data as an
.icsfile (compatible with Google Calendar, Apple Calendar, and Outlook) or as JSON; import JSON back on any device
π± Mobile & Touch
- Swipe navigation β swipe left/right in week/day view to move forward or back
- Long-press-to-drag β hold 300ms on an empty time slot, then drag to set duration (no accidental scroll triggers)
- Tap-to-preview β tap an empty slot to see a "New event" preview before committing
- Pinch-to-zoom β spread or pinch on the time grid to adjust hour height
- FAB β floating action button on mobile for quick event creation
- Responsive sidebar β collapses automatically on small screens
- Install as PWA β add to your home screen on iOS (Safari β Share β Add to Home Screen) or Android/Desktop (Chrome β Install App) for a fullscreen native app experience, no App Store required
π¨ Personalization
- Theme accent colors β choose from 5 accent colors (Purple, Orange, Green, Blue, Rose)
- Light/Dark mode β toggle between light and dark themes
- Week start day β Sunday or Monday
- Color-coded courses β each course gets a unique color automatically, fully customizable
- Custom categories β create your own beyond the built-ins (Personal, Other)
- Time format β 12-hour or 24-hour
- Timezone β configurable (defaults to America/New_York)
β¨οΈ Keyboard Shortcuts
| Key | Action |
|---|---|
D |
Day view |
W |
Week view |
M |
Month view |
Y |
Year view |
S |
Schedule view |
T |
Jump to today |
β / β |
Navigate forward / back |
N |
New event |
\ |
Toggle sidebar |
Cmd/Ctrl + Z |
Undo last action |
β Frequently Asked Questions
π Getting Started
Do I need to make an account?
Nope! TigerCalendar works fully without signing in β your data is saved automatically in your browser. Sign in with Google only if you want to sync across multiple devices.
Does this work on my phone?
Yes! It's fully touch-optimized with swipe navigation, long-press-to-drag, and pinch-to-zoom. Install it as a PWA for the best experience β it'll feel just like a native app.
Can I use this offline?
Yes! Once the page loads, the app works without an internet connection. A service worker caches everything locally.
Which semesters are supported?
Spring 2026 and Fall 2026 are built in, with all Princeton academic dates pre-loaded. More semesters will be added as they're announced.
π Courses & Events
How do I add a course with different precept times on different days?
In the course wizard, turn off the "Same time every day" toggle for the precept section. You'll be able to set a different time for each day of the week that precept meets.
How do I auto-generate all my problem set deadlines at once?
Go to Exams & More, select your course, and click the Relative tab. Set the anchor (e.g., "After each Lecture"), offset in days, due time, assignment type, and title prefix. Enable auto-numbering and hit Preview β to review before generating. This creates the full semester's worth of assignments in one step.
How do I edit or delete an event?
Click any event to open it. You'll see Edit and Delete buttons. For recurring events, you can delete just that occurrence or the whole series. Note: editing a single occurrence of a recurring event is not yet supported.
Can I add events that aren't courses?
Yes! Use the Personal or Other categories for non-course events, or create your own custom categories with any color.
Can I see my tasks alongside my events?
Yes. Tasks with due dates appear in the all-day row in week/day view and in the sidebar upcoming panel. Overdue tasks are highlighted.
βοΈ Sync & Data
My data disappeared after I cleared my browser!
Data is stored in your browser's local storage by default. Clearing browser data will erase it. To prevent this, sign in with Google for cloud backup β or use Export in Settings to download a JSON copy of your data regularly.
Can I use TigerCalendar on my laptop and phone at the same time?
Yes, if you sign in with the same Google account on both devices. Changes sync in real time via Firebase, and the Account panel will show a "Syncing across devices" confirmation.
Can I export my calendar to Google Calendar or Apple Calendar?
Yes! Go to Settings β Export .ics to download a standard iCalendar file you can import into Google Calendar, Apple Calendar, Outlook, or any other calendar app.
π οΈ Tech
Zero build step. Single index.html β just open it in a browser.
- React 18 via CDN β no npm, no bundler
- Babel Standalone β for in-browser JSX compilation
- Firebase Auth & Firestore β optional Google sign-in and real-time cloud sync
- Google Fonts β DM Serif Display, DM Mono, DM Sans
- localStorage β offline-first persistence
- Service Worker β PWA caching and offline support
π About This Project
TigerCalendar was built by a Princeton student who got tired of manually entering every precept into Google Calendar and then manually blocking off spring break. It started as a weekend project and grew from there.
Note: The app is still a work in progress and may have bugs. If you find any issues or have feature suggestions, please reach out at lw3319@princeton.edu β feedback genuinely helps!
The app is open source and free to use or adapt. If you find it useful, share it with your classmates!
Good luck this semester. Go Tigers! π―
π§ Known Limitations & Future Ideas
Current Limitations
- localStorage only (without sign-in) β clearing browser data will erase local progress; sign in with Google or export regularly to be safe
- No cross-device sync without Google sign-in β data lives in the browser unless you're signed in
- Recurring event edits β editing a single occurrence of a recurring event isn't yet supported (only delete)
- No push notifications β no reminders for upcoming events yet
Possible Future Features (Maybe!)
- π Push notifications / reminders
- π² Two-way Google Calendar sync
- πΊοΈ Campus map integration for locations
- π Semester-level workload analytics
- π€ Share your schedule with friends
Note: This is a student project maintained during the semester. Updates may be sporadic!
Perfect for: Course scheduling Β· Exam prep Β· Weekly planning Β· Staying on top of precepts
Made by Lillian Wang Β· Princeton University Β· Spring 2026





