No-Conflict Appointment Scheduler

Use Case: You have a table of stylists, therapists, technicians, etc. (“agents”) who perform any number of services, and customers are supposed to schedule an appointment with an agent to perform a service but only when that agent is available. While you think the No-Conflict Asset Reservations script is great, it doesn’t take into account your need to schedule an agent for more than one appointment per day.

Solution: No-Conflict Appointment script by Kamille. An improvement upon my previous script, you can now schedule same-day appointments assuming those appointments don’t overlap. It allows users to select a service, pick a qualified agent/employee to perform that service, and then select upcoming dates and times which work for that agent. The script opts to use buttons as opposed to text box inputs to reduce human error in typing in correctly formatted date/time strings.



Since there isn’t a datetime picker input type, I basically hacked my own using two conditional button inputs.


Demo:


Instructions: This script includes a “variables” section to be as plug-and-play as possible. To customize the script to fit your needs, edit the BaseSpecificNames values to match your base’s table and field names. Then edit the SCRIPT SETTINGS values to adjust business hours, appointment time intervals, etc.

You can copy the sample base from the Universe here:

or you can copy the script by itself from the link below:

4 Likes

Thanks Kamille. I’m trying to get into Airtable to create a booking form for a meeting room, so I’m trying to use and understand your base. But how could I add a booking? I would expect a form for this, where an user can find the available timeslots. Hope you can help this newbie :wink:

The idea is for this script is that it is a replacement for the Airtable Form View. Currently a limitation of the Scripting Block is that it can’t be run by non-collaborators, meaning you won’t be able to share the Scheduler Script with outside parties. If that’s not an issue, open the Blocks panel click the “Run” button in the scripting block.

If you need outside persons to fill in a form, you can always just make a regular ol’ Form View for the and share that with clients, but Form Views allow duplicative/overlapping appointments (which is exactly the problem this script solves). That’s where the Detect Scheduling Conflicts script by Jeremy Ogelsby would come in handy, which you’d run every so often to help clean up overlapping appointments.

Hi Kamille,

I’ve reviewed your past uploads and found these very helpful as I experiment with scripts!

I want to add new tables for reservations to a preexisting base that links video/shoot information.
The issue I’ve run into with setting up a space using shared script templates around this topic are the following:

  • A need to reserve more than one space and reserve one or more videos following a single campaign
    (Ex: Studio 1 & Green Room reserved for Test Campaign Video 1 & Test Campaign Video 2)

  • No duration time needed, only IN/OUT times for scheduling (Studios/HMU/Green Room…) would be efficient w/o needing to add in multiple requests per video shoot if all happening at the same time/day

I’m not sure how much would need to be changed to your Script template to fit a production-based schedule, but I’d appreciate any advice from you and the community.

Try the other version of my script detailed in this post, which allows users to select more than one record:

Okay, I’ll give it a try. Thank you!