Scheduling Matches
Schedule Planner
The Schedule Planner (Rounds → Schedule, scoped to one stage) generates matches for a stage automatically from a schedule template. Templates are bundled with the installation and fall into exactly two generation types:
round-robin— every entry plays every other entry, using pre-computed pairing tables (Berger-table style) keyed by entry count.race— all entries compete together in the same round (used for non-head-to-head contests, e.g. timed or ranked events); each "round" is a single event containing every entry.
There is no automatic knockout/bracket generation. A template whose type is anything other than round-robin or race is listed but shown disabled with a "planned" label — it cannot actually be run. Knockout brackets are built by hand, using the regular Rounds/Matches screens.
Only templates matching the stage's/project's contest type are usable: round-robin templates apply to head_to_head contests, race templates apply to race contests.
Options
template_id— which schedule template to use.start_date/start_time— when the first round is scheduled, in the project's (or match's) effective timezone.round_interval_days— days between successive rounds (1–365).match_interval_minutes— minutes between matches within the same round (0–1440;0schedules them all at the same time).first_match_number— starting value formatch_number(auto-incremented per generated match).race_rounds— number of rounds to generate for arace-type template (1–200; not used for round-robin).return_legs— when enabled (round-robin only), also generates the mirrored return-leg fixtures (home/away reversed) for a double round-robin.assign_home_venues— automatically assigns each match's venue from the home entry's default venue, where available.published— whether generated matches are created published or unpublished.allow_conflicts— allows applying a schedule even if conflicts were detected (see below); without it,error-severity conflicts block applying.
Preview and apply
Changing options and clicking Preview runs the generator without saving anything: it shows the resulting rounds, each round's date, the matches with their participants and computed local time, any bye (an entry with no match in that round, round-robin only with an odd entry count), and a checksum of the generation.
The preview also runs conflict detection and lists each conflict with its severity:
- error (blocking unless
allow_conflictsis on) — a participant or venue double-booked at the same time, or a head-to-head match with no venue assigned. - warning (non-blocking) — for example a match falling after the project's or stage's end date.
Once a preview looks correct, Apply Schedule creates the matches. Applying is idempotent: the checksum is computed from the stage, template, entry seeds and options, so re-applying the same options again does not create duplicate matches — it reuses the existing generation. Applying requires the joomleague.project.edit.schedule permission on the project.
Entries are pulled either from an explicit stage-entry assignment (if the stage uses explicit entry selection) or from all published project entries, ordered by seed/ordering.
Project Schedule
The Project Schedule screen (Project → Schedule) is a read-only, filterable list of every match across all stages and rounds of a project — the place to review the full fixture list after generating and/or hand-building schedules, rather than working stage-by-stage.
Filters include:
search— free text against match code, number, and contest type; or an exact match by id usingid:<number>syntax.publishedstatus.status_code.stage_id/round_id.date_from/date_to.
Each row shows the participant names, the match's date/time converted to its effective timezone for display, and — once a match is finalized — its formatted result. Users with edit permission on the project can export the filtered list to CSV from the toolbar.