Google Calendar Integration
Pricing
from $0.01 / 1,000 results
Google Calendar Integration
Sync events, create appointments & manage calendars programmatically. OAuth integration, recurring events & timezone handling for scheduling automation.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Create Google Calendar events from Apify actors. Schedule follow-ups, reminders, meetings, and events based on actor results. Perfect for sales automation, appointment booking, and workflow scheduling.
BYOK (Bring Your Own Key) -- you provide your own API credentials.
Before You Start
This actor requires your own API credentials to fetch real data.
Where to get your key: Google OAuth2 credentials object with access_token and refresh_token
You can test with Demo Mode first (free, no key needed) to see the output format before committing.
Quick Start
Test with Demo Mode (free, no API key needed)
{"demoMode": true}
Run with real data
{"demoMode": false,"credentials": "YOUR_API_KEY_HERE","accessToken": "YOUR_API_KEY_HERE","refreshToken": "YOUR_API_KEY_HERE","clientSecret": "YOUR_API_KEY_HERE","calendarId": "primary","timeZone": "America/New_York","allDay": false,"sendNotifications": true,"visibility": "default","conferenceData": false}
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
credentials | object | - | Yes* | Google OAuth2 credentials object with access_token and refresh_token |
accessToken | string | - | Yes* | Google OAuth2 access token (alternative to credentials object) |
refreshToken | string | - | Yes* | Google OAuth2 refresh token for automatic token refresh |
clientId | string | - | No | Google OAuth2 Client ID |
clientSecret | string | - | Yes* | Google OAuth2 Client Secret |
calendarId | string | "primary" | No | Google Calendar ID. Use 'primary' for default calendar or the full calendar ID. |
summary | string | - | No | The title/summary of the calendar event |
description | string | - | No | Detailed description of the event |
location | string | - | No | Event location (address or virtual meeting link) |
startDateTime | string | - | No | Event start in ISO 8601 format (e.g., 2024-12-25T10:00:00-05:00) |
endDateTime | string | - | No | Event end in ISO 8601 format |
timeZone | string | "America/New_York" | No | IANA time zone (e.g., America/New_York) |
allDay | boolean | false | No | Create an all-day event instead of timed event |
startDate | string | - | No | Start date for all-day events (YYYY-MM-DD) |
endDate | string | - | No | End date for all-day events (YYYY-MM-DD) |
attendees | array | - | No | Array of attendee email addresses |
sendNotifications | boolean | true | No | Send email notifications to attendees |
reminders | object | - | No | Custom reminder settings |
colorId | string | - | No | Event color (1-11) |
visibility | string | "default" | No | Event visibility |
conferenceData | boolean | false | No | Automatically add a Google Meet video conference |
recurrence | array | - | No | RRULE for recurring events (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']) |
bulkEvents | array | - | No | Array of events to create in bulk |
webhookUrl | string | - | No | URL to send results to (Zapier, Make, n8n, etc.) for automation workflows |
demoMode | boolean | false | No | Run in demo mode with sample data (no actual calendar events created). Set to false when using your own Google credentials. |
*Required when Demo Mode is off.
Pricing
This actor uses pay-per-event billing:
| Event | Description | Price |
|---|---|---|
| Event Created | Each calendar event created | $0.01 |
Demo mode is free -- no charges for sample data.
Troubleshooting
"API key is required"
You have Demo Mode turned off but didn't provide an API key. Either:
- Turn Demo Mode on to test with sample data
- Add your API key in the input
"API error 403" or "Unauthorized"
Your API key is invalid, expired, or doesn't have access to this specific API endpoint. Double-check your key and account permissions.
"API error 429" or "Rate limit"
Too many requests. Wait a minute and try again, or reduce the number of items per run.
No results or empty dataset
Check the run log for error messages. Common causes:
- Invalid input format (check the examples above)
- API key without proper permissions
- The target data doesn't exist or is too small to track
How do I test without an API key?
Enable Demo Mode in the input. This returns realistic sample data so you can verify the output format works for your workflow.
Built by John Rippy | Actor Arsenal