eastern-cyan
eastern-cyan4h ago

google_calendar_check_availability_tool ignores timeZone and treats local timestamps as UTC (America

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).
3 Replies
Vapi Support Bot
Suggestion:
Try formatting your startDateTime and endDateTime fields with an explicit timezone offset in ISO 8601 format, like this:
{
"startDateTime": "2025-10-30T09:30:00-04:00",
"endDateTime": "2025-10-30T10:30:00-04:00",
"timeZone": "America/Toronto"
}
{
"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. Source: - Google Calendar tool documentation
⤵️ Mention @Vapi Support Bot for follow-ups 🐥
eastern-cyan
eastern-cyanOP3h ago
@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"
Vapi Support Bot
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:
{
"startDateTime": "2025-10-30T09:30:00-04:00",
"endDateTime": "2025-10-30T10:30:00-04:00",
"timeZone": "America/Toronto"
}
{
"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

Did you find this page helpful?