Source selection
We begin with the competition organiser, governing body or official league publication. Examples include league schedule releases, official calendars, media releases and downloadable fixture documents. When a public structured feed is required to transform hundreds of rows, the page identifies that feed separately and retains the official announcement as the editorial reference.
Search results, fan-maintained databases and news summaries can help locate a release, but they are not treated as the final authority when a primary source is available. A source URL and last-check date are stored with each calendar record.
Schedule classification
Confirmed means the organiser has released the schedule represented by the calendar. This does not imply that every kick-off time is final; television selection, weather and venue operations can still produce changes. Partial means useful dates or matchups are official, but the full schedule has not yet been published. Source tracked means the competition is in the catalog but a sufficiently complete machine-readable schedule has not been verified.
Validation
Structured imports are checked for required dates and participants, duplicate fixtures, impossible self-matchups and expected totals where the format makes a total reliable. Current football validators check league sizes such as 380 matches for a 20-club double round robin and 306 for an 18-club equivalent. The NFL sync requires at least 270 regular-season games, while the ICC import rejects rows without both participants.
A failed validation stops the update instead of replacing good stored data with an incomplete scrape. This protects the published calendars when an upstream website changes its markup or temporarily returns only part of a schedule.
Time and date handling
Dates are stored in ISO format. A local kick-off time is retained when the source supplies one; UTC is labelled explicitly where a regional feed provides UTC. Weekend windows are not silently converted into exact dates. If a source announces “6–8 November,” a compact planner may use a representative date only when the detail text preserves the full official window.
Revisions
Before a new release, source sync runs update the stored data and verification date. Generated HTML and PDFs are then rebuilt from the same records. Completed games may remain in a season calendar because the product is a full-season reference, but postponed or cancelled status is retained when supplied by the feed.
Print generation and quality checks
Printable routes are excluded from search indexing and canonicalise to the explanatory detail page. PDFs are generated in a headless browser from those print routes. Automated tests check metadata, canonical URLs, broken internal links, missing assets, fixture totals, PDF coverage and basic mobile overflow. Visual checks cover the home page, detail pages and representative portrait and landscape sheets.
Reporting a correction
Send the page URL, affected event, proposed correction and official supporting source to [email protected]. We review the source first and update both the web and downloadable versions together.