A full-stack web application that parses syllabus PDFs, extracts key academic events (assignments, exams, deadlines), and converts them into calendar-ready formats. Users can review and edit extracted events before exporting to .ics for seamless integration with Google Calendar or iOS.
A full-stack web application that converts course syllabus PDFs into structured calendar events.
Upload a syllabus, automatically extract important dates (assignments, exams, deadlines), review and edit them, and export to an .ics file for seamless import into Google Calendar or Apple Calendar.
- 📄 Upload syllabus PDFs
- 🧠 Extract key academic events (assignments, exams, deadlines)
- ✏️ Editable review table before export
- 📆 Export events as
.ics(compatible with Google Calendar, Apple Calendar, Outlook) - 🔍 Confidence scoring + source snippets for transparency
- Next.js (App Router)
- TypeScript
- Tailwind CSS
- FastAPI (Python)
- PyMuPDF (PDF text extraction)
- Regex-based parsing (initial version)
- iCalendar (
.ics) generation
syllabus-calendar-extractor/
├── frontend/ # Next.js app
│ ├── app/
│ ├── components/
│ └── lib/
├── parser-service/ # FastAPI backend
│ ├── main.py
│ ├── sample_parser.py
│ └── requirements.txtgit clone https://github.com/yourusername/syllabus-calendar-extractor.git
cd syllabus-calendar-extractor cd frontend
npm install
npm run devWill Run At: http://localhost:3000 (Copy and paste in browser)
cd parser-service
# Create virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run server
python -m uvicorn main:app --reloadWill Run At: http://127.0.0.1:8000
1. User uploads a syllabus PDF
2. Backend extracts text using PyMuPDF
3. Parser identifies relevant lines (deadlines, exams, events)
4. Dates are normalized into structured event objects
5. Frontend displays an editable table
6. User exports events as .ics
• Rule-based parser (may miss complex syllabus formats)
• Limited time extraction accuracy
• Some duplicate or noisy text may appear
• English-only support
• NLP / LLM-based extraction for higher accuracy
• Automatic semester/year detection
• Table-aware parsing for structured syllabi
• Google Calendar API integration
• Improved deduplication and filtering
• Better UI (bulk edits, tagging, filters)
Students often spend time manually transferring syllabus deadlines into their calendars. This project automates that workflow, making it faster and less error-prone to stay organized throughout the semester.
Juan Rizo