๐Ÿ—“๏ธ

Google Calendar API

Create, list, check availability, and delete Google Calendar events via REST API. Just pass your OAuth2 access token โ€” no additional setup on our end.

API Docs $0.003 / request

About this tool

These endpoints proxy the Google Calendar REST API v3 using the user's own OAuth2 access token. No credentials are stored โ€” you provide a fresh token per request. Supports creating events with attendees, listing events in a date range, checking free/busy availability, and deleting events.

4 Endpoints

Method Endpoint Description
POST /calendar/event Create a new calendar event
GET /calendar/events List events in a date range
GET /calendar/availability Check free/busy slots (Freebusy API)
DELETE /calendar/event Delete an event by ID

How to Get a Google OAuth2 Token

  1. Go to Google Cloud Console and create or select a project.
  2. Enable the Google Calendar API for your project.
  3. Go to APIs & Services โ†’ Credentials and create an OAuth 2.0 Client ID.
  4. Use the OAuth2 Playground at developers.google.com/oauthplayground.
  5. Authorize the scope: https://www.googleapis.com/auth/calendar
  6. Exchange the authorization code for tokens โ€” copy the access_token and pass it as google_access_token in your requests.

โš ๏ธ Access tokens expire after 1 hour. Use a refresh token flow in production.

POST /calendar/event โ€” Create Event

curl -X POST https://api.iteratools.com/calendar/event \ -H "Authorization: Bearer YOUR_ITERATOOLS_KEY" \ -H "Content-Type: application/json" \ -d '{ "google_access_token": "ya29.YOUR_GOOGLE_TOKEN", "title": "Team Meeting", "start": "2026-04-01T14:00:00-03:00", "end": "2026-04-01T15:00:00-03:00", "description": "Weekly sync", "attendees": ["alice@example.com", "bob@example.com"], "timezone": "America/Sao_Paulo" }'
{ "ok": true, "data": { "event_id": "abc123xyz", "html_link": "https://www.google.com/calendar/event?eid=...", "status": "confirmed", "summary": "Team Meeting", "start": { "dateTime": "2026-04-01T14:00:00-03:00" }, "end": { "dateTime": "2026-04-01T15:00:00-03:00" }, "attendees": [ { "email": "alice@example.com", "response": "needsAction" } ], "created": "2026-03-18T12:00:00.000Z" } }

GET /calendar/events โ€” List Events

curl "https://api.iteratools.com/calendar/events?google_access_token=ya29.YOUR_TOKEN&date_from=2026-04-01&date_to=2026-04-07&max_results=20" \ -H "Authorization: Bearer YOUR_ITERATOOLS_KEY"
{ "ok": true, "data": { "calendar_id": "primary", "total": 3, "events": [ { "event_id": "abc123", "summary": "Team Meeting", "start": { "dateTime": "2026-04-01T14:00:00-03:00" }, "end": { "dateTime": "2026-04-01T15:00:00-03:00" }, "status": "confirmed", "attendees_count": 2 } ] } }

GET /calendar/availability โ€” Free/Busy

curl "https://api.iteratools.com/calendar/availability?google_access_token=ya29.YOUR_TOKEN&date_from=2026-04-01&date_to=2026-04-01&timezone=America/Sao_Paulo" \ -H "Authorization: Bearer YOUR_ITERATOOLS_KEY"
{ "ok": true, "data": { "calendar_id": "primary", "time_min": "2026-04-01T00:00:00.000Z", "time_max": "2026-04-01T23:59:59.000Z", "busy_slots": [ { "start": "2026-04-01T17:00:00Z", "end": "2026-04-01T18:00:00Z" } ], "busy_count": 1, "is_free": false } }

DELETE /calendar/event โ€” Delete Event

curl -X DELETE https://api.iteratools.com/calendar/event \ -H "Authorization: Bearer YOUR_ITERATOOLS_KEY" \ -H "Content-Type: application/json" \ -d '{ "google_access_token": "ya29.YOUR_GOOGLE_TOKEN", "event_id": "abc123xyz" }'
{ "ok": true, "data": { "deleted": true, "event_id": "abc123xyz", "calendar_id": "primary" } }

Pricing

$0.003 per request via x402 micropayment on Base (USDC). All 4 endpoints share the same price.

Full Documentation Browse All Tools