# google-calendar > Manages Google Calendar — creates, updates, and queries events, scheduling, and availability. Use when the user mentions calendar, meetings, appointments, agenda, or Google Calendar. - Author: shelden - Repository: Lilac-Labs/openclaw-skills - Version: 20260206160645 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/Lilac-Labs/openclaw-skills - Web: https://mule.run/skillshub/@@Lilac-Labs/openclaw-skills~google-calendar:20260206160645 --- --- name: google-calendar description: Manages Google Calendar — creates, updates, and queries events, scheduling, and availability. Use when the user mentions calendar, meetings, appointments, agenda, or Google Calendar. --- # Google Calendar ## Working Directory All commands must run from this skill's `scripts/` directory. Determine the path relative to this SKILL.md file: ```bash cd "$(dirname "")/scripts" ``` For the default install location: ```bash cd ~/.openclaw/skills/google-calendar/scripts ``` ## Auth Commands Run from `scripts/`. Tokens are stored at `~/.config/google-calendar-skill/token.json` and auto-refresh on expiry. | Command | Description | |---------|-------------| | `bun run auth.ts login` | Start OAuth flow (opens browser) | | `bun run auth.ts status` | Check authentication status | | `bun run auth.ts refresh` | Force-refresh the access token | | `bun run auth.ts revoke` | Revoke tokens and delete local credentials | | `bun run auth.ts token` | Print a valid access token (auto-refreshes) | ## Calendar Commands Run from `scripts/`. All commands accept `--calendar ` (defaults to `primary`). | Command | Description | |---------|-------------| | `bun run calendar.ts list [--from DATE] [--to DATE] [--max N]` | List upcoming events | | `bun run calendar.ts get ` | Get full event details (JSON) | | `bun run calendar.ts create --summary "..." [options]` | Create an event | | `bun run calendar.ts quick "text"` | Quick-add from natural language | | `bun run calendar.ts update [--summary ...] [--start ...]` | Update an existing event | | `bun run calendar.ts delete ` | Delete an event | | `bun run calendar.ts calendars` | List all calendars and IDs | | `bun run calendar.ts freebusy --from DATE --to DATE` | Query free/busy windows | ### Create flags Use exactly these flag names — the CLI does not accept aliases: `--summary` (required, the event title), `--start`, `--end`, `--description`, `--location`, `--attendees` (comma-separated emails), `--all-day`. Dates accept any JS-parsable format. Omitting `--start` defaults to 1h from now; omitting `--end` defaults to 1h duration. ```bash # Timed event bun run calendar.ts create --summary "Standup" --start "2026-02-07T10:00" --end "2026-02-07T10:30" # All-day event bun run calendar.ts create --summary "Vacation" --start "2026-03-01" --end "2026-03-05" --all-day ``` ## Workflow When handling a user's calendar request: ``` - [ ] 1. cd into scripts/ directory - [ ] 2. Check auth: bun run auth.ts status - [ ] 3. If not authenticated → tell user to follow SETUP.md in the source repo - [ ] 4. Run the appropriate calendar command - [ ] 5. If 401 error → bun run auth.ts refresh → retry - [ ] 6. If refresh fails → bun run auth.ts login - [ ] 7. Parse and present results to user ``` ## Additional Resources - For event fields, query parameters, recurrence rules, and attendee options, see [references/API.md](references/API.md)