A Chrome browser extension that adds an "Add to Calendar" button to sports schedule pages, making it easy to add games and events directly to your Google Calendar.
- ESPN - All sports schedule pages (NFL, NBA, MLB, College Basketball, etc.)
- KenPom - College basketball fanmatch pages
- Seamlessly integrates with ESPN and KenPom schedule pages
- One-click "Add to Calendar" button for any game or event
- Automatically generates Google Calendar event links with:
- Event title in "Away @ Home (TV Network)" format
- Date and time
- Sport-specific event durations
- TV/streaming network information
- Opens Google Calendar in a popup window with the event pre-populated and ready to save
Coming soon
-
Clone this repository:
git clone https://github.com/ni3t/espn-cal-link.git cd espn-cal-link -
Open Chrome and navigate to
chrome://extensions/ -
Enable "Developer mode" using the toggle in the top right corner
-
Click "Load unpacked" and select the extension directory
-
The Sports Calendar Link extension should now appear in your extensions list
- Navigate to any supported sports schedule page:
- ESPN: Any sports schedule (e.g.,
espn.com/nba/schedule) - KenPom: Fanmatch page (e.g.,
kenpom.com/fanmatch.php?d=2025-11-03)
- ESPN: Any sports schedule (e.g.,
- Look for the "📅 Add to Calendar" button next to scheduled games
- Click the button to open Google Calendar with the event details pre-populated
- Review the event details and click "Save" in Google Calendar to add it to your calendar
The extension:
- Detects when you're viewing a supported schedule page (ESPN or KenPom)
- Injects "Add to Calendar" buttons next to game time listings
- Extracts game information (teams, date, time, TV network) from the page
- Determines home/away teams and formats title as "Away @ Home (TV Network)"
- Constructs a Google Calendar URL using the Google Calendar URL scheme
- Opens the URL in a popup window when you click the button
- Google Chrome or Chromium-based browser
- Basic knowledge of JavaScript, HTML, and CSS
- Familiarity with Chrome Extension APIs
espn-cal-link/
├── manifest.json # Extension configuration
├── content.js # Content script for ESPN pages
├── background.js # Background service worker
├── popup/ # Extension popup UI
├── icons/ # Extension icons
└── utils/ # Helper functions
- Make your changes to the extension files
- Reload the extension in
chrome://extensions/by clicking the refresh icon - Navigate to an ESPN schedule page and test your changes
- Check the browser console for any errors or debugging output
- Use Chrome DevTools to inspect the ESPN page and debug content scripts
- Check the extension's background page console:
chrome://extensions/→ Details → "Inspect views: background page"
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This extension:
- Only runs on ESPN.com and KenPom.com domains
- Does not collect or transmit any personal data
- Does not require any special permissions beyond basic content script access
- All processing happens locally in your browser
MIT License - see LICENSE file for details
- ESPN for providing comprehensive sports schedules
- KenPom for college basketball analytics and schedules
- Google Calendar for the calendar URL scheme
- Chrome Extensions documentation and community
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check existing issues for similar problems
- Include your browser version and steps to reproduce any bugs