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!
Servidores relacionados
Ollama Deep Researcher
Conducts deep research using local Ollama LLMs, leveraging Tavily and Perplexity for comprehensive search capabilities.
EzBiz Social Media Analytics
AI-powered social media profile analysis, engagement scoring, trend detection, and hashtag research.
Tavily Search
A comprehensive search agent powered by the Tavily API for in-depth and reliable search results across various topics.
Google Search Engine
A server for Google search and webpage content extraction, built on Cloudflare Workers with OAuth support.
Semantic Search Of Reddit
MCP server that enables AI assistants to search Reddit conversations, explore subreddits, and access trending topics.
Web Search MCP Server
Free web search using Google search results, no API key required.
Amazon Product Advertising API
Integrate with the Amazon Product Advertising API to search for products and access product information.
Discourse MCP Server
Perform search operations on Discourse forums.
Readeck MCP
An MCP server for advanced research assistance, configurable via environment variables.
Vectorize
Vectorize MCP server for advanced retrieval, Private Deep Research, Anything-to-Markdown file extraction and text chunking.