Skip to content
NHL Data Hub

NHL play-by-play

Explore recorded game events, players, coordinates, and scores. Preview events or download a filtered CSV.

Reset

352 matching events across 1 games. Last source refresh: Oct 4, 2026 04:31.

50 events per page. CSV contains all matching rows and additional event fields.
Date / gamePeriod / elapsed timeEvent / teamPlayers / detailsScore (away-home)
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 00:00Period Start
Neutral event

—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 00:00Faceoff
Montréal Canadiens
winning player: Phillip Danault; losing player: Elias Lindholm
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 00:28Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Tomas Tatar
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 00:49Shot On Goal
Calgary Flames
goalie in net: Carey Price; shooting player: Sean Monahan
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 00:59Hit
Calgary Flames
hitting player: Mikael Backlund; hittee player: Max Domi
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 01:00Missed Shot
Montréal Canadiens
goalie in net: David Rittich; shooting player: Joel Armia
wide-of-net; wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 01:05Hit
Montréal Canadiens
hitting player: Artturi Lehkonen; hittee player: Travis Hamonic
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 01:44Blocked Shot
Calgary Flames
shooting player: Oliver Kylington; blocking player: Mike Reilly
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 01:52Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Mike Reilly
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 02:32Stoppage
Neutral event

icing
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 02:32Faceoff
Calgary Flames
winning player: Tobias Rieder; losing player: Nate Thompson
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 02:35Hit
Montréal Canadiens
hitting player: Nate Thompson; hittee player: Noah Hanifin
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 02:49Blocked Shot
Montréal Canadiens
shooting player: Riley Barber; blocking player: Travis Hamonic
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 03:09Missed Shot
Calgary Flames
goalie in net: Carey Price; shooting player: Sam Bennett
wide-of-net; tip-in
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 03:31Giveaway
Montréal Canadiens
player: Tomas Tatar
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 03:33Shot On Goal
Calgary Flames
goalie in net: Carey Price; shooting player: Andrew Mangiapane
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 03:44Stoppage
Neutral event

offside
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 03:44Faceoff
Calgary Flames
winning player: Elias Lindholm; losing player: Phillip Danault
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 04:20Shot On Goal
Calgary Flames
goalie in net: Carey Price; shooting player: Mark Giordano
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 04:47Giveaway
Calgary Flames
player: Rasmus Andersson
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 04:50Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Max Domi
slap
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:04Takeaway
Calgary Flames
player: Sean Monahan
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:09Shot On Goal
Calgary Flames
goalie in net: Carey Price; shooting player: Sean Monahan
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:20Hit
Montréal Canadiens
hitting player: Artturi Lehkonen; hittee player: Oliver Kylington
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:48Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Nick Suzuki
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:51Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Cale Fleury
slap
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:51Stoppage
Neutral event

goalie-stopped-after-sog
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 05:51Faceoff
Calgary Flames
winning player: Derek Ryan; losing player: Nick Suzuki
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:01Hit
Montréal Canadiens
hitting player: Nick Cousins; hittee player: Milan Lucic
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:14Shot On Goal
Calgary Flames
goalie in net: Carey Price; shooting player: Travis Hamonic
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:14Stoppage
Neutral event

goalie-stopped-after-sog; tv-timeout
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:14Faceoff
Montréal Canadiens
winning player: Nate Thompson; losing player: Tobias Rieder
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:25Shot On Goal
Montréal Canadiens
goalie in net: David Rittich; shooting player: Ryan Poehling
wrist
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 06:42Hit
Montréal Canadiens
hitting player: Brett Kulak; hittee player: Michael Frolik
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 07:28Takeaway
Montréal Canadiens
player: Jeff Petry
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 07:33Takeaway
Calgary Flames
player: Andrew Mangiapane
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 07:34Goal
Calgary Flames
goalie in net: Carey Price; scoring player: Matthew Tkachuk; assist1 player: Elias Lindholm; assist2 player: Andrew Mangiapane
wrist
0-1
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 07:34Faceoff
Montréal Canadiens
winning player: Max Domi; losing player: Sean Monahan
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 07:59Hit
Montréal Canadiens
hitting player: Shea Weber; hittee player: Dillon Dube
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:08Stoppage
Neutral event

puck-in-netting
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:08Faceoff
Calgary Flames
winning player: Derek Ryan; losing player: Nick Suzuki
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:13Stoppage
Neutral event

puck-in-benches
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:13Faceoff
Calgary Flames
winning player: Derek Ryan; losing player: Jordan Weal
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:26Blocked Shot
Montréal Canadiens
shooting player: Jordan Weal; blocking player: Oliver Kylington
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:27Stoppage
Neutral event

puck-in-netting
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:27Faceoff
Calgary Flames
winning player: Derek Ryan; losing player: Jordan Weal
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 08:43Giveaway
Montréal Canadiens
player: Mike Reilly
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 09:21Hit
Calgary Flames
hitting player: Sam Bennett; hittee player: Nate Thompson
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 09:37Blocked Shot
Calgary Flames
shooting player: Sam Bennett; blocking player: Jeff Petry
—
2019-12-19
Montréal Canadiens at Calgary Flames
1 REG / 10:05Blocked Shot
Calgary Flames
shooting player: Mark Giordano; blocking player: Brendan Gallagher
—

About this dataset

Team filters select games involving that team, including opponent and neutral events. Only successfully parsed, current captures are published. Shootout events remain included and are identified by period type SO. Coverage reflects captured games, not every NHL game.

CSV field guide
Identifiers and ordering
game_id, event_id and sort_order identify events and their source sequence.
Clock
period, period_type, time_in_period (elapsed), and time_remaining are game-clock values, not wall-clock timestamps.
Teams and players
team_id identifies the event owner. Player IDs specify roles; participants provides names where available, otherwise an unknown-player label.
Locations and situation
x_coord and y_coord are original NHL rink coordinates, not normalized shot coordinates. situation_code is the original feed code.
Scores and missing fields
home_score and away_score are source event values. Blank fields mean unavailable or not applicable; scores are not inferred for events that omit them.
Source details
raw_event_json preserves the complete recorded event. Penalty, shot, and reason fields provide event-specific details.