calcom / cal.com

Scheduling infrastructure for absolutely everyone.
https://cal.com
Other
32.19k stars 7.91k forks source link

Allow wave scheduling #17354

Open suyashkumar2409 opened 4 days ago

suyashkumar2409 commented 4 days ago

Is your proposal related to a problem?

For appointment bookings, wave scheduling is an algorithm which minimizes no-shows. The most basic implementation involves allowing people to book appointments ahead of time, but also provide a secondary option for walk-ins. Walk-ins would have to wait, and may not even get a slot, but in case of a no-show, a walk-in gets the slot instead. This is commonly used in doctor appointments, typically in person.

Describe the solution you'd like

Let's say I set that I am available today from 12pm - 5 pm for appointments, and my limit is 2 slots. 2 people have already booked so my slots for the day are full. A "wave scheduling" page would automatically be created if the scheduler chooses this option, and this allows people to sign up for an ad-hoc slot between the range of 12pm - 5pm with the understanding that this booking is not guaranteed, but offers them a slot in case one of the other 2 appointments don't end up happening.

Describe alternatives you've considered

Wave scheduling can be simulated by creating two separate kinds of events where one is the primary, guaranteed appointment and the other is the larger range, volatile, not-guaranteed appointment, and then the scheduler will have to coordinate on his own on how to upgrade the secondary appointment to a primary appointment when the primary appointment gets cancelled. Obviously this is loss of productivity, and cal.com can provide this feature directly.

Additional context

I am seeking team-mates to work on this in parallel to approval of this feature request. I am open to pursuing it alone in case more people aren't interested in developing this but the community needs this feature.

Requirement/Document

I will write the design doc once this feature gets approval from the moderators. I am open to driving this feature end to end.


House rules
mukiralad commented 4 days ago

Hello, I'm really excited about the potential of this wave scheduling feature to optimize booking flows and reduce no-shows. I believe we can implement this by dynamically managing appointment slots and creating a secondary 'waitlist' mechanism that triggers on cancellation events. I’m eager to collaborate on designing this feature, leveraging real-time event handling (webhooks/queues) to ensure seamless upgrades of waitlist slots when a primary appointment is canceled.

Looking forward to contributing to the technical implementation once this FR gets approval!

bharatr21 commented 4 days ago

Hello, I'm eager to work on this feature as well! I have prior experience working on Appointment Booking and having "soft bookings" like these particularly help during lean periods of demand. I believe the order of priority could be primary appointments, then those with range bookings, then walk-ins if they happen to occur at the same time. Eager to contribute once this FR is approved!