Skip to main content

Add Scheduling Constraints

Define the rules the scheduler must respect when creating the schedule.

Written by Sarah McHugh

WHY THIS STEP | Constraints are what turn a raw list of matchups into a fair, playable schedule. A few well-placed rules (rest time, coach conflicts, venue limits, blackout windows) prevent the most common day-of complaints and let the AI scheduler do the heavy lifting.

  1. Open the Constraints tab and click Add Constraint.

  2. Choose whether the constraint applies to a Division (or multiple), a Team (or multiple), or is a Global Constraint (applies to all teams).

  3. Mark each rule as Required or Preferred, then click Save Changes.

Division Constraints

Division constraints are rules applied to an entire division.

Constraint

Use it when:

Sync bracket games

You don't want teams playing the numbers game going into the finals. Sync both semifinal games so they start at the same time.

Time constraint

Your Varsity division needs to wrap up before a school event — block or require specific windows for the whole division.

Venue or play surface constraint

Keep an entire division off a particular court that's reserved for another use.

Matches in the selected division(s) must play in the same venue

Your Varsity division draws the biggest crowd, so you want it all on the main venue for spectators, not split across facilities.

Matches in the same pool must play in the same venue

Keep each pool grouped at one venue so teams and fans aren't shuttling between courts.

Matches in the same bracket must play in the same venue

Keep an entire bracket run on a single court so it's easy to follow and stream.

Minimum Rest Time between all Stages

Guarantee teams get real rest between finishing pool play and starting bracket play.

Maximum Wait Time between all Stages

Prevent a long dead gap between the end of pool play and the start of brackets.

Team Constraints

Team constraints are rules applied to the individual teams or to a selection of specific teams.

Constraint

Use it when:

Time Restrictions

A team's bus won't arrive until 10am, or a couple athletes have another commitment that morning — block out the window so they're never scheduled into it.

Limit games per day

You don't want any team playing 5 games in a day even if the bracket math allows it — cap it at 3 or 4.

Venue or surface preference

A team's home gym is nearby and they'd rather stay there, or a team needs to avoid an outdoor surface.

Limit total play days

A team has to travel home early — keep their whole schedule inside fewer calendar days.

Minimum rest between games

A team played a physical game late — you don't want them right back on court 20 minutes later.

Max consecutive games

Prevent a team from being run through 4 games back-to-back with no break in one day.

Compact game window

A team needs to leave by 3pm — fit their exact number of games into a tight block beforehand.

Coach linked teams

One coach runs both the JV and Freshman team at the same school — link them so the scheduler never books their games at the same time.

Coach max facilities per day

A traveling coach oversees multiple teams — stop them from being routed between too many venues in one day.

Overnight minimum rest

Guarantee real recovery time between the last game of Day 1 and the first game of Day 2.

Global Constraints

Global constraints are rules applied to the entire schedule.

Constraint

Use it when:

Use least number of play surfaces as possible

You're renting courts by the hour and want to run the whole event on as few courts as possible to control cost.

End earliest on active surfaces

You want each day's active courts to wrap up early so staff and venues aren't held late.

Start matches at

You want the first slot of the day filled immediately rather than courts sitting empty at the start.

Max Gap

You don't want a court sitting empty for 90 minutes between games — keep teams and refs from waiting around.

Allowed pool days

You want all pool play wrapped up on Day 1 so Day 2 is dedicated entirely to bracket play.

Allowed bracket days

You want brackets to only run on the final day of the event.

Pool Round Ordering

You need pool games to run in generated round order — useful for predictability, standings, or a broadcast schedule.

Constraint Violations

What you are doing: Understanding how the scheduling system flags a match that breaks one of your constraints, and how to resolve it.

As you begin scheduling, every constraint you've set is checked against the matches being built. If a match breaks a constraint rule, it's flagged in two places: on the schedule grid itself, and in the Constraints Overview tab.

On the schedule grid

  1. A flagged match shows a small red icon on its card. Click the matchup.

  2. A popup message tells you exactly which constraint is being violated — for example, “A bracket game cannot start before a dependency has completed” or “A match must satisfy hard team time-window rules.”

In the Constraints Overview tab

  1. Every violation across your whole schedule appears together here, grouped under Severe Violations (violations you must fix) or Warnings (issues worth reviewing), with a count badge showing how many need attention.

  2. Each entry names the match, tells you it cannot be scheduled, and shows exactly which rule is causing it, tagged Required or Preferred.

Resolving a violation

  1. Click Resolve violation on any entry.

  2. If a direct fix is available, apply the Fastbreak Fix to automatically make the change.

  3. If no direct fix is available, the change needs to be made manually. Click Go to edit constraints to review the affected constraint and make a change.

  4. You can also skip the Resolve violation step entirely by dragging the flagged match to a new time slot on the grid that doesn't violate the constraint. This step clears the violation without manually adjusting the constraint.

TIP | The Overview tab flags Severe Violations (must fix) and Warnings (worth reviewing). Click Resolve violation to apply a fix, switch a rule to Preferred, or jump to edit constraints — or just drag the match to a new slot.

Did this answer your question?