Esports Events
Get the latest information about esports matches. 50+ supported games: Counter-Strike, Valorant, League of Legends, Rocket League, ...
📅 Esports Calendar - Sync Esports Matches to Your Calendar using iCS / iCAL
Automatically sync esports matches to your calendar with customizable filters for competitions and teams. Works with Google Calendar, Apple Calendar, Outlook, and any calendar application that supports iCal/ICS feeds.
Consider giving it a ⭐️ if you like it to show your support!
📚 Table of Contents
- Features
- What does this do?
- Quick Start
- Option 1: Use the Web Interface
- Option 2: Direct API Usage
- Option 3: Use Presets
- What you get
- Additional iCal tags
- API Documentation
- Additional iCal tags
- Base Endpoint
- Query Parameters
- Multiple URL Support
- Preset Endpoint
- Supported Games
- Troubleshooting
- Common Issues
- Getting Help
- Contributing
- Prerequisites
- Setup
- Testing
- Custom Presets
Features
What does this do?
- 50+ Supported Games: Rocket League, League of Legends, CS2, Valorant, Dota 2, Overwatch, and many more
- Universal Compatibility: Works with Google Calendar, Apple Calendar, Outlook, iOS, Android
- Custom Filters: Filter by competition names, team names, or both
- Real-time Updates: Calendar automatically updates when new matches are scheduled
- Preset Configurations: Pre-built filters for popular tournaments (RLCS, Worlds, Majors)
- Advanced Options: Regex support, team name matching, past match inclusion
- Web Interface: User-friendly URL builder with live preview
- MCP Server: Plug our MCP to your AI Chatbot and get realtime information!
Quick Start
Option 1: Use the Web Interface (For non-devs)
- Visit ics.snwfdhmp.com
- Select your game and customize filters
- Click "📅 Add to Calendar" or copy the generated URL
- Import into your calendar application
Option 2: Direct API Usage (Recommended)
Generate calendar URLs using this format:
https://ics.snwfdhmp.com/matches.ics?url=LIQUIPEDIA_URL&[OPTIONS]
Example: Rocket League RLCS matches from the RLCS series
https://ics.snwfdhmp.com/matches.ics?url=https%3A%2F%2Fliquipedia.net%2Frocketleague%2FLiquipedia%3AMatches&competition_regex=RLCS
Option 3: Use Presets
Access pre-configured tournament feeds:
https://ics.snwfdhmp.com/preset/PRESET_NAME
Available presets:
rlcs- All RLCS matchesrlcs-worlds- RLCS World Championshipsrlcs-major- RLCS Major tournamentsrocket-league- All Rocket League matches
If you want to add your preset, feel free to update the preset file
Option 4: Use the MCP
Import this server into ChatGPT or any other MCP client: https://esports-calendar-mcp.snwfdhmp.com/
What you get
- Event summary contains:
- teams short names (eg: VIT vs KC)
- competition name
- type of match (eg: Bo3) if available
- score if the match already started
- Event details contains:
- team full names (eg: Vitality vs Karmine Corp)
- competition name
- type of match (eg: Bo3) if available
- score if the match already started
Additional iCal tags
The event ICS also contains some useful custom iCal tags for scripting or custom integrations.
| name | example |
|---|---|
| X-LIQUIPEDIATOICAL-COMPETITION | RLCS Worlds 2025 |
| X-LIQUIPEDIATOICAL-TEAMLEFT | KC |
| X-LIQUIPEDIATOICAL-TEAMLEFTFULLNAME | Karmine Corp |
| X-LIQUIPEDIATOICAL-TEAMLEFTURL | https://liquipedia.net/rocketleague/Karmine\_Corp |
| X-LIQUIPEDIATOICAL-TEAMLEFTLOGO | https://liquipedia.net/commons/images/thumb/1/1e/Karmine\_Corp\_2020\_lightmode.png/600px-Karmine\_Corp\_2020\_lightmode.png |
| X-LIQUIPEDIATOICAL-TEAMRIGHT | G2 |
| X-LIQUIPEDIATOICAL-TEAMRIGHTFULLNAME | G2 Esports |
| X-LIQUIPEDIATOICAL-TEAMRIGHTURL | https://liquipedia.net/rocketleague/G2\_Esports |
| X-LIQUIPEDIATOICAL-TEAMRIGHTLOGO | https://liquipedia.net/commons/images/thumb/d/da/G2\_Esports\_2020\_lightmode.png/600px-G2\_Esports\_2020\_lightmode.png |
| X-LIQUIPEDIATOICAL-WINNERSIDE | left |
| X-LIQUIPEDIATOICAL-DESCRIPTOR | Grand Final |
| X-LIQUIPEDIATOICAL-DESCRIPTORMOREINFO | ... |
API Documentation
Base Endpoint
GET /matches.ics[?opts]
Query Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| url | string | Required. Liquipedia matches page URL | https://liquipedia.net/rocketleague/Liquipedia:Matches |
| competition_regex | string | Filter competitions by regex pattern | RLCS.*World |
| teams_regex | string | Filter teams by regex pattern | KC|G2 |
| teams_regex_use_fullnames | boolean | Use full team names instead of abbreviations | true |
| match_both_teams | boolean | Require both teams to match the filter | true |
| condition_is_or | boolean | Use OR logic between competition and team filters | true |
| ignore_tbd | boolean | Skip matches with undefined teams | true |
| past_match_allow_seconds | number | Include past matches within X seconds | 86400 |
Multiple URL Support
Combine multiple Liquipedia pages in one calendar:
/matches.ics
?1_url=URL1
&2_url=URL2
&2_competition_regex=PATTERN_FOR_2
&3_url=URL3
&3_teams_regex=PATTERN_FOR_3
It will merge events from the 3 configurations
Preset Endpoint
GET /preset/:name
Supported Games
The service supports 50+ esports titles including:
Popular Games:
- Rocket League
- League of Legends
- Counter-Strike 2
- Valorant
- Dota 2
- Overwatch
- Starcraft II
- Trackmania
- And many more...
View complete list of supported games
Troubleshooting
Common Issues
No matches found?
- Verify the Liquipedia URL is correct
- Check if the game has upcoming matches
- Try broader filter criteria
- For Battle Royale and games whose events do not advertise as "Team A vs Team B", use
allow_missing_teams=true - Open an issue if a supported game isn't working
Calendar not updating?
- Check if your calendar app supports automatic refresh
- Try removing and re-adding the calendar subscription
Getting Help
- 📝 Open an issue on GitHub
- 💬 Contact on Discord:
mjo___ - 🌐 Test your URL at ics.snwfdhmp.com
Contributing
Prerequisites
- Node.js
- pnpm
Setup
Clone the repository
git clone https://github.com/snwfdhmp/liquipedia-to-ical.git cd liquipedia-cal
Install dependencies
pnpm install
Start development server
pnpm run dev
Run tests
pnpm run test
Testing
How to run the tests
The project includes comprehensive testing for all supported games:
Run all tests
pnpm run test
Run tests and only show failing tests
pnpm run test -o
Run tests for Rocket League
pnpm run test "Rocket League"
Run tests for Rocket League and verbose output
pnpm run test -v "Rocket League"
Custom Presets
Add new presets in src/presets.ts:
export const presets: Record<string, string[]> = { "my-preset": [ "https://ics.snwfdhmp.com/matches.ics?url=...", ], }
Made with ❤️ for the esports community
Star ⭐ this repository if you find it useful!
❤️ Sponsoring helps me spending time on this and paying for the servers!
관련 서버
SearXNG
A privacy-respecting metasearch engine powered by a self-hosted SearXNG instance.
ClimateTriage
Search for open source issues related to climate change and sustainability using the ClimateTriage API.
RedNote MCP
Search and retrieve content from the Xiaohongshu (Red Book) platform.
Google Maps
An MCP server for interacting with the Google Maps API, designed for Google Cloud Run.
Context7 HTTP
An MCP server for the Context7 project, providing HTTP streaming and search endpoints for library information without local installation.
Azure AI Agent & Search
Search content using Azure AI Agent Service and Azure AI Search.
招投标大数据服务
Provides comprehensive import and export trade data query functions, including trend analysis, product statistics, and geographic distribution.
DevRag
Free local RAG for Claude Code - Save tokens & time with vector search. Indexes markdown docs and finds relevant info without reading entire files (40x fewer tokens, 15x faster).
Memvid
Encodes text data into videos that can be quickly looked up with semantic search.
Embedding MCP Server
An MCP server powered by txtai for semantic search, knowledge graphs, and AI-driven text processing.