Skip to contents

Schedule and results of one season stage: every game with its club ids, score and decision.

Usage

vhl_schedule(season, stage = "regular", return_parsed = TRUE)

Arguments

season

Season END year (2026 = 2025/26; the calendar covers 2010/11 on). With stage it is mapped to the site's tournament id, see vhl_tn().

stage

Season stage: "regular" (default) or "playoff".

return_parsed

TRUE (default) returns the parsed tibble; FALSE returns the page's parsed record (a named list, the sdv-internal-refs capture shape, plus _request with the season, stage, tn and the ids asked for).

Value

A fastRhockey_data tibble with one row per game:

col_nametypedescription
seasonintegerSeason END year (2026 = 2025/26).
stagecharacterSeason stage: regular or playoff.
tnintegerTournament id of the season stage (2025/26 regular season = 1374, playoffs = 1375); vhl_tn maps season + stage to it.
game_idintegerGame id (the calendar's game_id; the report's and the broadcast's idgame). The report and broadcast pages do not print it: it comes from the request.
game_numberintegerOfficial game number within the tournament (from 'No.986').
game_datecharacterGame date, ISO 'YYYY-MM-DD': the calendar day heading plus the season (August-December = START year).
datecharacterDay header in English, day and month only ('18 March'); the page prints no year and no start time.
weekdaycharacterWeekday of the day header (English).
home_teamcharacterHome team name (Latin, FULL form: 'Kristall S'; standings, stats and the team page use the short 'Kristall').
home_club_idintegerHome club id: stable across seasons (the img.khl.ru logo path id). Neither a team-season id nor a team page id.
away_teamcharacterAway team name (Latin, FULL form, like home_team).
away_club_idintegerAway club id: stable across seasons (the img.khl.ru logo path id).
citycharacterCity of the home team's arena (English).
scorecharacterFinal score 'home:away'; '-:-' before the game.
home_scoreintegerHome goals including the shootout winner goal; null before the game.
away_scoreintegerAway goals including the shootout winner goal; null before the game.
decisioncharacterHow the game ended beyond regulation: OT (overtime) or SO (shootout); null for regulation or unplayed games.
winnercharacterWinning side from the win-home / win-visitor class: home or away; null before the game.
statuscharacterUnobserved in samples (null in every capture); type and meaning unverified.
online_urlcharacterText-broadcast URL (online.vhlru.ru/online/{game_id}.html).

With return_parsed = FALSE, the page's parsed record (a named list) instead.

Details

Source: GET https://www.vhlru.ru/en/calendar/{season}/0/ (server-rendered HTML, keyless; parsed with rvest). Unofficial use of a public source; payloads are not redistributed.

Owner flag (sanctions)

The VHL is run by Russian league operators, and several clubs are owned or sponsored by sanctioned state companies. Fetching on your own machine is fine; a published data release or a hosted mirror of this data needs the owner's sanctions / legal sign-off first.

Errors

  • fastRhockey_no_data: the VHL has nothing for the request (a season without that stage, a game not in the season's calendar, an unknown game, player or team page).

  • fastRhockey_bad_request: a bad season / stage / id, a missing argument, or HTTP 400 / 422.

  • fastRhockey_asset_fetch: the page could not be fetched, or it is not the page asked for (another season, game or player; a missing table or header drift).

Examples

# \donttest{
  try(vhl_schedule(season = 2026))
#> ── VHL Schedule Information from vhlru.ru ──────────── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 02:00:32 UTC
#> # A tibble: 992 × 20
#>    season stage      tn game_id game_number game_date  date    weekday home_team
#>     <int> <chr>   <int>   <int>       <int> <chr>      <chr>   <chr>   <chr>    
#>  1   2026 regular  1374  899225         986 2026-03-18 18 Mar… Wednes… Kristall…
#>  2   2026 regular  1374  899222         983 2026-03-18 18 Mar… Wednes… Molot    
#>  3   2026 regular  1374  899223         984 2026-03-18 18 Mar… Wednes… Toros    
#>  4   2026 regular  1374  899224         985 2026-03-18 18 Mar… Wednes… Izhstal  
#>  5   2026 regular  1374  899226         987 2026-03-18 18 Mar… Wednes… CSK VVS  
#>  6   2026 regular  1374  899228         989 2026-03-18 18 Mar… Wednes… Neftyanik
#>  7   2026 regular  1374  899229         990 2026-03-18 18 Mar… Wednes… Olimpiya 
#>  8   2026 regular  1374  899230         991 2026-03-18 18 Mar… Wednes… Chelny   
#>  9   2026 regular  1374  899231         992 2026-03-18 18 Mar… Wednes… Ryazan-V…
#> 10   2026 regular  1374  899220         981 2026-03-17 17 Mar… Tuesday Dynamo S…
#> # ℹ 982 more rows
#> # ℹ 11 more variables: home_club_id <int>, away_team <chr>, away_club_id <int>,
#> #   city <chr>, score <chr>, home_score <int>, away_score <int>,
#> #   decision <chr>, winner <chr>, status <chr>, online_url <chr>
  try(vhl_schedule(season = 2026, stage = "playoff"))
#> ── VHL Schedule Information from vhlru.ru ──────────── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 02:00:32 UTC
#> # A tibble: 84 × 20
#>    season stage      tn game_id game_number game_date  date   weekday  home_team
#>     <int> <chr>   <int>   <int>       <int> <chr>      <chr>  <chr>    <chr>    
#>  1   2026 playoff  1375  901974          84 2026-05-26 26 May Tuesday  Ugra     
#>  2   2026 playoff  1375  901970          83 2026-05-23 23 May Saturday Khimik   
#>  3   2026 playoff  1375  901969          82 2026-05-21 21 May Thursday Khimik   
#>  4   2026 playoff  1375  901968          81 2026-05-18 18 May Monday   Ugra     
#>  5   2026 playoff  1375  901967          80 2026-05-16 16 May Saturday Ugra     
#>  6   2026 playoff  1375  901966          79 2026-05-13 13 May Wednesd… Ugra     
#>  7   2026 playoff  1375  901961          78 2026-05-11 11 May Monday   Neftyanik
#>  8   2026 playoff  1375  901959          77 2026-05-10 10 May Sunday   Khimik   
#>  9   2026 playoff  1375  901954          76 2026-05-08 08 May Friday   Ugra     
#> 10   2026 playoff  1375  901949          75 2026-05-07 07 May Thursday Metallur…
#> # ℹ 74 more rows
#> # ℹ 11 more variables: home_club_id <int>, away_team <chr>, away_club_id <int>,
#> #   city <chr>, score <chr>, home_score <int>, away_score <int>,
#> #   decision <chr>, winner <chr>, status <chr>, online_url <chr>
# }