Check Availability
Check if you are free during a specific time period. Quickly determine if a time slot is available before scheduling.
Overview
The Check Availability tool verifies if a specific time slot is free in your calendar. It:
- Checks for conflicting events during the requested time
- Returns availability status (free or busy)
- Lists all conflicting events if busy
- Respects event transparency (transparent events don't block)
- Works with any calendar you have access to
Prerequisites
- A connected Google Account with OAuth authentication
- Google Calendar API enabled in your Google Cloud project
- Setup Guide
Usage
Basic Check
Check if a time slot is available:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-15T14:00:00",
"end_time": "2024-01-15T15:00:00"
}
}
Check with Timezone
Specify times with timezone information:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-15T14:00:00-08:00",
"end_time": "2024-01-15T15:00:00-08:00",
"calendar_id": "primary"
}
}
Check Specific Calendar
Check availability on a work calendar:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-15T10:00:00",
"end_time": "2024-01-15T11:30:00",
"calendar_id": "work@company.com"
}
}
Check Lunch Time
Verify lunch slot is free:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-15T12:00:00",
"end_time": "2024-01-15T13:00:00"
}
}
Check Short Meeting Slot
Verify a 30-minute slot:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-15T09:30:00",
"end_time": "2024-01-15T10:00:00"
}
}
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
start_time | string | Yes | - | Start datetime in ISO 8601 format (e.g., "2024-01-15T10:00:00" or "2024-01-15T10:00:00-08:00") |
end_time | string | Yes | - | End datetime in ISO 8601 format. Must be after start_time. |
calendar_id | string | No | "primary" | Calendar identifier. Use "primary" for main calendar. |
Date/Time Format
With timezone:
"2024-01-15T14:00:00-08:00"- Pacific time"2024-01-15T22:00:00Z"- UTC time
Without timezone:
"2024-01-15T14:00:00"- Interpreted in calendar's timezone
Response Format
Available (No Conflicts)
{
"success": true,
"is_available": true,
"requested_time": {
"start": "2024-01-15T16:00:00-08:00",
"end": "2024-01-15T17:00:00-08:00",
"duration_minutes": 60
},
"conflicting_events": [],
"conflict_count": 0,
"calendar_id": "primary",
"calendar_timezone": "America/Los_Angeles"
}
Busy (Has Conflicts)
{
"success": true,
"is_available": false,
"requested_time": {
"start": "2024-01-15T14:00:00-08:00",
"end": "2024-01-15T15:00:00-08:00",
"duration_minutes": 60
},
"conflicting_events": [
{
"id": "abc123xyz",
"calendar_id": "primary",
"status": "confirmed",
"summary": "Team Meeting",
"description": "Weekly sync",
"location": "Conference Room A",
"start": "2024-01-15T14:00:00-08:00",
"end": "2024-01-15T15:00:00-08:00",
"start_datetime": "2024-01-15T14:00:00-08:00",
"end_datetime": "2024-01-15T15:00:00-08:00",
"start_timezone": "America/Los_Angeles",
"end_timezone": "America/Los_Angeles",
"all_day": false,
"attendees_count": 3,
"organizer": {
"email": "you@gmail.com",
"self": true
},
"html_link": "https://www.google.com/calendar/event?eid=abc123xyz",
"visibility": "default",
"transparency": "opaque"
}
],
"conflict_count": 1,
"calendar_id": "primary",
"calendar_timezone": "America/Los_Angeles"
}
Multiple Conflicts
{
"success": true,
"is_available": false,
"requested_time": {
"start": "2024-01-15T09:00:00-08:00",
"end": "2024-01-15T17:00:00-08:00",
"duration_minutes": 480
},
"conflicting_events": [
{
"id": "event1",
"summary": "Morning Standup",
"start": "2024-01-15T09:00:00-08:00",
"end": "2024-01-15T09:30:00-08:00"
},
{
"id": "event2",
"summary": "Team Meeting",
"start": "2024-01-15T14:00:00-08:00",
"end": "2024-01-15T15:00:00-08:00"
}
],
"conflict_count": 2,
"calendar_id": "primary",
"calendar_timezone": "America/Los_Angeles"
}
Response Fields
| Field | Type | Description |
|---|---|---|
is_available | boolean | true if time slot is free, false if busy |
| Requested Time | ||
requested_time.start | string | Start time that was checked (ISO 8601) |
requested_time.end | string | End time that was checked (ISO 8601) |
requested_time.duration_minutes | integer | Duration of the requested slot |
| Conflicts | ||
conflicting_events | array | List of events that overlap (empty if available) |
conflict_count | integer | Number of conflicting events |
| Calendar Info | ||
calendar_id | string | Which calendar was checked |
calendar_timezone | string | Calendar's timezone |
Use Cases
1. Pre-Schedule Validation
Check if a time is available before creating an event:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-16T10:00:00",
"end_time": "2024-01-16T11:00:00"
}
}
If is_available is true, proceed with Create Event.
2. Find Alternative Times
If busy, check nearby times:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-16T11:00:00",
"end_time": "2024-01-16T12:00:00"
}
}
3. Multi-Calendar Check
Check availability across work and personal calendars:
First check work:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-16T14:00:00",
"end_time": "2024-01-16T15:00:00",
"calendar_id": "work@company.com"
}
}
Then check personal:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-16T14:00:00",
"end_time": "2024-01-16T15:00:00",
"calendar_id": "primary"
}
}
Only schedule if both return is_available: true.
4. Conflict Details
When busy, examine conflicts to decide if time can be rescheduled:
Look at conflicting_events[].summary and attendees_count to assess meeting importance.
5. Quick Time Verification
Before proposing a meeting time to others:
{
"tool": "google_calendar_Check_Availability",
"arguments": {
"start_time": "2024-01-17T15:00:00",
"end_time": "2024-01-17T16:00:00"
}
}
Error Handling
Missing Required Parameters
Error:
{
"error": "start_time is required"
}
Solution: Provide both start_time and end_time.
Invalid Time Range
Error:
{
"error": "end_time must be after start_time"
}
Solution: Ensure end time is chronologically after start time.
Invalid Date Format
Error:
{
"error": "Invalid datetime format. Use ISO 8601 format: ..."
}
Solution: Use ISO 8601 format like "2024-01-15T10:00:00" or "2024-01-15T10:00:00-08:00".
Calendar Not Found
Error:
{
"error": "Resource not found: Calendar not found"
}
Solution: Use List Calendars to find valid calendar IDs.
Tips
-
Transparent Events Don't Block - Events marked as "transparent" (free) are ignored. These show on your calendar but don't block scheduling.
-
All-Day Events Block - All-day events are treated as blocking the entire day if the requested time falls on that date.
-
Cancelled Events Ignored - Cancelled events don't count as conflicts.
-
Partial Overlaps Count - Even if the conflict is only 1 minute of overlap,
is_availablewill befalse. -
Check Before Create - Always check availability before calling Create Event to avoid double-booking.
-
Multiple Calendars - Check each calendar separately. If any calendar shows busy, the time is not fully available.
-
Past Times Allowed - You can check past times. Useful for verifying if you were busy at a specific time.
-
Timezone Handling - If you provide times without timezone info, they're interpreted in the calendar's default timezone.
-
Use with Find Slot - For finding available times, use Find Next Available Slot instead. This tool is for checking a specific time.
-
Conflict Details - When busy, examine
conflicting_eventsto understand what's blocking the time.
Limitations
-
Single Calendar - Checks one calendar at a time. Call multiple times for multiple calendars.
-
Authenticated User Only - Cannot check other people's availability. Only checks your own calendars.
-
No Suggestions - Only returns yes/no. Use Find Next Available Slot to get alternative time suggestions.
-
OAuth Only - Requires Google Account with OAuth (App Passwords don't support Calendar API).
-
No Freebusy API - Does not use Google's Freebusy API (which can check multiple calendars at once). For that level of functionality, use Find Next Available Slot.
Related Tools
- Find Next Available Slot - Find free times automatically
- Get Events - See all events in a time range
- Create Event - Schedule after confirming availability
- Get Today's Events - See today's schedule
- List Calendars - Get calendar IDs
Billing
Cost: 1 credit per execution
Fixed cost regardless of whether slot is available or how many conflicts exist.