Just a thought: if you're only passing start times, could this issue occur?
The assistant is given a range of time slots and offers a 09:45 slot. However, the next busy slot starts at 10:00 and ends at 11:00. The assistant books the 09:45 slot without realizing it overlaps with the busy period, since the slots are 30 minutes long. If end times were provided, the assistant could have identified this as an unsuitable slot.
Do you have a filter in place to remove free slots that are too short?