🦀 ClawHub
Google Calendar
by @adrianmiller99
Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
TERMINAL
clawhub install google-calendar📖 About This Skill
name: google-calendar description: Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
Google Calendar Skill
Overview
This skill provides a thin wrapper around the Google Calendar REST API. It lets you:The skill is implemented in Python (scripts/google_calendar.py). It expects the following environment variables to be set (you can store them securely with openclaw secret set):
GOOGLE_CLIENT_ID=…
GOOGLE_CLIENT_SECRET=…
GOOGLE_REFRESH_TOKEN=… # obtained after OAuth consent
GOOGLE_CALENDAR_ID=primary # or the ID of a specific calendar
The first time you run the skill you may need to perform an OAuth flow to obtain a refresh token – see the Setup section below.Commands
google-calendar list [--from --to --max ]
google-calendar add --title [--start --end ]
[--desc --location --attendees ]
google-calendar update --event-id [--title ... other fields]
google-calendar delete --event-id
All commands return a JSON payload printed to stdout. Errors are printed to stderr and cause a non‑zero exit code.Setup
1. Create a Google Cloud project and enable the *Google Calendar API*. 2. Create OAuth credentials (type *Desktop app*). Note theclient_id and client_secret.
3. Run the helper script to obtain a refresh token:
GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.auth
It will open a browser (or print a URL you can open elsewhere) and ask you to grant access. After you approve, copy the refresh_token it prints.
4. Store the credentials securely:
openclaw secret set GOOGLE_CLIENT_ID
openclaw secret set GOOGLE_CLIENT_SECRET
openclaw secret set GOOGLE_REFRESH_TOKEN
openclaw secret set GOOGLE_CALENDAR_ID primary # optional
5. Install the required Python packages (once):
pip install --user google-auth google-auth-oauthlib google-api-python-client
How it works (brief)
The script loads the credentials from the environment, refreshes the access token using the refresh token, builds aservice = build('calendar', 'v3', credentials=creds), and then calls the appropriate API method.References
Note: This skill does not require a GUI; it works entirely via HTTP calls, so it is suitable for headless servers.
⚙️ Configuration
1. Create a Google Cloud project and enable the *Google Calendar API*.
2. Create OAuth credentials (type *Desktop app*). Note the client_id and client_secret.
3. Run the helper script to obtain a refresh token:
GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.auth
It will open a browser (or print a URL you can open elsewhere) and ask you to grant access. After you approve, copy the refresh_token it prints.
4. Store the credentials securely:
openclaw secret set GOOGLE_CLIENT_ID
openclaw secret set GOOGLE_CLIENT_SECRET
openclaw secret set GOOGLE_REFRESH_TOKEN
openclaw secret set GOOGLE_CALENDAR_ID primary # optional
5. Install the required Python packages (once):
pip install --user google-auth google-auth-oauthlib google-api-python-client