AI checking & booking for wrong date with GHL tool...
# support
r
Hey guys. I having problems with the AI checking & booking for the wrong day with the GHL check.availability and create.event tools. A lead asked for Monday at 12 pm (May 26th). The AI said "Perfect, I'll check the availability for this coming Monday" and then AI checked for May 24th (Saturday) and then booked for May 24th at 12pm. It booked the right time but on May 24th instead of 26th. I couldn't find any weird glitches in the message log. The AI just thought Monday = May 24th for some reason. It used the correct year (2025) so that wasn't the issue 🤔 Call ID = a3dae450-8bfd-4cbb-a437-f9ef5d9bfdeb Not sure if relevant, but: - Model = 4o cluster - Deepgram for STT
Below is the part where the AI hallucinated (trimmed to make it easier to read): { "role": "user", "message": "Monday. Monday.", { "role": "tool_calls", "time": 1747939697046, "message": "", "toolCalls": [ { "id": "call_LccJlGlGmOUW4RSnD0nmcUQS", "type": "function", "function": { "name": "get_free_slots", "arguments": "{\n \"calendarId\": \"vbD2NvROba6WDTcJ3mmE\",\n \"timeZone\": \"America/New_York\",\n \"startDate\": 1748102400000,\n \"endDate\": 1748188799999\n}" { "role": "user", "message": "12 o'clock.", { "role": "bot", "message": "Perfect. I'll check the availability for this coming Monday. Let me find some open time slots for you. Hang tight.", { "name": "get_free_slots", "role": "tool_call_result", "time": 1747939703507, "result": "[\n {\n \"type\": \"text\",\n \"text\": \"{\\\"2025-05-24\\\":{\\\"slots\\\":[\\\"2025-05-24T12:00:00-04:00\\\",\\\"2025-05-24T12:15:00-04:00\\\",\\\"2025-05-24T17:00:00-04:00\\\",\\\"2025-05-24T17:15:00-04:00\\\"]},\\\"traceId\\\":\\\"48f8bb52-f265-45a8-8c63-76002b715c00\\\"}\"\n }\n]", "toolCallId": "call_LccJlGlGmOUW4RSnD0nmcUQS", { "role": "tool_calls", "time": 1747939706372, "message": "", "toolCalls": [ { "id": "call_yqHilh5vr73o0O01tefnciTz", "type": "function", "function": { "name": "create_appointment", "arguments": "{\n \"calendarId\": \"vbD2NvROba6WDTcJ3mmE\",\n \"title\": \"Free Roof Inspection\",\n \"startTime\": \"2025-05-24T12:00:00-04:00\",\n \"endTime\": \"2025-05-24T12:45:00-04:00\",\n \"contactId\": \"5uAKHmtktEXnxMlZIdML\"\n}" { "role": "bot", "message": "Okay. Perfect. Your roof inspection is all set for Monday at 12 PM. You'll get a confirmation text shortly. Have a great day.",
v
Thank you for sharing the details. To help diagnose why the AI mapped "Monday, May 26th" to "Saturday, May 24th," could you please confirm if your assistant's system prompt or tool configuration uses any custom date parsing logic or dynamic variables (like
{{now}}
) when interpreting user date requests? This will help determine if the issue is related to prompt setup or tool behavior. Sources: - [GoHighLevel Tools Documentation](https://docs.vapi.ai/tools/go-high-level) - [Prompting Guide](https://docs.vapi.ai/prompting-guide) - [Dynamic Variables Guide](https://docs.vapi.ai/assistants/dynamic-variables)
v
Message marked as helpful by @Raph! 🎉
v
To reduce date misinterpretation, update your assistant's system prompt to explicitly confirm the interpreted date with the user before checking availability or booking. For example:
Copy code
markdown
If the user says a day like "Monday," use the current date (`{{now}}`) to calculate the next occurrence of that day. Then, confirm with the user:  
"Just to confirm, did you mean Monday, May 26th at 12 PM?"  
Only proceed if the user agrees.
This approach helps catch NLU errors and ensures bookings are made for the intended date. Sources: - [GoHighLevel Integration Documentation](https://docs.vapi.ai/tools/go-high-level) - [Prompting Guide](https://docs.vapi.ai/prompting-guide) - [Dynamic Variables](https://docs.vapi.ai/assistants/dynamic-variables)
r
@Vapi Support Bot I'm not using any custom date on the tool configuration. I was using it before on the description but removed it a few days ago, which helped fix some issues I was having. Currently my descriptions are empty for all my tools. There are no mentions to dates or any dynamic variables for dates in my system prompt.
v
To prevent date misinterpretation when users say things like "Monday," update your assistant's prompt to always confirm the interpreted date before proceeding. For example:
Copy code
markdown
"Just to confirm, did you mean Monday, May 26th at 12 PM?"
Only continue with availability checks or booking if the user agrees. This simple confirmation step helps catch NLU errors and ensures appointments are scheduled for the correct date. [See best practices in the Prompting Guide](https://docs.vapi.ai/prompting-guide) Sources: - [GoHighLevel Integration Documentation](https://docs.vapi.ai/tools/go-high-level) - [Prompting Guide](https://docs.vapi.ai/prompting-guide) - [Dynamic Variables Guide](https://docs.vapi.ai/assistants/dynamic-variables)
k
Can you send more call ids
v
I don't have access to any additional call IDs beyond the one already mentioned. If you have specific calls in mind, please let me know the details you have, and I'll do my best to help!
r
Hey @Kings_big💫 it just did the same with another call yesterday. The lead requested an appointment Tuesday at 4:45 pm and the assistant said "Tuesday, May 28th" which is incorrect (Tuesday is May 27th). Then it booked for Wednesday, May 28th. It keeps getting the date wrong like that, usually by 1-2 days. Screenshots below showing the appointment on Wednesday and the relevant part of the conversation. Call ID - 79e76483-1dc4-4296-bf49-75d356542b18 Please let me know if there's a way to fix this. Thanks a lot! https://cdn.discordapp.com/attachments/1375475162551554108/1376520784121696357/Screenshot_2025-05-26_at_8.15.51_AM.png?ex=6835a061&is=68344ee1&hm=bd45fb4282c6e2ec5028b9bcc0f3b9647170b109ae3be615f9fc633bd5892f7d& https://cdn.discordapp.com/attachments/1375475162551554108/1376520784343990413/Screenshot_2025-05-26_at_8.19.25_AM.png?ex=6835a061&is=68344ee1&hm=ecb097ce1260caa30eb42a9b07e8e46d73cd6271810254eb305835e4bc15dc16&
v
To prevent the AI from booking on the wrong date, update your assistant's prompt to always confirm the interpreted date with the user before proceeding. For example:
Copy code
markdown
"Just to confirm, did you mean Monday, May 26th at 12 PM?"
Only continue with availability checks or booking if the user agrees. This simple confirmation step helps catch NLU errors and ensures appointments are scheduled for the correct date. [See best practices in the Prompting Guide](https://docs.vapi.ai/prompting-guide) Sources: - [Prompting Guide](https://docs.vapi.ai/prompting-guide) - [GoHighLevel Integration Documentation](https://docs.vapi.ai/tools/go-high-level)
k
Looking into it
v
I'm sorry to hear the date misinterpretation issue is still happening, especially with the assistant booking appointments 1-2 days off from the requested date. The best approach, based on the information available, is to make sure your assistant always confirms the interpreted date and time with the user before proceeding with any booking. This extra confirmation step can help catch these errors and ensure appointments are scheduled correctly. If you've already implemented this and the issue persists, please continue to share specific examples—this can help with further investigation and improvement.
Thank you for sharing these details and examples. It sounds like the assistant is consistently misinterpreting requested dates by a day or two, even when no custom date logic or dynamic variables are in use. The best way to reduce these errors is to update your assistant's prompt so it always confirms the interpreted date with the user before proceeding with any booking or availability check. For example, after the user requests a date, the assistant should say: "Just to confirm, did you mean Tuesday, May 27th at 4:45 PM?" and only continue if the user agrees. This extra confirmation step helps catch any misunderstandings and ensures appointments are scheduled for the correct date. If you have already implemented this and the issue persists, please let us know any additional patterns you notice—your feedback is very helpful in improving the experience! Sources: - [Prompting Guide](https://docs.vapi.ai/prompting-guide) - [GoHighLevel Integration Documentation](https://docs.vapi.ai/tools/go-high-level)
k
Copy code
{
        "role": "assistant",
        "tool_calls": [
          {
            "id": "call_kxNPz3fsjRQwzR0h7E606bFq",
            "type": "function",
            "function": {
              "name": "get_free_slots",
              "arguments": "{\n  \"startDate\": 1748464800000,\n  \"endDate\": 1748551200000\n}"
            }
          }
        ]
      },
      {
        "role": "tool",
        "content": "[\n  {\n    \"type\": \"text\",\n    \"text\": \"{\\\"2025-05-28\\\":{\\\"slots\\\":[\\\"2025-05-28T16:45:00-04:00\\\",\\\"2025-05-28T17:00:00-04:00\\\",\\\"2025-05-28T17:15:00-04:00\\\"]},\\\"2025-05-29\\\":{\\\"slots\\\":[\\\"2025
In the content of the tool call, I see the date 2025-05-28, which is the starting point of the free slots. Can you show me where this piece is configured for GHL?