Inspiration

Every semester we download 5–7 different syllabi, swear we’ll read them carefully, then… miss a quiz or realize a project is due today. All the important dates are buried in PDFs or Google Docs that no one wants to manually copy into a calendar. We wanted something that works like a “personal syllabus assistant”: drop in your syllabus → get a clean, organized calendar of everything that matters. That’s how Syllabus-Connect was born.

What it does

Syllabus-Connect lets students upload a syllabus (PDF, DOCX, or text), automatically extracts the key dates (exams, quizzes, projects, holidays, major deadlines), and adds them directly to their Google Calendar. In one flow, the user can: Upload or paste a syllabus. Preview the detected events (title, date, and type). Connect their Google account. Click “Add to Calendar” and instantly see those events appear in their calendar. No more copy–paste, no more missed due dates—everything is synced to the calendar students already use every day.

How we built it

Frontend: Built with React to create a simple, student-friendly interface. Users can upload syllabi, see parsed events in a table, edit if needed, then push them to Google Calendar. Backend: FastAPI handles file uploads, parsing, and communication with Google APIs. We parse the syllabus using Python (PDF/text parsing) and apply a mix of rules + NLP (looking for date patterns and keywords like “exam”, “midterm”, “assignment”, “project”, “quiz”). Extracted dates are normalized into consistent formats (ISO / RFC 3339) ready for Google Calendar. Google Calendar Integration: Implemented OAuth 2.0 to connect a user’s Google account securely. Used the Google Calendar API to create events (either all-day or specific time events) in the user’s primary calendar. The backend constructs the proper JSON “event” resource and sends it via events.insert. Everything is wired so that from the frontend’s perspective it’s just calling a couple of clean API endpoints: one to extract events, one to push them to Google Calendar.

Challenges we ran into

Distinguishing “real” deadlines from noise: Syllabi contain lots of dates: examples, office hours, “Week 1–Week 15” schedules. We had to tune our rules/NLP to focus on meaningful academic events like exams, assignments, and major milestones. Time zones and date formats: Converting things like “Week of Sept. 9” or “Due 10/2” into valid calendar dates and RFC 3339 strings was tricky, especially ensuring they show up correctly in Google Calendar. OAuth & Google API plumbing: Getting Google OAuth working smoothly—redirect URIs, scopes, refresh tokens, and passing credentials securely—took more debugging than we’d like to admit.

Accomplishments that we're proud of

We built an end-to-end pipeline where a student can upload a real syllabus and see events appear in their Google Calendar in one session. Our extraction works on multiple syllabus formats, not just a single “perfect” template we designed ourselves. We provide a clean preview/edit step so users still stay in control instead of blindly trusting the automation. As a team, we successfully integrated React, FastAPI, NLP, and Google Calendar APIs within a tight hackathon timeframe.

What we learned

How to work with Google OAuth 2.0 and securely handle access/refresh tokens in a real app. How picky the Google Calendar API is about date/time formats—and how important standards like RFC 3339 are. Practical NLP and parsing: sometimes combining simple regex + keyword rules + model-based understanding works better than a single “fancy” approach. The value of designing the UX first: a simple, clear flow (upload → preview → connect → add to calendar) helped us keep the tech decisions focused. How to collaborate under time pressure, divide work between frontend/backend, and still keep the project coherent.

What's next for Syllabus-Connect

Deeper LMS integrations: Pull syllabi directly from Canvas, Blackboard, Moodle, or Google Classroom instead of manual uploads. Smarter recurring events: Automatically create weekly lecture times, lab sessions, and office hours as recurring events. Editing & sync: Let users update or remove events if the syllabus changes mid-semester and sync those changes. Multi-course dashboard: Allow students to import multiple syllabi and view a combined “all classes” timeline of upcoming work. Mobile-first experience: Build a mobile-friendly version or companion app so students can manage their schedule on the go. Support more formats & languages: Handle more document types and multilingual syllabi to support international students.

Built With

Share this project:

Updates