mcpField
G
gccli

gccli

github.com/badlogicProductivity2.6k174 installsUpdated 21w ago
Repository

About gccli

A command-line interface for Google Calendar, intended for managing calendars, events, and availability. It supports listing and viewing events, creating events, and checking free/busy periods after OAuth setup.

Key features

  1. 01List calendars and events
  2. 02View event details
  3. 03Create calendar events
  4. 04Check free/busy availability
  5. 05Manage OAuth account setup

Use cases

  1. 01Review events across calendars
  2. 02Create a scheduled calendar event
  3. 03Check availability for a time range

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/badlogic/pi-skills --skill gccli

After installing, type/gccliin Claude Code to confirm it loaded.

Details

From the project README

Google Calendar CLI

Command-line interface for Google Calendar operations.

Installation

npm install -g @mariozechner/gccli

Setup

Google Cloud Console (one-time)
  1. Create a new project (or select existing)
  2. Enable the Google Calendar API
  3. Set app name in OAuth branding
  4. Add test users (all Gmail addresses you want to use)
  5. Create OAuth client:
    • Click "Create Client"
    • Application type: "Desktop app"
    • Download the JSON file
Configure gccli

First check if already configured:

gccli accounts list

If no accounts, guide the user through setup:

  1. Ask if they have a Google Cloud project with Calendar API enabled
  2. If not, walk them through the Google Cloud Console steps above
  3. Have them download the OAuth credentials JSON
  4. Run: gccli accounts credentials ~/path/to/credentials.json
  5. Run: gccli accounts add <email> (use --manual for browserless OAuth)

Usage

Run gccli --help for full command reference.

Common operations:

  • gccli <email> calendars - List all calendars
  • gccli <email> events <calendarId> [--from <dt>] [--to <dt>] - List events
  • gccli <email> event <calendarId> <eventId> - Get event details
  • gccli <email> create <calendarId> --summary <s> --start <dt> --end <dt> - Create event
  • gccli <email> freebusy <calendarIds> --from <dt> --to <dt> - Check availability

Use primary as calendarId for the main calendar.

Date/Time Format

  • Timed events: YYYY-MM-DDTHH:MM:SSZ (UTC) or YYYY-MM-DDTHH:MM:SS (local)
  • All-day events: YYYY-MM-DD with --all-day flag

Data Storage

  • ~/.gccli/credentials.json - OAuth client credentials
  • ~/.gccli/accounts.json - Account tokens

Comments

Markdown supported