Arrive 9:45
League game vs Ashfield Colts
Meadow Park · Pitch 3 · Blue kit · Referee confirmed
Sofia Nunes has a swim meet at 11:00 with Riverside Aquatics. Flagged because she is on both rosters.
3 families have not answered.
Remind the threeThree questions, asked again every week, by twenty families at once. TeamCaddy answers all three in one place — for one team, free, or for a club with four hundred players.
No credit card. No ads, ever. Your roster is a list of children, and we treat it that way.
You coach
“The pitch flooded. I need eleven families to know before Saturday, and I need to know who is actually coming.”
Move the event once. Everyone attached to it is told through the channel they chose — push, email or a real text message — and their old answer is cleared so the headcount you see is a headcount for the new time.
You are a parent
“Two children, two teams, one car. I want to know about the clash before Saturday morning, not during it.”
One calendar covers every child on every team, colour-coded per child, with overlaps flagged in advance. Both guardians get the same message at the same time — neither one is the “cc”.
You run the club
“A team is going up a division. I am not rebuilding it from scratch to make that happen.”
Here a team is a stable object. Move it between divisions, roll it into next season, or merge two rosters — roster, history and payment records come with it.
When is it
Youth sport is a calendar under constant revision. The hard part is never the first entry — it is the fourteenth change.
Where is it
A venue has pitches, courts and diamonds under it, and an arrival time is a different fact from a start time.
Who is coming
A coach who cannot see the headcount is guessing at substitutions. This is the centre of the product, so it is in the free plan.
Most youth-sport software models a child, then bolts a parent onto it. We modelled the household first, because that is who pays, who drives, and who needs to be told.
Two children, two teams, one household — as a parent sees it.
Promotion, mid-season. An ordinary admin action, not a rebuild.
Divisions get added in October. Teams get promoted. Two thin age groups merge into one. A club platform that cannot express those things forces its administrators to destroy and rebuild what they already have.
Every visibility decision in the product starts closed and is opened deliberately, by someone with the authority to open it.
Public pages start private
A public team page shows the schedule and the results. The roster and the photo gallery are off until an administrator turns them on — opt in, not opt out.
Medical detail is not roster detail
Medical fields, health check-ins and injury reports name in the schema exactly who may read them. A coach sees “cleared to play”. A coach does not see the reason.
A fan role that sees no contacts
Grandparents and boosters get the schedule and the score with zero access to addresses, phone numbers or medical records.
One permission table
Every role check in the API resolves through a single table. Permissions scattered through route handlers are how a fan ends up able to delete a roster.
A single team is free, forever, with the whole core loop — schedule, roster, RSVP, chat, public page. Nothing is held back to make you upgrade.
No credit card. No ads, ever.