google-calendar

v2026.09.24

Accesses the Google Calendar and Tasks API. Use this skill to view or manage calendars, events, schedules, or Google tasks.

GitHub
Install command
npx skhub add dotneet/google-calendar
Markdown
SKILL.md

Google Calendar + Tasks Access

Quick start

  • Create a Google Cloud OAuth client (Desktop app) and save the credentials JSON to ~/.config/google-calendar/credentials.json.
  • Install dependencies (venv recommended):
    python3 -m venv ~/.config/google-calendar/venv
    ~/.config/google-calendar/venv/bin/pip install -r <skill_dir>/scripts/requirements.txt
    
  • Authenticate and store a token:
    • Calendar only:
      • <skill_dir>/scripts/gcal-auth
    • Tasks only:
      • <skill_dir>/scripts/gcal-auth --scopes https://www.googleapis.com/auth/tasks
    • Calendar + Tasks (single token):
      • <skill_dir>/scripts/gcal-auth --scopes https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/tasks
  • Call the API:
    • <skill_dir>/scripts/gcal list-calendars

Credentials and tokens

  • Credentials are expected at ~/.config/google-calendar/credentials.json by default.
  • Tokens are stored at ~/.config/google-calendar/token.json by default.
  • Use --token or GCAL_TOKEN_PATH to switch accounts or isolate environments.

Date/time rules

  • Use RFC3339 for timed events (e.g., 2026-01-22T10:00:00-08:00).
  • Use YYYY-MM-DD for all-day events and set end to the next day (exclusive).
  • Set --time-zone when the datetime has no offset.

Common commands

  • List calendars:
    • <skill_dir>/scripts/gcal list-calendars
  • List events:
    • <skill_dir>/scripts/gcal list-events --calendar-id primary --time-min 2026-01-22T00:00:00-08:00 --time-max 2026-01-22T23:59:59-08:00
  • Search events:
    • <skill_dir>/scripts/gcal list-events --calendar-id primary --q "standup" --time-min ... --time-max ...
  • Create event (simple):
    • <skill_dir>/scripts/gcal create-event --calendar-id primary --summary "Review" --start 2026-01-22T10:00:00-08:00 --end 2026-01-22T11:00:00-08:00
  • Update event (simple):
    • <skill_dir>/scripts/gcal update-event --calendar-id primary --event-id <id> --summary "New title"
  • Delete event:
    • <skill_dir>/scripts/gcal delete-event --calendar-id primary --event-id <id>
  • Free/busy:
    • <skill_dir>/scripts/gcal freebusy --calendars primary,team@company.com --time-min ... --time-max ...
  • List task lists:
    • <skill_dir>/scripts/gcal list-tasklists
  • List tasks:
    • <skill_dir>/scripts/gcal list-tasks --tasklist <tasklist_id>
  • Create task:
    • <skill_dir>/scripts/gcal create-task --tasklist <tasklist_id> --title "Buy milk" --due 2026-01-22T10:00:00-08:00
  • Update task:
    • <skill_dir>/scripts/gcal update-task --tasklist <tasklist_id> --task-id <id> --notes "Bring receipt"
  • Delete task:
    • <skill_dir>/scripts/gcal delete-task --tasklist <tasklist_id> --task-id <id>

Advanced usage

  • Use call to hit any Calendar API endpoint:
    • <skill_dir>/scripts/gcal call GET /users/me/calendarList
    • <skill_dir>/scripts/gcal call POST /calendars/primary/events --body-file /path/to/event.json
  • Use --body-file or --body (JSON string) for complex payloads (attendees, recurrence, conferenceData).
  • Run multiple accounts by using different token files with --token.

Safety

  • Confirm intent before creating, updating, or deleting events.
  • Keep OAuth credentials and token files out of git.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

google/skills/google-calendar

Default branch

main

Latest commit

07fa7ea

Tree SHA

14ea660