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!
เซิร์ฟเวอร์ที่เกี่ยวข้อง
Web Search
Perform Google searches and view web content with advanced bot detection avoidance.
GPT Researcher
Conducts autonomous, in-depth research by exploring and validating multiple sources to provide relevant and up-to-date information.
ContextMCP
A self-hosted MCP server that indexes documentation from various sources and serves it to AI Agents with semantic search.
Crossref MCP Server
Search and access academic paper metadata from Crossref.
Open Brewery DB
Search and retrieve brewery data worldwide using the Open Brewery DB API.
FlightRadar MCP Server
Provides real-time flight tracking and status information using the AviationStack API.
Libragen
Create private, local RAG libraries that work offline—no API keys, no cloud services. Share them as single files your whole team can use.
Slack Search
Search for messages and files within a Slack workspace using the Slack API.
MCP RAG
A managed Retrieval-Augmented Generation (RAG) server using MCP, integrated with knowledge bases and OpenSearch.
USGS Quakes
Access earthquake data from the USGS Quakes API using natural language queries.