trackmcp
Back to directory
snwfdhmp

esports-ics

View on GitHub

Esports calendar ICS / iCal. Provides calendar events for most games: Rocket League, Counter-Strike, League of Legends, Apex, ... Based on Liquipedia.

22 stars TypeScriptOthers Updated Aug 27, 2026
esportsicalicsliquipediacalendarcalendar-eventsesportesports-icalesports-ics

Documentation

๐Ÿ“… Esports Calendar - Sync Esports Matches to Your Calendar using iCS / iCAL

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

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:

code
https://ics.snwfdhmp.com/matches.ics?url=LIQUIPEDIA_URL&[OPTIONS]

Example: Rocket League RLCS matches from the RLCS series

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

code
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

code
GET /matches.ics[?opts]

Query Parameters

ParameterTypeDescriptionExample
`url`stringRequired. Liquipedia matches page URL`https://liquipedia.net/rocketleague/Liquipedia:Matches`
`competition_regex`stringFilter competitions by regex pattern`RLCS.*World`
`teams_regex`stringFilter teams by regex pattern`KC\G2\VIT`
`teams_regex_use_fullnames`booleanUse full team names instead of abbreviations`true`
`match_both_teams`booleanRequire both teams to match the filter`true`
`condition_is_or`booleanUse OR logic between competition and team filters`true`
`ignore_tbd`booleanSkip matches with undefined teams`true`
`past_match_allow_seconds`numberInclude past matches within X seconds`86400`

Multiple URL Support

Combine multiple Liquipedia pages in one calendar:

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

code
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

bash
# 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:

bash
# 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`:

typescript
export const presets: Record = {
  "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!*

Frequently asked questions

What is esports-ics?

esports-ics is Esports calendar ICS / iCal. Provides calendar events for most games: Rocket League, Counter-Strike, League of Legends, Apex, ... Based on Liquipedia.

How do I install esports-ics?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is esports-ics open source?

Yes โ€” it is hosted on GitHub at https://github.com/snwfdhmp/esports-ics and has 22 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP