Overview
Gradescope to Cal is a browser extension that automatically syncs your Gradescope assignments to Google Calendar. We are committed to protecting your privacy through a zero-server architecture that processes all data locally in your browser.
Permissions Required
Our extension requests only the minimal permissions necessary to function. Here's exactly what we need and why:
📅 Google Calendar API Access
Scope: https://www.googleapis.com/auth/calendar.events
Purpose: To manage calendar events for your Gradescope assignments
Usage:
- Create: Add new calendar events when you extract assignments from Gradescope
- Read: Check for existing events to prevent duplicates during sync
- Update: Modify event details if assignment information changes
- Delete: Remove events when you deselect assignments or clear sync data
Important: This permission only grants access to calendar events. We cannot read your full calendar, contacts, email, or any other Google services.
🎓 Content Script Access to *.gradescope.com
Domain: *.gradescope.com
Purpose: To extract assignment information from Gradescope pages you visit
Usage:
- Read assignment names, due dates, and course information from visible page content
- Parse assignment status (submitted, graded, not submitted)
- Extract assignment URLs and identifiers for calendar event tracking
- Detect page type (dashboard, course page, assignment page) to optimize extraction
Important: We only access Gradescope.com pages you actively visit. We do not track your browsing history, access other websites, or monitor activity in the background.
No other permissions are requested. We do not ask for access to your browsing history, tabs, downloads, cookies, or any other sensitive data. The extension operates entirely within these two clearly defined scopes.
Information Collection and Use
What We Collect
- Assignment Data: Assignment titles, due dates, course names, course IDs, assignment URLs, and assignment IDs from Gradescope pages you visit
- Extraction Metadata: Timestamps of when data was extracted, source page URLs, and extraction method used
- Authentication Tokens: Google Calendar OAuth access and refresh tokens stored securely in your browser
- Auto-Sync Data: Timestamps and results of automatic background sync operations
- User Preferences: Sync frequency settings, notification preferences, and auto-sync enable/disable status
What We DON'T Collect
- Personal Information: We do not collect names, email addresses, or any personally identifiable information
- Browsing History: We only access Gradescope.com pages when yous visit them
- Assignment Content: We do not read or store assignment descriptions, submissions, or grades
- Analytics: We do not track usage, collect statistics, or send any data to external servers
Data Storage and Processing
Local Processing Only
- All data processing occurs locally in your browser
- No servers are used to process, store, or transmit your data
- Assignment data is stored only in your browser's local storage
- Authentication tokens are stored securely using browser extension APIs
- Automatic Background Sync: Every 24 hours, the extension checks locally stored assignment data and syncs new items to your Google Calendar - no external data fetching occurs during this process
Data Retention
- Assignment data is retained until you manually clear it or uninstall the extension
- Google Calendar authentication tokens are retained until you disconnect or uninstall
- Auto-sync logs and error data are retained for troubleshooting and automatically cleared periodically
- No data persists after extension removal
Third-Party Services
Google Calendar API
- We use Google's OAuth 2.0 for authentication (industry standard)
- Calendar events are created directly between your browser and Google's servers
- We do not intercept, store, or process your Google account information
- Google's privacy policy applies to your Google Calendar data
Gradescope.com
- We extract publicly visible assignment information from pages you visit
- No login credentials or private data are accessed
- We respect Gradescope's rate limits and terms of service
Mobile Email Reminder Service
If you request an installation reminder via our mobile website:
📧 What We Collect
Your email address, temporarily
💬 How We Use It
To send one transactional email with installation instructions for your laptop
⏱️ How Long We Keep It
- Not stored in any database we control
- Processed by our email service provider (Resend) for delivery only
- Automatically purged from Resend's logs within 24 hours per their free tier policy
⚖️ Legal Basis
Your explicit consent when submitting the email form
🔒 Your Rights
Since we don't retain your email address in any database, there's nothing to delete or access. The email is used once for delivery and discarded. For questions, contact hello@gs2cal.me
Data Sharing
We do not share any data with third parties because:
- We operate with zero servers
- All processing happens locally in your browser
- We have no analytics, advertising, or tracking mechanisms
- No data ever leaves your local environment except for direct Google Calendar API calls
Security
Technical Safeguards
- OAuth 2.0 with PKCE for secure Google authentication
- HTTPS-only communication with Google APIs
- Secure browser extension storage for sensitive tokens
- Content Security Policy to prevent code injection
Privacy by Design
- Minimal permission requests (only Gradescope and Google Calendar access)
- No external dependencies beyond Google Calendar API
- Open source codebase available for security review
- Regular security updates through browser extension stores
User Rights and Control
Your Control
- Enable/Disable: Turn automatic sync on/off at any time
- Data Deletion: Clear all stored assignment data and authentication
- Selective Sync: Choose which assignments to sync
- Revoke Access: Disconnect Google Calendar access instantly
Data Portability
- All assignment data is stored in standard formats
- You can export your data through the extension interface
- No vendor lock-in or proprietary data formats
Technical Details for Transparency
Permissions Explained
storage: Store your preferences and assignment data locally
identity: Handle Google OAuth authentication
scripting: Inject content scripts to extract assignment data from Gradescope pages
activeTab: Access the currently active Gradescope tab for assignment extraction
alarms: Schedule automatic background sync every 24 hours
*://*.gradescope.com/*: Access Gradescope pages to extract assignment data
https://www.googleapis.com/*: Communicate with Google Calendar API
Data Flow
- You visit Gradescope → Extension extracts assignment data → Stored locally
- Authentication → Direct connection to Google → Tokens stored locally
- Sync → Direct API call to Google Calendar → Events created in your calendar
No intermediate servers or third-party data processing
Contact Information
Data Controller: Gradescope to Cal Development Team
Support Email: gradescope.to.cal@gmail.com
Response Time: We aim to respond to privacy inquiries within 7 days
For privacy-related questions or to exercise your rights under GDPR/CCPA, please contact our support email with "Privacy" in the subject line.