Curling Schedules
The Curling Draw Schedule Builder creates balanced draws, tracks fairness, and lets you fine-tune every game with drag-and-drop editing. Use this guide to understand how each control works and how the interface responds while you plan events.
Top Controls
The controls above the schedule grid set the size of the draw and regenerate the layout.
Teams dropdown
The Teams dropdown selects how many teams participate (2–48). Adjustments preview immediately and commit on blur or when you stop dragging the slider in mobile browsers. Changing the team count queues a fresh baseline so the optimizer can rebuild the schedule with the new roster.
Sheets dropdown
The Sheets dropdown controls the number of active playing surfaces (1–16). When you lower the count, excluded sheets are removed from the grid; when you raise it, new empty columns are added. The optimizer only uses the sheets that remain visible.
Optimize / Reset button
The Optimize button runs the optimizer to try and improve fairness without disturbing manual assignments. If we've already calculated the most optimal layout for your settings in advance, then the optimizer button is disabled.
Shuffle button
Shuffle randomizes the teams across your schedule while maintaining the existing fairness metrics. Use it to explore alternative matchups while keeping the same team and sheet counts.
Fairness Metrics Bar
The line that begins with “Repeats per team:” summarizes fairness metrics for the current schedule. “Repeats per team” reports the maximum number of times any team appears, “consecutive” counts unwanted back-to-back appearances, and “total” counts excess games beyond the perfect round robin. Lower values indicate a more balanced draw.
Schedule Grid
The central table represents the full draw with one row per draw and one column per sheet. Cells contain draggable games and respond to sheet exclusions and conflicts.
Column headers
Each header displays the sheet label and a toggle icon. Click the icon to exclude or re-enable a sheet. Excluded sheets turn gray, strike through their labels, and are ignored by the optimizer until re-enabled.
Table cells
Cells show each matchup as a draggable game. Drag a game to another cell to move it, or drag it to another game to swap the two assignments. Cells highlight in yellow when they are valid swap targets, red when a placement introduces a conflict, and soft red when a conflict is persistent.
Bye column
If there is an odd number of teams, the final column shows “BYE” slots to guarantee each team rests once. These slots cannot receive games and help you verify that byes rotate evenly.
Drag-and-drop tips
- Drag a game to another cell to move it; drop on an occupied cell to swap.
- Cells outlined in yellow accept the drop and will swap; red outlines signal conflicts that will create duplicate teams in a draw.
- Dropping onto the queue removes the assignment while keeping the game ready to re-place.
- The optimizer respects manual placements; regenerate when you want a fresh baseline.
Sidebar
The sidebar provides quick actions for managing schedules, adjusting preferences, and staging games.
Schedules
The Schedules panel lists the active working copy, previously saved layouts, and a New schedule template. Each saved entry exposes actions so you can manage draws without leaving the sidebar.
Load / Reload
Load swaps the working grid to the selected schedule. Reload appears on the active entry and restores the last-saved state, discarding any unsaved edits.
Export CSV
Exports the chosen schedule as a CSV with draws, sheets, and matchup pairings—either from the active grid or directly from the saved copy.
Share
Opens the Share modal with a base64 share code plus metadata. Use Copy code to place it on the clipboard or Download to save the encoded text for teammates.
Copy
Duplicates the saved layout into a new entry so you can tweak variations without overwriting the original.
Delete
Removes the saved schedule after confirmation. The active working copy remains unaffected until you load another entry.
New schedule
Creates a fresh baseline using the default team and sheet counts—handy when starting a brand-new event.
Import code
Launches the Import modal. Paste a shared code, validate it, and then load or overwrite the current schedule once conflicts are resolved.
Settings
The Settings panel lets you rename the schedule, adjust the singular/plural venue labels, choose numeric or alphabetic sheet sequencing, toggle the draw-packing behavior (“Fill unused sheets with the next round”), and expand the Team names list for up to 48 custom entries. Apply commits pending changes; Cancel closes the panel without saving.
Save schedule
The Save flow collects a schedule title, highlights conflicts or validation warnings, and offers Save with an optional Overwrite action when a name already exists. Use it to store snapshots as you refine the draw.
Game queue
The queue drop zone labeled “Drag games here to unassign them” lets you temporarily park games while reorganizing draws. Games in the queue remain draggable back into any open cell, and the zone shares the same conflict-highlighting rules so you can spot issues before reassigning.