Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

License

Notifications You must be signed in to change notification settings

snwfdhmp/esports-ics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… 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?

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

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

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!

About

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages