Skip to main content
skill CX Codex

google-calendar — Claude Code skill: calendar access without an MCP

This skill lets your agent read Google Calendar, create and edit events, and find free slots. OAuth only, no MCP server involved.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sanjay3290/ai-skills --skill google-calendar -a claude-code
Open on GitHub

What google-calendar does

The skill handles the calendar chores: list calendars, view events over a date range, create, update and delete meetings, find an open slot for several attendees, and reply to invitations. You ask in plain language and the agent runs the call.

Two Python scripts sit behind it. scripts/auth.py manages login and logout, scripts/gcal.py does the actual work and auto-authenticates on first use if you are not logged in yet. Tokens go into the system keyring — Keychain on macOS, Credential Locker on Windows, Secret Service API on Linux — and expired ones get refreshed automatically.

One catch: a Google Workspace account is required. Personal Gmail accounts are not supported, so check which login you are on before wiring this up. Times use ISO 8601 with a timezone, and a non-primary calendar needs its ID from list-calendars, usually an email address.

Install for Claude with npx skills add sanjay3290/ai-skills --skill google-calendar -a claude-code.

What it helps with

  • check what is on the calendar next week
  • schedule a meeting with attendees and a description
  • find a shared free slot for several people
  • move an event to a different time
  • accept or decline an invitation without opening email

Example prompts for the agent

  • show my events for tomorrow
  • find a free hour this week for me and [email protected]
  • create a meeting called Sync on Friday 10 to 11 and add the agenda to the description

How to install google-calendar

1Skills CLI (Vercel)

npx skills add sanjay3290/ai-skills --skill google-calendar -a claude-code

2Manually: put the files in place

~/.claude/skills/google-calendar/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/google-calendar/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about google-calendar

How do I install google-calendar in Claude?

Run npx skills add sanjay3290/ai-skills --skill google-calendar -a claude-code. The skill then lands in ~/.claude/skills/google-calendar/SKILL.md.

What does google-calendar do?

It lists calendars and events, creates, updates and deletes meetings, finds free time, and responds to invitations. All of it goes through scripts/gcal.py, with scripts/auth.py handling login.

Does it work with a personal Gmail account?

No. A Google Workspace account is required; personal Gmail accounts are not supported.

Source text

SKILL.md · Apache-2.0
---
name: google-calendar
description: |
  Interact with Google Calendar - list calendars, view events, create/update/delete events, and find free time.
  Use when user asks to: check calendar, schedule a meeting, create an event, find available time, list upcoming events,
  delete or update a calendar event, or respond to meeting invitations. Lightweight alternative to full
  Google Workspace MCP server with standalone OAuth authentication.
license: Apache-2.0
metadata:
  author: sanjay3290
  version: "1.0"
---

# Google Calendar

Lightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.

> **⚠️ Requires Google Workspace account.** Personal Gmail accounts are not supported.

## First-Time Setup

Authenticate with Google (opens browser):
```bash
python scripts/auth.py login
```

Check authentication status:
```bash
python scripts/auth.py status
```

Logout when needed:
```bash
python scripts/auth.py logout
```

## Commands

All operations via `scripts/gcal.py`. Auto-authenticates on first use if not logged in.

### List Calendars
```bash
python scripts/gcal.py list-calendars
```

### List Events
```bash
# List events from primary calendar (default: next 30 days)
python scripts/gcal.py list-events

# List events with specific time range
python scripts/gcal.py list-events --time-min 2024-01-15T00:00:00Z --time-max 2024-01-31T23:59:59Z

# List events from a specific calendar
python scripts/gcal.py list-events --calendar "[email protected]"

# Limit results
python scripts/gcal.py list-events --max-results 10
```

### Get Event Details
```bash
python scripts/gcal.py get-event EVENT_ID
python scripts/gcal.py get-event EVENT_ID --calendar "[email protected]"
```

### Create Event
```bash
# Basic event
python scripts/gcal.py create-event "Team Meeting" "2024-01-15T10:00:00Z" "2024-01-15T11:00:00Z"

# Event with description and location
python scripts/gcal.py create-event "Team Meeting" "2024-01-15T10:00:00Z" "2024-01-15T11:00:00Z" \
    --description "Weekly sync" --location "Conference Room A"

# Event with attendees
python scripts/gcal.py create-event "Team Meeting" "2024-01-15T10:00:00Z" "2024-01-15T11:00:00Z" \
    --attendees [email protected] [email protected]

# Event on specific calendar
python scripts/gcal.py create-event "Meeting" "2024-01-15T10:00:00Z" "2024-01-15T11:00:00Z" \
    --calendar "[email protected]"
```

### Update Event
```bash
# Update event title
python scripts/gcal.py update-event EVENT_ID --summary "New Title"

# Update event time
python scripts/gcal.py update-event EVENT_ID --start "2024-01-15T14:00:00Z" --end "2024-01-15T15:00:00Z"

# Update multiple fields
python scripts/gcal.py update-event EVENT_ID \
    --summary "Updated Meeting" --description "New agenda" --location "Room B"

# Update attendees
python scripts/gcal.py update-event EVENT_ID --attendees [email protected] [email protected]
```

### Delete Event
```bash
python scripts/gcal.py delete-event EVENT_ID
python scripts/gcal.py delete-event EVENT_ID --calendar "[email protected]"
```

### Find Free Time
Find the first available slot for a meeting with specified attendees:
```bash
# Find 30-minute slot for yourself
python scripts/gcal.py find-free-time \
    --attendees me \
    --time-min "2024-01-15T09:00:00Z" \
    --time-max "2024-01-15T17:00:00Z" \
    --duration 30

# Find 60-minute slot with multiple attendees
python scripts/gcal.py find-free-time \
    --attendees me [email protected] [email protected] \
    --time-min "2024-01-15T09:00:00Z" \
    --time-max "2024-01-19T17:00:00Z" \
    --duration 60
```

### Respond to Event Invitation
```bash
# Accept an invitation
python scripts/gcal.py respond-to-event EVENT_ID accepted

# Decline an invitation
python scripts/gcal.py respond-to-event EVENT_ID declined

# Mark as tentative
python scripts/gcal.py respond-to-event EVENT_ID tentative

# Respond without notifying organizer
python scripts/gcal.py respond-to-event EVENT_ID accepted --no-notify
```

## Date/Time Format

All times use ISO 8601 format with timezone:
- UTC: `2024-01-15T10:30:00Z`
- With offset: `2024-01-15T10:30:00-05:00` (EST)

## Calendar ID Format

- Primary calendar: Use `primary` or omit the `--calendar` flag
- Other calendars: Use the calendar ID from `list-calendars` (usually an email address)

## Token Management

Tokens stored securely using the system keyring:
- **macOS**: Keychain
- **Windows**: Windows Credential Locker
- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)

Service name: `google-calendar-skill-oauth`

Tokens are automatically refreshed when expired using Google's cloud function.

© sanjay3290 · Apache-2.0 · sanjay3290/ai-skills

Similar skills

Everything for Notes, tasks and projects →

From the same set15

deep-research Runs multi-step autonomous investigations using the Google Gemini Deep Research Agent. Generates cited technical reports, market overviews, and competitive matrices. CX Codex +1 672installs imagen This skill turns a text prompt into a PNG using Google Gemini, saving the file straight into your project. Handy for icons, placeholders and docs illustrations. CX Codex +1 626installs postgres Runs safe read-only SQL queries against PostgreSQL databases. Helpful for inspecting schemas, running SELECT queries, and analyzing data without write risks. CX Codex +1 620installs mssql Runs read-only SQL queries against Microsoft SQL Server databases. Useful for exploring schemas and analyzing data without the risk of mutating records. CX Codex +1 537installs gmail Searches, reads, and sends emails through Gmail directly from the agent interface. Helpful for triaging the inbox, managing drafts, and organizing labels. CX Codex +1 516installs google-sheets This skill gives your agent read and write access to Google Sheets: pull ranges, append rows, search for files by name. Handy when the data lives in a spreadsheet, not in code. CX Codex +1 465installs mysql This skill runs SELECT queries against several MySQL databases and blocks every write. Handy when you want to inspect a schema or pull data without touching production. CX Codex +1 420installs google-slides A skill for searching, reading, creating, and editing Google Slides presentations directly from agent commands. Uses Python scripts with standalone OAuth. CX Codex +1 407installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor