google_calendar_check_availability_tool ignores ti...
# support
r
Hey team — running into a timezone mismatch with the default Google Calendar availability tool. I’m passing Toronto time, but the tool seems to check in UTC and reports the slot as free even though there’s a real event at that local time. Tool config / metadata { "id": "de30655c-1d63-47fb-8c15-7258faa24b50", "type": "google.calendar.availability.check", "function": { "name": "google_calendar_check_availability_tool", "description": "checks for availability on a given date, timezone America/Toronto", "parameters": { "type": "object", "properties": {}, "required": [] } }, "metadata": { "calendarId": "*********************", "timeZone": "America/Toronto" } } Invocation { "startDateTime": "2025-10-30T09:30:00", "endDateTime": "2025-10-30T10:30:00", "timeZone": "America/Toronto" } Actual response { "busy": [], "free": [ { "start": "2025-10-30T09:30:00.000Z", "end": "2025-10-30T10:30:00.000Z" } ] } There is an event on Oct 30, 2025, 9:30–10:30 AM America/Toronto on this calendar. I’d expect busy to include that window (or free to be empty / non-overlapping).
v
Suggestion: Try formatting your
startDateTime
and
endDateTime
fields with an explicit timezone offset in ISO 8601 format, like this:
Copy code
json
{
  "startDateTime": "2025-10-30T09:30:00-04:00",
  "endDateTime":   "2025-10-30T10:30:00-04:00",
  "timeZone": "America/Toronto"
}
This ensures the tool interprets the times in the correct timezone, as recommended in the documentation. For more details, see the [Google Calendar tool documentation](https://docs.vapi.ai/tools/google-calendar). Source: - [Google Calendar tool documentation](https://docs.vapi.ai/tools/google-calendar)
r
@Vapi Support Bot I did it like this is that ok? - When the caller gives a time (e.g., “9:30 am”), interpret it in America/Toronto, then convert to UTC for tool calls. with an explicit timezone offset in ISO 8601 format "2025-10-30T09:30:00-04:00"
v
Yes, your approach is correct! When the caller provides a time in America/Toronto, convert it to an ISO 8601 string with the explicit offset, like:
Copy code
json
{
  "startDateTime": "2025-10-30T09:30:00-04:00",
  "endDateTime":   "2025-10-30T10:30:00-04:00",
  "timeZone": "America/Toronto"
}
This matches the best practice in the documentation and should resolve the timezone issue you experienced. Source: - [Google Calendar tool documentation](https://docs.vapi.ai/tools/google-calendar)
r
Still having issues
c
Modify this prompt that I have made to your timezone and it should at least return the correct times:
Copy code
The current date and time is {{"now" | date: "%A, %B %d, %Y, %I:%M %p", "America/Los_Angeles"}}

Do not use startTime and endTimes that are older than {{"now" | date: "%A, %B %d, %Y, %I:%M %p", "America/Los_Angeles"}}

### Calendar Check
When a customer wants to schedule an appointment, use the `google_check` tool to check for free time on the calendar for the specified date and time range. If the time slot from the response is in the `busy` object, do not say it. Only say the `free` time slots if there are any. Anything that is outside of the 8 AM - 5 PM PST range is considered not available. Assume all times given by the user are in PST timezone. Make sure any time slot given by the user is converted from PST to UTC before executing the `google_check` tool. Ask the user if any of the time slots from the result work for them.
Do not suggest dates or times older than {{ "now" | "America/Los_Angeles" }}
Once they confirm which date they would like to have the appointment, use the `google_schedule` tool to create the event in the calendar for the user's preferred date.