Busy times of calendars between two times.
Returns free/busy information for a set of calendars.
Job calendar.freebusy.query
telipot run google-calendar.freebusy.query \
--input-json '{"timeMin":"2026-10-12T00:00:00Z","timeMax":"2026-10-19T00:00:00Z","items":[{"id":"primary"}]}' \
--as user:ana \
--quotePrice
FreePriced· before it runs
google-calendar.freebusy.query
FreePerson’s own
Whose account it uses
1The person asking · as Ana
Selected identity for this example2Your company’s Google Calendar account
skipped3Our account
not usedWhat it sends
{
"timeMin": "2026-10-12T00:00:00Z",
"timeMax": "2026-10-19T00:00:00Z",
"items": [{"id":"primary"}]
}Your Google Calendar login is added for you. Your AI never sees it.
What it costs
Free
no charge from the provider
Preview the price first. --quote runs nothing.
For developers · run it
Shell · runs the task on the named account
telipot run google-calendar.freebusy.query \
--input-json '{"timeMin":"2026-10-12T00:00:00Z","timeMax":"2026-10-19T00:00:00Z","items":[{"id":"primary"}]}' \
--as user:anatimeMin string · required | The start of the interval, an RFC 3339 time with an offset |
timeMax string · required | The end of the interval, an RFC 3339 time with an offset |
items array · required | The calendars to query, each an object with an id from google-calendar.calendars.list, or primary |
timeZone string · default "UTC" | The time zone of the times in the answer |
calendarExpansionMax integer | The most calendars to answer for |
timeMin string | |
timeMax string | |
calendars object | One entry per queried calendar id |
groups object | |
kind string |
Full output schema · JSONNested fields and constraints
Output JSON Schema
{
"type": "object",
"properties": {
"timeMin": {
"type": "string"
},
"timeMax": {
"type": "string"
},
"calendars": {
"type": "object",
"description": "One entry per queried calendar id",
"additionalProperties": {
"type": "object",
"properties": {
"busy": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string"
},
"end": {
"type": "string"
}
}
}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"reason": {
"type": "string"
}
}
}
}
}
}
},
"groups": {
"type": "object"
},
"kind": {
"type": "string"
}
}
}A real answer
examples/google-calendar.freebusy.query.json
{
"kind": "calendar#freeBusy",
"timeMin": "2026-10-12T00:00:00.000Z",
"timeMax": "2026-10-19T00:00:00.000Z",
"calendars": {
"contact@example.com": {
"busy": [
{
"start": "2026-10-12T17:00:00Z",
"end": "2026-10-12T17:30:00Z"
},
{
"start": "2026-10-14T22:00:00Z",
"end": "2026-10-14T23:00:00Z"
}
]
}
}
}
