| name | jgccli |
| description | Google Calendar CLI (Java) for listing calendars, viewing/creating/updating events, and checking availability. |
Google Calendar CLI (Java)
Command-line interface for Google Calendar operations. Java port of gccli.
Source: https://github.com/maxandersen/jgccli
Installation
Option 1: Run directly with JBang (no install)
jbang jgccli@maxandersen/skills --help
Option 2: Install as command
jbang app install jgccli@maxandersen/skills
jgccli --help
Setup
Google Cloud Console (one-time)
- Create a new project (or select existing)
- Enable the Google Calendar API
- Set app name in OAuth branding
- Add test users (all Gmail addresses you want to use)
- Create OAuth client:
- Click "Create Client"
- Application type: "Desktop app"
- Download the JSON file
Configure jgccli
First check if already configured:
jgccli accounts list
If no accounts, guide the user through setup:
- Ask if they have a Google Cloud project with Calendar API enabled
- If not, walk them through the Google Cloud Console steps above
- Have them download the OAuth credentials JSON
- Run:
jgccli accounts credentials ~/path/to/credentials.json
- Run:
jgccli accounts add <email> (use --manual for browserless OAuth)
Shared Credentials
Credentials in ~/.jgcli/ are shared across jgccli, jgmcli, and jgdcli. Set up once, use with all three.
For separate credentials, use named credentials:
jgccli accounts credentials ~/work-creds.json --name work
jgccli accounts add work@company.com --credentials work
Usage
Run jgccli --help for full command reference.
Common operations:
jgccli calendars <email> - List all calendars
jgccli events <email> <calendarId> [--from <dt>] [--to <dt>] - List events
jgccli event <email> <calendarId> <eventId> - Get event details
jgccli create <email> <calendarId> --summary <s> --start <dt> --end <dt> - Create event
jgccli freebusy <email> <calendarIds> --from <dt> --to <dt> - Check availability
Use primary as calendarId for the main calendar.
Attendees
jgccli create <email> primary --summary "Meeting" --start <dt> --end <dt> \
--attendees required@x.com,also@x.com \
--optional-attendees maybe@x.com,fyi@x.com
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
~/.jgcli/credentials.json - OAuth client credentials (shared with jgmcli, jgdcli)
~/.jgcli/accounts-calendar.json - Account tokens