Skip to content
google-calendar-automation logo

Google Calendar

google-calendar-automation

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

techwavedev/agi-agent-kit0installs4stars

SKILL.md

Full skill instructions

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):

python scripts/​auth.py login

Check authentication status:

python scripts/​auth.py status

Logout when needed:

python scripts/​auth.py logout

Commands

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

List Calendars

python scripts/​gcal.py list-calendars

List Events

# 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

python scripts/​gcal.py get-event EVENT_ID
python scripts/​gcal.py get-event EVENT_ID --calendar "[email protected]"

Create Event

# 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

# 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

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:

# 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

# 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.


<!-- AGI-INTEGRATION-START -->

AGI Framework Integration

Adapted for @techwavedev/​agi-agent-kit Original source: antigravity-awesome-skills

Memory-First Protocol

Cache workflow configurations and automation patterns. Retrieve prior pipeline designs to avoid re-building similar flows from scratch.

# Check for prior workflow/​automation context before starting
python3 execution/​memory_manager.py auto --query "automation patterns and workflow configurations for Google Calendar Automation"

Storing Results

After completing work, store workflow/​automation decisions for future sessions:

python3 execution/​memory_manager.py store \
  --content "Workflow: automated data pipeline with retry logic, dead-letter queue, and Slack alerts on failure" \
  --type technical --project <project> \
  --tags google-calendar-automation workflow

Multi-Agent Collaboration

Share workflow state with other agents so they can trigger, monitor, or extend the automation.

python3 execution/​cross_agent_context.py store \
  --agent "<your-agent>" \
  --action "Workflow automation deployed — pipeline processing 1000+ events/​day with 99.9% success rate" \
  --project <project>

Playbook Engine

Combine this skill with others using the Playbook Engine (execution/​workflow_engine.py) for guided multi-step automation with progress tracking.

<!-- AGI-INTEGRATION-END -->