Seating Plan Generator
Generate a classroom or wedding seating plan, with rules for who must sit together and who must not.
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
- Choose classroom or wedding mode.
- Paste your list of names, one per line.
- Set how many people go at each table.
- Add rules as Name + Name to keep people together, or Name - Name to keep them apart.
- Tap a table-size chip, or fill the list with numbered placeholders to test a room before the real names exist.
- 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.
| Problem | Example |
|---|---|
| Direct contradiction | Ana and Ben set to sit both together and apart |
| Transitive contradiction | Ana with Ben, Ben with Cara, but Ana apart from Cara |
| Group too large | Five people must sit together but a table seats four |
| Unknown person | A 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
| Item | Details |
|---|---|
| Input | Names, table size or count and rules for pairs. |
| Mode | Classroom or wedding. |
| Output | Tables with names, and any rule that could not be met. |
Issues you may run into
| What you see | Why it happens | What to do |
|---|---|---|
| A rule cannot be satisfied | Rules contradict or the tables are too small. | Relax a rule or add a table. |
| One extra table is used | The solver is greedy. | Move people by hand. |
| Neighbours at a table matter | There is no seat order. | Arrange within tables yourself. |
Assumptions and limitations
- The solver is greedy rather than exhaustive, so it may use one more table than a perfect solution would.
- It has no concept of table shape, position in the room, or who should sit next to whom within a table.
- Rules apply at table level only - you cannot specify adjacent seats.
- A group larger than a table cannot be honoured. It is split and named rather than silently broken.
- Nothing is saved between visits. Copy or print the plan before closing the tab.
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.