Appointment System with Capacity Limits

Topic Labels: Base design
2116 1
Showing results for 
Search instead for 
Did you mean: 
4 - Data Explorer
4 - Data Explorer

Hi everyone!

I work for a small nonprofit tool-lending library and makerspace in Baltimore, MD. We offer a service called Open Shop, which is a time for the community to come use our equipment and workspace for woodworking, home repair, metalworking, or crafting projects.

Due to the pandemic, we’re moving to an appointment-based system for Open Shop and are trying to figure out how to best do that through Airtable. The biggest issue I’ve been struggling with is how to balance capacity limits and flexible scheduling. Ideally, we’d like people to book either 1-hour or 2-hour appointments that can start on the half-hour. We’d like the system to reserve a maximum of 4 overlapping appointments (aka people in the space) at any one time. For example, if there are 4 people with appointments from 5:00 pm to 6:00 and a fifth person tries to book from 5:30 to 6:30, the system should block that appointment because it would exceed the capacity limit of 4 people. Clients would need to be able to see what appointment slots are free versus full.

Any recommendations you can think of? Most of the example appointment systems in Airtable that I looked at can prevent overlapping appointments with an “Availability Table,” like this one here but I didn’t see a way to do that AND allow for appointments to be booked with varying start times and appointment lengths. If that’s not possible, then I’d prioritize the capacity limit over appointment flexibility.

Thanks so much in advance!

1 Reply 1
10 - Mercury
10 - Mercury

Hi Lynn, I haven’t thought hard enough about the varying start times problems, but the hourly capacity is doable with the “Availability Table.” You just need another field (Count) that counts the number of bookings in that time slot. Then, instead of your availability view filtering on time slots without reservations, you set it to filter on that count field less than some value (e.g. 4).

I think that should work, but this is just off the top of my head.