Until this change, every match in every one of Goal Legends' eight countries kicked off at the same fixed time. It worked, but it flattened something that should feel different: Saturday afternoon football and Tuesday night European nights don't feel the same in real life, and they shouldn't here either.
Spreading the day out
Each league now has its own default kickoff hour, spread from 8am through 11pm CET across the eight countries, so matchdays overlap the way a real football weekend does rather than firing all at once. On top of that, a manager can set their own preferred kickoff hour for their club's home matches specifically, in Manager Settings: league, Domestic Cup, and Elite Champions Cup fixtures each have their own setting. Away fixtures are deliberately untouched by a manager's preference; only the home team's setting (or their league's default, if they haven't set one) decides when a match kicks off. Anything else would let two managers' preferences fight over the same match.
The DST bug that almost shipped
The game world runs on real UTC time internally but every
kickoff hour is meant in CET/CEST, Central European time,
which shifts by an hour twice a year. Cup competitions
schedule their rounds several days apart, and the first
version of this feature computed each round's kickoff by
just adding a fixed TimeSpan to the previous
round's DateTime. That's correct until a
daylight-saving transition happens to fall inside that gap,
at which point the "same" kickoff hour silently drifts by an
hour for every round scheduled afterward, a bug that
wouldn't show up in testing unless you happened to test
across a DST boundary, and would otherwise have surfaced
quietly, once or twice a year, as matches simulating an hour
early or late.
We caught it during review before it ever reached the live game, and fixed it by never doing kickoff-time arithmetic in raw UTC. Every date calculation now goes through a small CET-aware clock helper that converts to a calendar date, adds whole days, and converts back: DST-safe by construction, because the hour is always resolved fresh against the target date rather than carried forward through arithmetic.
