Skip to content
cmds

Esports Events

Get the latest information about esports matches. 50+ supported games: Counter-Strike, Valorant, League of Legends, Rocket League, ...

Install

Install and configure the MCP from https://github.com/snwfdhmp/esports-ics now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.
README

📅 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)

  1. Visit ics.snwfdhmp.com
  2. Select your game and customize filters
  3. Click "📅 Add to Calendar" or copy the generated URL
  4. 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 matches
  • rlcs-worlds - RLCS World Championships
  • rlcs-major - RLCS Major tournaments
  • rocket-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.

nameexample
X-LIQUIPEDIATOICAL-COMPETITIONRLCS Worlds 2025
X-LIQUIPEDIATOICAL-TEAMLEFTKC
X-LIQUIPEDIATOICAL-TEAMLEFTFULLNAMEKarmine Corp
X-LIQUIPEDIATOICAL-TEAMLEFTURLhttps://liquipedia.net/rocketleague/Karmine_Corp
X-LIQUIPEDIATOICAL-TEAMLEFTLOGOhttps://liquipedia.net/commons/images/thumb/1/1e/Karmine_Corp_2020_lightmode.png/600px-Karmine_Corp_2020_lightmode.png
X-LIQUIPEDIATOICAL-TEAMRIGHTG2
X-LIQUIPEDIATOICAL-TEAMRIGHTFULLNAMEG2 Esports
X-LIQUIPEDIATOICAL-TEAMRIGHTURLhttps://liquipedia.net/rocketleague/G2_Esports
X-LIQUIPEDIATOICAL-TEAMRIGHTLOGOhttps://liquipedia.net/commons/images/thumb/d/da/G2_Esports_2020_lightmode.png/600px-G2_Esports_2020_lightmode.png
X-LIQUIPEDIATOICAL-WINNERSIDEleft
X-LIQUIPEDIATOICAL-DESCRIPTORGrand Final
X-LIQUIPEDIATOICAL-DESCRIPTORMOREINFO...

API Documentation

Base Endpoint

GET /matches.ics[?opts]

Query Parameters

ParameterTypeDescriptionExample
urlstringRequired. Liquipedia matches page URLhttps://liquipedia.net/rocketleague/Liquipedia:Matches
competition_regexstringFilter competitions by regex patternRLCS.*World
teams_regexstringFilter teams by regex patternKC|G2|VIT
teams_regex_use_fullnamesbooleanUse full team names instead of abbreviationstrue
match_both_teamsbooleanRequire both teams to match the filtertrue
condition_is_orbooleanUse OR logic between competition and team filterstrue
ignore_tbdbooleanSkip matches with undefined teamstrue
past_match_allow_secondsnumberInclude past matches within X seconds86400

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

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!

Search skills and MCP servers

Search across 31,816 skills and MCPs