Context
I want to create a calendly clone, where I can set up an availability schedule and let people book slots.
The UX can be simple or complex, depending on needs.
A service department with regular hours needs a simple way to set up their year but also needs to set up holidays or closures.
A consultant may have limited availability and sets it per week.
The idea was to use different modules when appropriate for different use cases, and then use those settings to build a normalized schedule so that booking can work the same way.
However, Bookable Calendar provides a lot of what I'm looking for.
Questions
Can Bookable Calendar provide a foundation for the kinds of customizations I'm doing, so I can use it's structure instead of my own?
How does it handle adjustments to the schedule?
Discovery
Content Entities
Bookable Calendar: Independent schedules.
Calendar Opening: Recurring schedule items.
Has a multivalue date field, as well as recurring options.
Set number of available booking slots.
Booking Contact: Record of contact booking (email, party size, date).
Add fields to show on the booking form.
Opening Instances: Available slot.
Are these created by both the multivalue date field and recurring rules?
Date field
Uses Smart DateView Smart Date on Drupal.org to define opening instances, with recurring rules.
Schedule differences
Bookable Calendar has a set schedule of openings. Calendly has availability times, and meeting types can start any time within and have different lengths, chosen by the user.
Booking settings
Configure things like how far out to allow booking.
Expanding instances
Smart date limit hardcoded to 13 months in base field.
Instances expanded by smart date cron.
https://www.drupal.org/project/bookable_calendar/issues/3382622
Done
Install and configure bookable calendar with some demo content.
I was able to set up 3 different schedules and a combined booking calendar.