Skip to content
Back to skills

Google Calendar

BSecurity

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.

  • 221 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 4, 2026
securitypythongobashapi

Works with

  • cli
  • api

Security analysis

B84/100
  • criticalSends environment variables or credentials to an external URL
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 13 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add NeverSight/skills_feed --skill google-calendar --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google Calendar?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Google Calendar
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/neversight-google-calendar-learn-skills-dev/badge)](https://www.skillsdirectory.com/skills/neversight-google-calendar-learn-skills-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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:
- **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:
```bash
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
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:
   ```bash
   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:
   ```bash
   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
   ```
5. Install the required Python packages (once):
   ```bash
   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.

Files in this skill

  • SKILL.md3.2 KB
  • description_ar.txt323 B
  • description_cn.txt208 B
  • description_de.txt290 B
  • description_en.txt207 B
  • description_es.txt245 B
  • description_fr.txt288 B
  • description_it.txt240 B
  • description_ja.txt315 B
  • description_ko.txt287 B
  • description_ru.txt442 B
  • description_tw.txt214 B
  • stats.json65 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in security →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.