It’s a list of dates for “start” and “end”
. Trying to use LiftShifter to transform it right now.
Can you either
- Delete the :each item’s start part of that expression (as that would creates a List of Dates), and then check the Issue Checker to see what ‘calendar’s primary busy’ is evaluating to (example)
or 2. Send over Editor Access to the app via a direct message to me and include the page where to find this
Thing is that Bubble automatically makes a response from APIs into a type of that API.
Can’t provide editor access due to account limitations but I’m free to hop on a call if you are available. I think ListShifter will be the best bet here but not sure how to create the date range here. Please send me a DM if you are open to meeting.
Sending a DM
Ended up figuring this out by creating time ranges using a backend workflow. That also made app more secure by not bringing access tokens to frontend.
New problem I am trying to get past is limiting the number of events that a person can have booked with them in a week. For example, if a mentor wants to do 3 hours max a week (or six 30-minute sessions if that’s easier), is there a way to block off a week if they hit that max already?
One way would be to use the :extract week
functionality on a Date and using that to set conditions to hide days which fall in the same week as 3+ bookings with the same week. Likely some other ways if you get creative but that is just one of them
Will try that out. Thanks for the help and an awesome plugin! Was dreading setting up our new mentor feature until I found this. Will be using this for a lot of scheduling use cases in the app.
Plus with the demo allowing you to copy with workflows, I got a great looking scheduling tool with minimal work. THANKS AGAIN!
Thanks!
Hey @gf_wolfer great plugin, how would I filter a list of bookable resources by a date? e.g. once a date is selected the list only shows me resources that have availability on that date
I’ll reference this thread as I go into detail on one strategy there. The other strategy of saving bookable Time Slots in the database would be more performant and more ideal if search by date is the main function of your app and/or there are a lot of Resources that need to be searched
Hey @gf_wolfer
Excellent plugin. I downloaded about a week ago and have been struggling with setting the availability pattern. For some reason, it crashes my page once I run the workflow to add availability for each day it seems to freeze my page. Any solution for this ?
Hard to say exactly what the issue is, but if it is the Set Availability element I think it can only endlessly loop and crash if the values are empty. I would recommend checking the issue checker to make sure all the Start and End values have a value, and that the End is larger than the Start:
If that is not the issue then you can send me a private message with more screenshots/video or access to the editor with a description of where the issue is and I can help from there
Plugin Update version 2.3.0
- Very minor update - enabled the ‘Browser Time Zone’ element to be resizable. Thanks to Alexander for pointing this one out!
@gf_wolfer Thanks for all the support here - I was able to successfully install this plugin and create a Calendly clone for my app.
I have another use case and I am trying to understand if this plugin will work for it. I own a co-working space and want to create a booking calendar to reserve space in each of my conference rooms. I have 8 rooms that I want to display, with the ability for a user to see which times are available and then select a time range to book. Bookings can be in 30 minute increments but must be 1 hour minimum, with no maximum.
The way I am thinking of building this is a nested repeating group, where the outer shell is a RG of the 8 rooms, with each cell then holding an RG with 48 rows, 1 for each 30 min increment in the day. Is this something that I could get TopCal to hold the available ranges for each RG for each room? How would I work with duration and time slot increments here where the booking time is variable and not a set amount of time?
Here is an example of what it should look like.
That example uses the Full Calendar Resource feature I believe. I’ll have to think about this one more, but in this use case are the Rooms ‘default available’?
Meaning you don’t really set a schedule for the rooms but just check if there is already a booking at the time?
Thanks for your response. Yes each room is default available 24/7, so it’s not really displaying a schedule it’s just displaying Bookings that already exist with a specific start and end.
I have been asked about allowing Multiple Bookings on a single timeslot via email, DM’s and now in a plugin review so I am posting a response here for easier reference:
There are a couple of ways that multiple bookings could be done, but I think the simplest solution using the current TopCal setup is below. Note: this setup only works if a Schedule will always have the same number of Max Spots Available, so always X number of spots for all time slots under a specific schedule, each each time slot has a different number that can book it then you will need a slightly different setup.
- On the Schedule Data Type: add a ‘Max Capacity’ field (type = number)
- On the Schedule Data Type: add a ‘Booked Ranges’ field (type = list of date ranges)
-
Add an Action ‘Make Changes to booked Schedule’ when a Booking is made, after the new booking’s Create a Booking action:
- Only run the action when this condition is true: Do a search for Bookings, where the Start Time (time slot) is equal to the New Booking’s Start Time (time slot) AND status is ‘Booked’ (or whatever you use to know a booked vs canceled appointment) :count is equal to or greater than New Booking’s Schedule’s Max Capacity
- When this is true you will change add the Booked Range of the Time Slot to the Booked Ranges field on the Schedule
- Now on the Schedule/Calendar page and in the TopCal ‘Get Available time slots’ element, instead of searching for bookings to input in the Booked Ranges field, just reference Parent’s Schedule’s Booked Ranges
You will then also need a similar lookup logic for when a Booking gets canceled if your app allows it to adjust the Booked Range field and also if the User adjusts the Max Capacity number
*Another way is to create a Data Item for every Time Slot when the schedule gets set, and use Scheduled Workflows to create future time slots. Then it’s simple to attach a Capacity to the specific time slot. This is pretty data intensive though and changes how you lookup available Time Slots, but it might be necessary if every Time Slot can have a different amount of people book it and can provide other benefits like improved searching for available time slots.
Keep up the phenomenal work on this, @gf_wolfer . I’m gonna give the tool a spin for a project.
Cheers
@gf_wolfer Any suggestions on using a time picker other than the sliders for setting time availability? In the past I’ve used drop downs referencing an option set. Appreciate the help.
Cheers