eastern-cyan•4h 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
Suggestion:
Try formatting your
For more details, see the Google Calendar tool documentation. Source: - Google Calendar tool documentation
Try formatting your
startDateTime and endDateTime fields with an explicit timezone offset in ISO 8601 format, like this:
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-cyanOP•3h 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"
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: This matches the best practice in the documentation and should resolve the timezone issue you experienced. Source: - Google Calendar tool documentation
When the caller provides a time in America/Toronto, convert it to an ISO 8601 string with the explicit offset, like: This matches the best practice in the documentation and should resolve the timezone issue you experienced. Source: - Google Calendar tool documentation