Do you need it to work across time zones, like when the booker with existing bookings is in a different time zone than the professional?
Do you need to generate more than one potential timeslot when both are available?
Do you want to incorporate the normal availability schedule of the professional, so not just their existing bookings but also their availability like 9am - 3:30PM?