Cerate an appointment module

I am trying to cerate an appointment module where the visitor would:

  1. Select a Person / service etc. … (Choice Component – Multiple List)
  2. Select a Month (Choice Component)
  3. Select a day based on a choice made within the “Month Choice Component”. The populated days need to be available days to book excluding the predefined weekends
  4. Time a time based on the “Select Day Choice Component”. The populated times need to be the available times to book within that date and within the pre-defined working hours.
  5. Reserve that date.
  6. Send a SMS / Email confirming the booking

I’ve been trying to work it out within google sheets but in vain.
Is there a way to do it in Glide? Can the Date/time Component handle this matter?
Need your help, Thanks

Last I checked there are no “cascading” Choice component abilities in Glide. Meaning that on the same entry screen you can’t have a choice component that links to another one that would somehow filter the selections available based on what has been selected on the other choice component. So that is a show stopper for the method you are trying.
I know the Glide team is working on an update of the choice component but I don’t know what features will be added.

I attempted something like this awhile back in https://g13gu.glideapp.io/. I got hung up though because the sheet started to get exponentially huge. Also the Multi-Level Select example in https://concepts.glideapp.io/ is a similar approach, but much simpler because there aren’t multiple months/days involved. May those will give you some ideas on a different approach. I think the problem with choice components in a form, is you can’t reestablish the list of items using relations because the data would first have to be submitted back to the form. You could possibly do it on a detail view screen first, then use the form button to pull in the selected choice values, but the detail view would have to have a row for each user. There is a new column value in staging that I hope would resolve this.

Thanks Jeff! The provided sample apps got me to think of approaching the issue from a different angle. What if an Interim/temp holding sheet is created and gets populated with the available dates over 2 weeks period using the following formula

> ={"TwoWeeks_ScheduleFromToday";ARRAYFORMULA(TEXT(ROW(INDIRECT("F"&DATEVALUE(Today())&":F"&DATEVALUE(today()+14))), "ddd dd/mm/yyyy"))}.

Thus, Temp sheet gets repopulated / updated every time a new reservation is made. The interim/temp sheet is used to populate the Date & hour choice component.
I attempted to create the temp sheet but did not figure out how to.
Do you that the idea is doable.

That’s an interesting formula. I haven’t seen anything like that before, but it seems to work. I did find a bit simpler way to do the formula. I created a sheet called Dates Example on the spreadsheet for your directory project. The first column would be a list of dates for assigned timeslots and would most likely be found in an appointments sheet. The second column is the list of dates going out 2 weeks. The third column builds a True/False if the date from the second column is found in the first column (date in appointments sheet). You can use a filter on a choice component to only display dates where the the true/false value is false. Once an appointment is made, then that date would be removed from the list. Hope that helps.

Thanks @Jeff_Hager, it worked out well. On the other hand, I have not been able to figure out, for the last couple of days, how to:

  1. Show all reservations for the current date range
  2. Filter by date

when user attempts to access these two options from the barber screen. The app link is https://zawia.glideapp.io

Again, thanks for the help