Curling Schedules

Create a complete round robin, adjust the draw by hand, and keep the finished schedule in your browser. No account is required.

Open the schedule builder

Build the schedule

Teams, sheets, and iterations

Choose 2 to 48 teams and 1 to 16 sheets. An odd number of teams adds a BYE column automatically. Iterations repeat the entire round robin, so every pairing plays once per iteration.

Ad hoc games

Use Ad hoc games when you have extra weeks but not enough time for another full round. Pick any two different teams and click Add game. The matchup enters the game queue as a normal draggable card so you can place it in the extra draw you want. A small badge shows whether this is the teams’ second, third, or later meeting. You can add the same matchup more than once.

Round packing

By default, each round begins in a fresh row. Open Settings and enable Fill blanks with the next round to pull later games forward when both teams are free.

Edit the grid

Drag a game to an open cell to move it. Drop it on an occupied cell to swap the two games. Drag a game into the queue to leave it unassigned, then drag it back when you find a place for it.

Red cells and cards show a conflict, which means one team appears twice in the same draw. The builder allows the move so you can work through an incomplete rearrangement without losing it.

Every schedule includes two empty buffer draws after its last assigned game. Use them to make room for manual changes and ad hoc games.

Exclude a sheet

Use the minus button in a column heading to take that sheet out of service. Games are regenerated across the sheets that remain. At least one sheet must stay active.

Optimize and shuffle

Optimize reduces repeated sheet assignments while preserving matchups. Shuffle teams changes which team number occupies each schedule position while keeping the shape of the draw.

Inspect fairness

Click Max repeats on one sheet, Total repeats, or Back-to-back repeats to outline the game cards behind that number. Click the selected metric again or press Escape to clear the inspection.

Names

Open Settings to change the schedule title and rename teams. Sheets are always labeled alphabetically.

Changing generation settings after a manual drag asks for confirmation because regeneration replaces your custom layout.

Save and share

Click Save to keep the working schedule in this browser. Schedules… lets you load, reload, copy, share, export, and delete saved schedules.

Your schedules stay on this device. Clearing browser storage removes them. Download a share code or CSV if you need a separate backup.

Share codes

A share code contains the complete schedule, including its manual layout, team names, settings, iterations, and ad hoc games. The recipient opens Schedules…, clicks Import code, pastes the code, validates it, and imports it.

CSV export

CSV export includes one row per draw, columns for active sheets, and a BYE column when needed. Excluded sheets and games left in the queue are omitted.

Embed the builder

The production build includes a custom element for sites that want to offer the complete local-storage builder:

<script src="/curlingschedules.widget.js"></script>
<curling-io-scheduler></curling-io-scheduler>

Use the module build at /curlingschedules.widget.module.js when your site loads JavaScript modules.