Seating Plan Generator

Generate a classroom or wedding seating plan, with rules for who must sit together and who must not.

Seating plan
Mode
Plan
Add some names to generate a plan One per line. Rules go in the two boxes below the list, and any that cannot be met are named rather than quietly broken.

What this tool does

Enter your people, how many go at each table, and any rules about who must or must not sit together. The plan is generated to satisfy every rule it can - and where a set of rules is impossible, it says which one and why rather than quietly breaking it.

Groups people into tables while honouring must-sit-together and must-sit-apart rules, in classroom or wedding mode.

Checks the rules for contradictions before seating anyone, and names any that cannot be satisfied. A plan that silently breaks a rule is worse than one that explains it cannot.

How to use it

  1. Choose classroom or wedding mode.
  2. Paste your list of names, one per line.
  3. Set how many people go at each table.
  4. Add rules as Name + Name to keep people together, or Name - Name to keep them apart.
  5. Tap a table-size chip, or fill the list with numbered placeholders to test a room before the real names exist.
  6. Check the figures above the plan for the fullest and emptiest table, and how many seats are spare.

Why use this generator

Seating a wedding or classroom means balancing who must sit together and who must not, and checking by hand is slow. A tool that checks the rules first avoids plans that quietly break one.

Why we built it

We built the seating plan generator to detect constraints that cannot all be met and say which one is impossible. Split people into groups first with the random team generator and shuffle names with the list randomizer.

If your task goes further, try the Crochet Pattern Maker and the Bingo Card Generator.

Who this tool is for

  • Teachers arranging a classroom
  • Wedding and event planners
  • Managers planning a meeting room

When to use it

  • Wedding or event seating.
  • Classroom or workshop groups.
  • Applying separate and together rules.
  • Producing a first draft to adjust.

When rules contradict each other

This is the part most seating tools get wrong, and it is the reason to use this one.

It is very easy to write a set of rules that cannot all be true at once, particularly with a large group where different people contributed different requirements.

Most generators respond by silently dropping one rule and producing a plan anyway. You then discover the problem at the event, which is the worst possible time. This one checks first and tells you.

What gets caught
ProblemExample
Direct contradictionAna and Ben set to sit both together and apart
Transitive contradictionAna with Ben, Ben with Cara, but Ana apart from Cara
Group too largeFive people must sit together but a table seats four
Unknown personA rule naming someone who is not on the list

The transitive case is the interesting one. If Ana must sit with Ben, and Ben must sit with Cara, then Ana and Cara are already at the same table - so a rule keeping them apart is impossible, even though that pair appears in only one list. Nothing about it looks wrong when you read the rules.

A typo in a name is caught too. "Sarah" and "Sara" in different rules look fine to a human and are two different people to a solver, so unknown names are reported rather than ignored.

How the plan is built

People linked by must-sit-together rules are merged into groups first, following the links transitively so a chain of pairs becomes one group.

Groups are then placed largest first, into the first table with room where nobody is set apart from them. Placing the large groups first matters - fit them last and they have nowhere to go.

If no existing table works, a new one is opened. That is a deliberate choice: an extra table is a smaller problem than a broken rule, so the generator will never force two people together to avoid adding a table.

The approach is greedy rather than exhaustive. An exact solver would be far slower and no more useful here, because a human always adjusts the result anyway.

Classroom and wedding modes

The difference is defaults and labels rather than logic. Classroom mode defaults to four per table and calls them groups; wedding mode defaults to eight and calls them tables.

  • For a classroom, regenerate periodically rather than fixing seats for a term - most of the benefit comes from the change.
  • For a wedding, seat the difficult rules first by entering them as must-sit-apart, and let everything else fall out.
  • A top table is easier handled by leaving those people off the list entirely and seating them by hand.
  • Print the plan and check it against your own knowledge. No solver knows why two people should not sit together.

What you give it, and what you get back

Input and output of Seating Plan Generator
ItemDetails
InputNames, table size or count and rules for pairs.
ModeClassroom or wedding.
OutputTables with names, and any rule that could not be met.

Issues you may run into

Common problems with Seating Plan Generator
What you seeWhy it happensWhat to do
A rule cannot be satisfiedRules contradict or the tables are too small.Relax a rule or add a table.
One extra table is usedThe solver is greedy.Move people by hand.
Neighbours at a table matterThere is no seat order.Arrange within tables yourself.

Assumptions and limitations

Frequently asked questions

How does the seating plan generator work?

People linked by must-sit-together rules are merged into groups, then placed largest first into the first table with room where nobody is set apart from them. If no table works, a new one is opened.

What happens if my rules contradict each other?

It tells you which rule is impossible and why, before producing a plan. Most generators silently drop one rule instead, which means you discover the problem at the event rather than while planning.

What is the difference between classroom and wedding mode?

Defaults and labels. Classroom mode uses four per table and calls them groups; wedding mode uses eight and calls them tables. The logic is identical.

Can I say that two people must sit together?

Yes - write Name + Name on its own line. Use Name - Name to keep two people apart. Chains work: A + B and B + C puts all three at the same table.

Why did it create an extra table?

Because no existing table could take that person without breaking a must-sit-apart rule. An extra table is a smaller problem than a broken rule, so the generator will always prefer one.

Can I print the plan?

Yes. The print button opens your browser print dialogue with the controls hidden, so you get just the plan. You can also copy it as plain text.