Seating Plan With Rules
Every table plan has the same two kinds of rule: these people must sit together, and those two must not. Doing it by hand is an evening with sticky notes, and the real trouble is not a bad plan but an impossible one — a rule that quietly contradicts another and is only discovered at the third rearrangement. Contradictions are found here first and named, and only then is a plan searched for.
What this generator does
Ties the must-sit-together people into blocks that move as one, checks the rules for contradictions, then places the blocks across tables — backtracking rather than giving up at the first clash.
How to use this tool
- Paste your guest list, one name per line.
- Write the must-sit-together rules, one per line: Ada and Bea, or Cal, Dee, Eli.
- Write the keep-apart rules the same way.
- Set the seats per table and read the plan.
Understanding the controls
- Guests
- One name per line. Repeats are dropped, and any name in a rule that is not on the list is reported rather than guessed at.
- Must sit together
- One rule per line, written with and, a comma, an ampersand or a plus. Naming three people on a line ties all three together.
- Must sit apart
- The same form. Naming three keeps all three at different tables, which is three rules rather than one.
- Seats per table
- Two to thirty. The number of tables follows from the guest count, and adding a seat is often what makes an awkward set of rules work.
Common use cases
- A wedding table plan with families to keep together and relatives to keep apart
- Seating a dinner where two guests must not be at the same table
- Splitting a class into tables with particular pairings kept or avoided
- Checking whether a set of requests is even possible before promising anything
- Rearranging quickly when a rule changes at the last minute
How this generator works
Contradictions are found before any searching. A group larger than a table cannot be seated at all; and two people who must sit apart, but who are each tied to the same third person, cannot be separated — which is worth saying immediately rather than after an hour of shuffling. When the rules are consistent, the finished plan is checked rule by rule: everybody has exactly one seat, no table is over its number, every must-sit-with pair shares a table and every keep-apart pair does not.
Randomness and fairness
Nothing is random. The same guests and rules always give the same plan, so a plan can be reproduced from the lists alone.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- It seats people at tables, not in particular chairs — who sits next to whom around a table is a separate question.
- All tables are the same size.
- Where several plans satisfy the rules, one is shown rather than all of them.
- A very tangled set of rules can defeat the search even when an arrangement exists; adding a table or a seat almost always settles it, and that is what the message says.
Privacy and your data
Your guest list and rules stay in your browser. Nothing you paste is transmitted or stored.
Related generators
- Table Plan GeneratorAssigns families and couples to tables without ever splitting a group, measured against the fewest tables the guest count allows.
- Round Table Seating GeneratorSeats guests around one table honouring who must sit together and who must not, with the wrap-around pair checked like every other.
- Meeting Time Across ZonesFinds the times of day that fall inside everyone's working hours, with the clocks and the dates worked out for each place separately.
- Envy-Free Rent Split CalculatorPrices the rooms in a shared house so every housemate prefers their own room at their own share to anyone else's.