Most tournaments have a scheduling problem that bleeds into the whole experience: last-minute walk-ups or drop-outs.

If the tournament selects a canned schedule for the final number of players, it must label them by ordinals or letters (Player A, Player 1), which puts another layer of indirection in finding opponents. At the end of the day this is a bit draining.

If the tournament presets a schedule, it must have more byes than necessary or it mixes up player names (where the walk-ups are the new drop-outs). In any case, it cannot accommodate more walk-ups than drop-outs, and so it may have to cap the tournament and turn away hopefuls.

Furthermore (e.g., for Munro or Benej), it is not always the case that we have enough tables to host all games of a complete schedule round, so a few players have to miss a game in any given round. At the end of the tournament it can become inefficient to do make-up rounds ad-hoc -- it takes at least as many additional rounds as the number of games missed by the most unlucky player.

I've created a scheduling application to run on Windows (but it's Python - once I clean it up I can put it on github and you can run it on Linux if you want). It packs intradivisional games optimally, and interdivisional games near-optimally on the tables available.

Specify:

* the players, by name and division served
* the tables, by their quality
* the order and multiplicity of scheduled blocks (intradivisional, interdivisional)
* output format (.csv, .txt) and location.

Run it as soon as everyone who's coming has arrived, print the output files, and distribute. The utility creates a schedule for every player, and the master list of rounds for the organizers.

* Score tables by quality; utility reschedules matches to maximize use of better games
* Even-up mechanism allows utility to have everyone play the same number of games, even if the divisions are ragged
* Balanced home vs. away games for all players
* New tabulate.exe takes schedule output from schedule.exe, marked up with scores, and compiles standings in .txt or .csv format