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

License: GPL v3 Node.js TypeScript Live Service GitHub stars GitHub issues

Example Calendar Event

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)

image

  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

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

image

  • 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
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

  • 📝 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!

相關伺服器