# Algorithm for Team Meetings scheduling optimization

Consider persons P (about 100) and teams T (ca 20), where each person is member of 2-3 teams. Schedule succession of meetings M of teams where each P can attend and optimize waiting time by running M in parallel, if possible

Optimal: Meetings of T (teams) should be scheduled as close in time as possible, ideally in parallel, if no P would be in same meeting of T at the same time.

Sub-optimal: Allow for meetings to run parallel, if only one, two P (or percentage of team-size) would be "overbooked", so those could only attend one of the parallel meetings.

For example:

P1 member of T1, T4
P2 member of T1, T3
....


Expected result:

|   Timeslot 1   |   Timeslot 2   |  Timeslot 3  ....
| T1: {P1 P2 P3} | T3: {P4 P2 P3} |  ....
| T2: {P4 P5 P6} | T4: {P1 P5 P6} |  ....
.....
.....


Minimize number of timeslots, maximize number of parallel meetings

Can someone point me to an algorithm?

Preferably in pseudo-code or C-style lang, or is there some routine available for this in any kind of library, or even a procedure in applications like Excel... Database..etc..?