cal.com icon indicating copy to clipboard operation
cal.com copied to clipboard

Incorrect calendar conflict checking when using flexible durations

Open dinoboy197 opened this issue 2 years ago • 0 comments

Issue Summary

(I was directed by customer support to file a bug ticket here).

When using flexible duration events, calendar conflicts are not checked correctly for long durations selected by the booker.

Steps to Reproduce

My timezone and booker's timezone are UTC-10 (Pacific/Honolulu).

  1. Create future calendar entries in connected Google Calendar with three hour gap: 8am–10am and 1pm–4pm. For example, I have created two calendar events with a three hour gap between them on December 20th:

image

  1. Create cal.com event with a variety of flexible schedules for the booker to choose (30 mins, 60 minutes, 90 minutes, 180 minutes), with 30 minutes before and after each calendar event of mandatory buffer, and set to 15 minute intervals. (The event that I've created to replicate this issue is at https://app.cal.com/event-types/156829). See how this event is configured:

image

image

  1. Access booking page for this event using a different browser profile (not connected to that Google Calendar or cal.com account).
  2. Select the day of the calendar events (in my case, December 20th).
  3. Select individual durations on the page, and verify the start times available on that day for each duration. These should respect the 15 minute scheduling timelock and 30-minute buffer before and after existing calendar events. Here are the meeting start times that should appear between 7:00am and 1pm:
  • 30-minute meeting: 7:00am, 10:30 am, 10:45am, 11:00am, 11:15am, 11:30am, 11:45am, 12:00pm
  • 60-minute meeting: 10:30 am, 10:45am, 11:00am, 11:15am, 11:30am
  • 90-minute meeting: 10:30 am, 10:45am, 11:00am
  • 180-minute meeting:

Instead, the following times are shown as available in the cal.com UI:

  • 30-minute meeting: 7:00am, 7:15am, 10:45am, 11:00am, 11:15am, 11:30am, 11:45am, 12:00pm, 12:15pm
  • 60-minute meeting: 7:00am, 7:15am, 10:45am, 11:00am, 11:15am, 11:30am, 11:45am, 12:00pm, 12:15pm
  • 90-minute meeting: 7:00am, 7:15am, 10:45am, 11:00am, 11:15am, 11:30am, 11:45am, 12:00pm, 12:15pm
  • 180-minute meeting: 7:00am, 7:15am, 10:45am, 11:00am, 11:15am, 11:30am, 11:45am, 12:00pm, 12:15pm

Here are screenshots:

30-minute duration selected for Dec 20th: image

60-minute duration selected for Dec 20th: image

90-minute duration selected for Dec 20th: image

180-minute duration selected for Dec 20th: image

Technical details

dinoboy197 avatar Dec 17 '22 19:12 dinoboy197