Learn-skills.dev google-calendar
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.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/adrianmiller99/google-calendar/google-calendar" ~/.claude/skills/neversight-learn-skills-dev-google-calendar && rm -rf "$T"
manifest:
data/skills-md/adrianmiller99/google-calendar/google-calendar/SKILL.mdsource content
Google Calendar Skill
Overview
This skill provides a thin wrapper around the Google Calendar REST API. It lets you:
- list upcoming events (optionally filtered by time range or query)
- add a new event with title, start/end time, description, location, and attendees
- update an existing event by its ID
- delete an event by its ID
The skill is implemented in Python (
scripts/google_calendar.py). It expects the following environment variables to be set:
GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… GOOGLE_REFRESH_TOKEN=… # obtained after OAuth consent GOOGLE_ACCESS_TOKEN=… # short-lived, auto-refreshed GOOGLE_CALENDAR_IDS=… # comma-separated list of calendar IDs
Credential Storage (on this system): Credentials are stored in
~/.config/google-calendar/secrets.env as environment variable exports. To use them:
source ~/.config/google-calendar/secrets.env # Or: export $(grep -v '^#' ~/.config/google-calendar/secrets.env | xargs)
The
GOOGLE_ACCESS_TOKEN expires every ~1 hour. The skill will need to refresh it using the GOOGLE_REFRESH_TOKEN if expired.
Commands
google-calendar list [--from <ISO> --to <ISO> --max <N>] google-calendar add --title <title> [--start <ISO> --end <ISO>] [--desc <description> --location <loc> --attendees <email1,email2>] google-calendar update --event-id <id> [--title <title> ... other fields] google-calendar delete --event-id <id>
All commands return a JSON payload printed to stdout. Errors are printed to stderr and cause a non‑zero exit code.
Setup
- Create a Google Cloud project and enable the Google Calendar API.
- Create OAuth credentials (type Desktop app). Note the
andclient_id
.client_secret - Run the helper script to obtain a refresh token:
It will open a browser (or print a URL you can open elsewhere) and ask you to grant access. After you approve, copy theGOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.auth
it prints.refresh_token - Store the credentials securely:
openclaw secret set GOOGLE_CLIENT_ID <value> openclaw secret set GOOGLE_CLIENT_SECRET <value> openclaw secret set GOOGLE_REFRESH_TOKEN <value> openclaw secret set GOOGLE_CALENDAR_ID primary # optional - 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 a
service = build('calendar', 'v3', credentials=creds), and then calls the appropriate API method.
References
- Google Calendar API reference: https://developers.google.com/calendar/api/v3/reference
- OAuth 2.0 for installed apps: https://developers.google.com/identity/protocols/oauth2/native-app
Note: This skill does not require a GUI; it works entirely via HTTP calls, so it is suitable for headless servers.