League Calendar

beta

Day-view fixture list. Filter bar (date picker + club dropdown + age pills) drives a single grid of MatchCards. Defaults to the upcoming Saturday.

Interactive

Filter → results

Pick a different date and the grid re-renders. Club and age narrow further; the date always stays selected.

Live
Age
Raleigh Athletic
U15
Charlotte FC
U15
9:00 AM
Dix Park Fields — Field 1
Premiership
Durham United
U17
Greensboro FC
U17
10:30 AM
Duke East Campus — Turf 2
CPSL CupSemifinal — winner advances to the CPSL Cup final
Triangle FC
U14
Asheville FC
U14
12:00 PM
Carolina Bank Field — A
Development
Charleston FC
U19
Coastal SC
U19
1:30 PM
MUSC Health Stadium
Premiership
Columbia United
U15
Winston-Salem SC
U15
3:00 PM
Rock Hill Sports Complex
Premiership
Atom

MatchCard — with notes

Home crest + name, kickoff, away crest + name. Footer shows field + competition + age. Stacks single-column below 640px.

MatchCard
Durham United
U17
Greensboro FC
U17
10:30 AM
Duke East Campus — Turf 2
CPSL CupSemifinal — winner advances to the CPSL Cup final
State

Empty state — no matches for the current filter

Renders inside the calendar area when the filter set yields zero matches.

Empty

No matches on that date.

Try loosening a filter — or reset all of them.

Reference

MatchCard props

Props
PropTypeDefaultDescription
kickoffstringISO datetime string. Rendered as 12-hour local + day label.
homeCalendarClubHome team — { id, name, conference, logoUrl }.
awayCalendarClubAway team — same shape as home.
fieldstringField / venue label — trimmed with ellipsis if it overflows.
competition"Premiership" | "Cup" | "Development"Drives the pill color.
ageGroup"U13" | "U14" | "U15" | "U16" | "U17" | "U19"Age-group pill.
notesstringOptional italic note — semifinal, extra time, etc.
Reference

LeagueCalendarFilters props

Props
PropTypeDefaultDescription
clubsCalendarClub[]All clubs — populates the Club dropdown.
valueLeagueCalendarFilterValueControlled — { date, clubId, ageGroup }. `date` is YYYY-MM-DD; always populated.
onChange(next) => voidCalled on every filter change. Parent owns the state.