Double bookings rarely happen because someone is careless — they happen because two people are updating the same schedule from two different tabs, and neither one can see what the other just typed. By the time anyone notices, a client is standing at the front desk for a slot that's already taken.
In this tutorial, we'll build an Appointment Conflict Detector — a table that automatically flags any appointment that overlaps with another one for the same staff member. No manual cross-checking, no double bookings slipping through.
Here's what we're working with — an Appointment table holding the staff member, date, start time, and end time for each booking.
Appointment table columns showing Staff, Date, Start Time, and End Time fields
Nothing fancy yet — just the raw facts of who's booked, when.
Add a handful of appointments across a couple of staff members, including at least one pair that deliberately overlaps.
Appointment table populated with sample bookings for Nadia Rahman and Tomás Alvarez
For this walkthrough, assume the following bookings for August 25, 2026:
Right now, nothing on this table tells you that Nadia has two people expecting her attention at the same time. That's the gap we're closing.
Since a plain column can't be converted into Custom Logic after the fact, create a brand new column and set its type to Custom Logic from the start.
Adding a new Custom Logic column on the Appointment table
Describe the rule in plain language — if this appointment's time range overlaps with another appointment for the same staff member on the same date, mark it as "Conflict"; otherwise, mark it as "Clear."
Describing the logic to detect overlapping time ranges for the same staff member
Confirm the clarification screen, checking that it correctly understood "overlap" as any shared time range, not just an exact match.
Clarification screen confirming the overlap comparison logic across appointments for the same staff member
Save it, and watch every row resolve immediately:
Appointment table showing Conflict Status column filled in for each booking
Let's prove that last point. Add a new appointment for Tomás Alvarez at 13:30 to 14:30 — deliberately overlapping his existing 13:00–14:00 slot
Adding a new appointment for Tomás Alvarez that overlaps his existing 13 00 to 14 00 slot
The moment it's saved, two rows update — not just the new one:
Tomás Alvarez 13:00–14:00 changes from Clear → Conflict
Tomás Alvarez 13:30–14:30 is created as Conflict
Both of Tomás Alvarez's overlapping appointments now flagged as Conflict
Knowing which appointments conflict is only useful if the front desk can see it without digging. Create a new view, filter where Conflict Status equals "Conflict," and save it as "Needs Rescheduling."
Saved filtered view named Needs Rescheduling showing only appointments flagged as Conflict
Now only the overlapping bookings for Nadia and Tomás show up — nothing else clutters the list.
This same comparison pattern extends beyond appointments — room bookings, equipment reservations, or shift schedules can all be checked for overlaps the same way, just by describing what "conflict" means for that context.
Try the Live Preview
On this page
Related articles
Explore more product articles and best practices for teams building with Ambisius.
Still Using Spreadsheets?
You Should Try This.
Turn familiar spreadsheets into a structured system built for your business
No commitment. No credit card required.

© 2026 Ambisius. All rights reserved.