Esports Events
Obtenha as informações mais recentes sobre partidas de esports. Mais de 50 jogos suportados: Counter-Strike, Valorant, League of Legends, Rocket League, ...
Documentação
📅 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?
- 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
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
- teams short names (eg: VIT vs KC)
- 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
- team full names (eg: Vitality vs Karmine Corp)
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|VIT |
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!

