Transform university course schedules into beautiful, recurring calendar events with one upload.
UniSync is a full-stack web application that allows students to upload their university schedule, automatically parse classes, visualize their semester, compare schedule revisions, and synchronize recurring events with Google Calendar.
- Upload university schedule PDFs
- Automatic class extraction
- Supports recurring weekly schedules
- Stores multiple schedule versions
- Google Calendar integration
- One-click recurring event creation
- Intelligent updates (no duplicate events)
- Remove synced events anytime
- Apple Calendar (.ics) export
- Interactive weekly calendar
- Upload history
- Semester version comparison
- Detect added, removed, and modified classes
- Meeting statistics
- Course statistics
- Earliest and latest classes
- Busiest day of the week
- Schedule overview
- Next.js
- React
- TypeScript
- Tailwind CSS
- Clerk Authentication
- Axios
- FastAPI
- SQLAlchemy
- PostgreSQL
- Google Calendar API
- Google OAuth 2.0
- iCalendar (.ics)
- PDF Schedule Parsing
University PDF
│
▼
PDF Parser
│
▼
Structured Schedule
│
├────────► PostgreSQL
│
├────────► Weekly Calendar
│
├────────► Schedule Comparison
│
▼
Google Calendar Sync
- PDF upload
- Persistent schedules
- Multiple semester versions
- Version comparison
- Google Calendar synchronization
- Google Calendar event removal
- Apple Calendar export
- Weekly calendar visualization
- Calendar selection before syncing
- Last sync timestamp
- Rich schedule comparison UI
- Dark/Light themes
- Mobile responsiveness
- Multi-calendar support
- Semester sharing
- Automatic schedule conflict detection
- Exam schedule support
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadcd frontend
npm install
npm run devDATABASE_URL=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
MIT