Meet with Me: A Booking App that Prevents Conflicts

Robert, do you have a way for the app to know conflicts from Google calendar?

No, not at this time. Glides going in the right direction with Google Authentication, but until Glide itself can pull user calendar information, I can’t see this happening in the foreseeable future.

You know what…I stand corrected. You could use some sort of Zapier action to import your Google calendar events into your sheet and do a check against that too…issue would be if you changed events in your Google Calendar. You’d need a separate Zapier to recognize event changes. Also, the zapier trigger from the glide app could trigger the other trigger to import from Calendar once you accept the invite resulting in a duplicate event.

So it’s clunky…but possible.

2 Likes

This is amazing work!

1 Like

Had to try this out!

The Zap:

Here’s the zap that imports to the Response tab of the Google Sheet:

Proof of concept:

Made a new 30-min Google Calendar Event on 4/6 at 7:00. You can see it generates a new row in the sheet which is recognized by Glide and results in the time slot being unavailable.

If you try this out for yourself, make sure you leave the end date_time tag empty. The sheet fills this in automatically based on the duration. Adding this tag will break the Arrayformula in the sheet.

The Other Zap:

Here’s the Zap that will delete the item from the Glide app sheet if deleted from the calendar. This one is not instant.

Only thing I haven’t figured out is if you edit the event (change date/time). My original Zap created a second row in the sheet with the new information rather than modifying the old one.

2 Likes

You’re the best, thanks for sharing!

1 Like

One question:
Say User1 booked a meeting at 11:00 am on April 9th, for 1 hour.
How do you prevent User2 from booking at 10:30 am on April 9th for 1 hour? As of now the app would let User2 to book that time, even though it would interfere with User1’s meeting.

Maybe establish how long the person would like to meet before going to the form?

Yep…@Jonathon_Kohn noticed that too and came out with a fix. I plan to edit my template soon!

1 Like

The fix was moving the duration portion of booking to the first step along with date and time, then using the same duration mechanism during that first step to prevent booking into an existing event. That mechanism is a godsend for me. Thanks to @Robert_Petitto and @Jeff_Hager and the whole Glide community!

2 Likes

Understood, thanks Robert!

Hey @Robert_Petitto have you noticed any issues with your date pickers and the formats that are being sent to the sheet and/or the choice components in your app?

Date pickers/pretty dates have been wonky past couple days. Haven’t looked specifically at the Meet with Me app today. I’ll take a look this evening.

Solved it. Im using the Date Time picker now. I verify the chosen start time to be in increments of 30 min by dividing the date time by 30 and formatting for only the seconds BUT the lag is allowing the booking button to appear while it divides… If its not “00” they haven’t chosen the right start time. Durations are in 1 hour increments.

I believe this gives a true date/time to filter but again, I have no way to make the booking button instantly appear or disappear if the time is not #:00 or #:30

1 Like

Continuing the discussion from Meet with Me: A Booking App that Prevents Conflicts:

I reconfigured the app a bit to prevent conflicts prior to existing bookings per @Jonathon_Kohn’s suggestion. However, I wanted it to be a bit more flexible. My version calculates start date/time + duration to see if it’s available. It works, but there’s a lag because Glide does not allow for math columns to calculate dates.

…so it has to be done in the sheet. :unamused:

If ever Glide allows date calculation…this will be an instant check.

In addition, I added the ability for customization of durations without needing to copy/configure sheet formulas:

Lastly, the Upcoming Bookings calendar at the bottom of the homepage is now private to non-admins. Only Admins will be allowed to view meeting details for confidentiality. Admins also can customize the images in the booking form/calendar details from within the app.

I was trying to find a way to allows admins to customize durations from within the app, but couldn’t figure it our. Any ideas?

3 Likes

For admin only in app option changes use a sidebar menu/tab and use a list view to add or allow deletion of list items from the duration column.

The instant math check in sheets would be a game changer. I currently use a text warning and table verification to let the booker know to wait 5-10 seconds to verify the information they chose is correct and this allows time for the booking button to appear or not :frowning:

I just completed my flight scheduler last night.

Using a now()+add() function I populate a column in my options sheet with current date and time in 30 minute intervals from which the users choose a new booking date/time.

Then 2-24 hour duration in 1 hour increments.

Then 1 of 6 aircraft.

And finally 1 of 4 instructors.

144 columns compared against 144 columns and it all works just fine! Again, the math lag is the worst part but fingers crossed these boys come up with a hack!!

2 Likes

Not yet, eh? Maybe one day…

On the plus side, I was able to create an integromat integration that allows Google calendar to “sync” with Google Sheets (add, edit and delete Google Sheet rows)

…now if only Glide could connect to integromat directly…one can wish.

Yeah, I’ve already tried too :frowning:

Hi Robert! The app looks great. Have you by any chance also incorporated an integration where, once the meeting is scheduled and the zoom call created, a button appears which will launch the newly created zoom call? Or would a different platform serve this purpose more easily?

Yes, the button will appear if a Zoom call is created. Still working on the logic… still getting false availability when the starting time + duration falls at an available time but isn’t really available.

Eg. 1:00-1:15 is not available. If I schedule a 12:45 for 15, it will let me; for 30, it won’t, but for 45 or 60 it will since 12:45 + 45/60 is 1:30/1:45. Working on the logic where it will let me book for the minimum allowed if it runs up to another event but now allow me book For any of the later durations afterwards.