# Changelog
All notable changes to the UofT Student Helper MCP Server will be documented in this file.
## [2.0.0] - 2026-01-18
### 🎉 Major New Features
#### Google Calendar Integration
- Added automatic deadline extraction from course syllabi
- Added Google Calendar integration to sync deadlines
- Deadlines are automatically added with reminders (1 day and 1 hour before)
#### New MCP Tools
**Deadline Management**:
- `extract_deadlines_from_syllabus` - Extract all deadlines from a course syllabus
- `add_deadline_to_calendar` - Add a single deadline to Google Calendar
- `add_all_course_deadlines_to_calendar` - Add all deadlines from a course
- `sync_all_deadlines_to_calendar` - Sync all deadlines from all enrolled courses
### 📦 New Modules
- `google_calendar_client.py` - Google Calendar API client
- `deadline_extractor.py` - Intelligent deadline extraction from text
### 📚 Documentation
- Added `GOOGLE_CALENDAR_SETUP.md` - Complete setup guide for Google Calendar
- Updated `README.md` with new features
- Added this `CHANGELOG.md`
### 🔧 Technical Changes
- Added Google API dependencies to `requirements.txt`
- Enhanced server initialization to include Google Calendar client
- Improved error handling for calendar operations
### 🎯 Features
**Deadline Extraction**:
- Supports multiple date formats (MM/DD/YYYY, Month Day Year, ISO format)
- Recognizes common deadline keywords (due, deadline, submit, etc.)
- Extracts assignment names automatically
- Provides confidence scores for extracted dates
- Deduplicates and sorts deadlines
**Google Calendar Integration**:
- OAuth 2.0 authentication
- Automatic token refresh
- Batch deadline addition
- Customizable reminders
- Event links for easy access
---
## [1.0.0] - 2026-01-17
### Initial Release
#### Core Features
**ACORN Integration**:
- `get_enrolled_courses` - View all enrolled courses
- `get_course_details` - Get detailed course information
- `get_course_schedule` - View weekly class schedule
**Quercus Integration**:
- `get_syllabus` - Fetch course syllabus
- `get_course_assignments` - List course assignments
- `get_course_announcements` - Get course announcements
- `get_all_quercus_courses` - List all Quercus courses
#### Modules
- `acorn_client.py` - ACORN web scraping client
- `quercus_client.py` - Quercus Canvas API client
- `uoft_student_helper.py` - Main MCP server
#### Documentation
- `README.md` - Project overview and setup
- `QUICKSTART.md` - Quick start guide
- `.env.example` - Environment variable template
---
## Future Plans
### Planned Features
- [ ] Real ACORN authentication and data fetching
- [ ] Real Quercus API integration (currently using mock data)
- [ ] Grade tracking and GPA calculator
- [ ] Course prerequisite checker
- [ ] Timetable conflict detector
- [ ] Study group finder
- [ ] Library room booking
- [ ] TCard balance checker
- [ ] Course review aggregator
- [ ] Degree progress tracker
### Improvements
- [ ] Add caching for API responses
- [ ] Implement rate limiting
- [ ] Add logging system
- [ ] Create web dashboard
- [ ] Add mobile app support
- [ ] Implement notification system
- [ ] Add data export features
- [ ] Support for multiple universities
---
## Contributing
We welcome contributions! Please see our contributing guidelines for more information.
## License
This project is licensed under the MIT License - see the LICENSE file for details.