Group Scheduling


First let me compliment you on a very fine product, it’s quite robust and seems to meet all our needs. I’m using Gibbon for a summer camp, and my ultimate goal is to have all students enrolled in a roll group to be enrolled in the same classes and have the same schedule. Basically everyone in a particular roll group does the same thing.

I’ve tried this a few ways but keep running into a wall so perhaps you can brainstorm something I’m missing. It seems me that Sync Course Enrollment is the best function for this. But I have run into a snag as it seems that 2 different roll groups cannot be mapped into the same class.

For example we have 2 roll groups for the 4 years olds, 4A and 4B. However, when they are scheduled for swim they swim together. So I created one class called Swim4AB and tried to map both roll groups 4A and 4B into that Swim4AB class. The system interface won’t let me map more than one group into a class.

Then I thought, well I’ll tackle this on the flip side, I created 2 separate classes for swim Swim4A and Swim4B and thought I’ll just map the appropriate group into the appropriate class. New snag, the system will not allow me to schedule more than one class in a single location. Meaning I cannot schedule class Swim4A and Swim4B to be at the location Pool at the same time.

Seems I’ve run into a wall no matter which way I tackle this. Hoping you guys may have a solution that I missed.

Much thanks!

Hi Scott,

I think there are multiple possible solutions to your problem:

You probably could create a second (virtual) pool resource to avoid the collision.

If you work with imports and if you think a virtual pool on your timetable would irritate your students you could do something similar to and create three form groups for your scenario:


Then you create your class enrolment mapping for the year group 4 where you map 4A and 4 B to their classes and the form group 4 gets mapped to Swim4AB.

Now you would first import your students into form group 4, run “sync course enrolment”, reimport your students into their form groups 4A and 4B and rerun “sync course enrolment”

That way you could take attendance via the form groups 4A and 4B and the students see their timetable including swimming.

best regards,


Hi Paul,

Thanks for the suggestions! Creating an additional “pool” is definitely thinking outside the box, but I worry that might not be a viable solution as sometimes I’ll need to pull schedule reports based on location and if there is more than one pool I think that will cause issues.

The other option of having multiple form groups is interesting. I read your previous thread you linked to and I’m not sure it’s worth it to have the extra complexities of additional form groups vs importing campers manually into the swim classes instead of using the auto sync.

I guess further testing and experience will kind of be my deciding factor. Any other out of the box ideas I’d love to hear them

Thanks again!

After further testing it seems that it is possible to add 2 different classes to a single location, in this case the pool, in the same period, if I import the data using the Classes in Period import file.

So this leads me to believe that the fact I can’t choose the same location for 2 different classes during the same period when using the web interface should be classified as a bug. If I’m able to do it on an import then it would be logical to assume I should be able to do the same thing in the web interface.

Am I wrong?

Hi dsstudio,

no praise to me. I stole the concept of using virtual resources from the documentation of FET (a timetable solver).

I am still quite new to Gibbon, but I don’t think it is a bug in the web interface. I had a more or less similar experience with another import. No error was thrown but (not like in your case) it still did not work as expected. I can just speculate that web interface and import code do not run the same checks.
Since the importing was added later to Gibbon I would also assume, that the behaviour in the web interface is the desired one.

As far as I understand it, the reason for resource and room management is to prevent double booking. I saw it implemented this way (only one class in one room at the same time) also in other projects.
Therefore I think that it is great, that you found a workaround for your case, but if your workaround is the bug it would be possible that other parts of Gibbon, since you mentioned that reporting might be important for you, assume that there is only one class in one location at the same time which could lead to problems down the road. So please make sure you test this setup thoroughly.

Since you have only one swim class and if you don’t have too many year groups I think the tried and safe way would be to manually enrol your campers to the class.

While this is only speculating I am sure @ross and @admin are able to tell you which way to go.

Scott and Paul, about a year ago I had a similar situation. We tried a couple of approaches, and I’m not sure which one worked. But you might try something like Pool N and Pool S for the locations (to mean the north end of the pool and the south end of the pool). Therefore, Gibbon would consider them different locations. Also, the reason our 2 classes might have been conflicting was the same teacher was listed for both classes. (I don’t know if their logic assumes the same teacher can’t be in 2 places at once, as I haven’t checked the program code.) Since we had another teacher also present, we put one as a teacher of one class and the other as the teacher of the other. But something we did worked, and the problem disappeared.

Thanks for all the suggestions it would be helpful if @admin or someone on the admin team could comment. Thanks!

Hi Scott,

Thanks for your kind words on Gibbon! It’s always a pleasure when people enjoy using our little primate.

I think faced with the issue you describe I would use 4A and 4B for the form-group based classes, and then 4AB for the joint classes. I’d use the enrolment sync to automate student lists for 4A and 4B, and then, depending on the size of the school, I’d either manually enrol 4AB, or use an import to do it.

Does that sound workable?


Hi @admin Ross,

Sorry for the late reply. Thank you for the suggestion. I’m concerned that it would become cumbersome for staff to add new campers because they’d need to add them to multiple groups and the pool is only one example, there are co-located groups for lunch and other activities.

I’m wondering what other schools do for lunch for example. Certainly there must be schools where several groups each lunch at a single location, cafeteria for example? How do they do their programming?

I have found a workaround, that if I import using the Classes in Period file it does let me schedule multiple classes for the pool at the same time. I’m wondering if that’s a bug, or not being able to schedule multiple classes through the UI is a bug?

I don’t mind setting up classes this way through the importer, but if it’s working there with no harm, perhaps it’s something that can be implemented in the regular UI functions. Maybe a setting “allow multiple classes to be scheduled in the same location?”

Just some thoughts. Thanks for the assist!


Sugerencia, yo solicione el problema creando para el mismo espacio físico, con dos nombres diferentes por
Inicio > Administrar el Establecimiento > Configurar dependencias

Hi Scott,

You are right, this inconsistency is something that we ought to look at. Originally, the Timetable Admin interface was designed to reduce room clashes, but I can see times in which you’d want to schedule different classes in the same room (although I’ve never done this myself).

One option would be for the interface to foreground rooms not in use in the current period, but then also list (in a second opt group) those rooms that are in use. Perhaps with a warning when the latter are used.

@ross can you think of any knock-ons from such a change?



I’ve made a note to include this change in v23, I think it will be helpful for schools that need to creatively timetable their classes. I don’t see any knock on effects, as one school I’ve worked with has already been using the Importer workaround to double-timetable their classes for a few years now.