
gcalcli
github.com/insanum/gcalcli- Category
- Developer Tools
- Rank
- No. 641Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- insanum
- GitHub
- 3.8k stars
- Latest release
- v4.5.1
- Date
About
Google Calendar from the command line — list, add, edit events. Python-based, scriptable.
What it does
gcalcli turns calendar operations into terminal workflows backed by Google Calendar API v3. It can search schedules, detect conflicts, render week or month views, import calendar invitations, and trigger external commands when events approach.
Why it's ranked here
Its breadth makes it more than a thin event editor. Calendar filtering, conflict checks, structured updates, invitation imports, configurable output, and shell integration support serious workflows. The demanding Google Cloud authentication setup keeps it from being an effortless recommendation.
What's good
Natural-language date parsing reduces friction when creating events. Interactive and automatic modes suit both people and scripts. Configuration can select or ignore calendars, change week layout, and switch profiles. Colored Unicode output, shell completion, standard input imports, and reminder commands fit established terminal tooling.
Tradeoffs
Users must create a Google Cloud project, enable Calendar access, configure consent, and supply their own OAuth client credentials. Imports require an optional dependency. Reminders have no resident daemon, so reliable notifications need cron or another scheduler. Repeated reminder runs can notify throughout an event.
How to use it well
It best serves terminal-oriented Google Calendar users who want agenda checks, event changes, invitation handling, or scheduled reminders inside shell workflows. Install it with isolated Python packaging or an operating-system package, then keep configuration profiles narrow. Do not treat it as a standalone notification service.
Technical notes+
pyproject.toml defines a setuptools build, Python 3.10 minimum, MIT licensing, the gcalcli console entry point at gcalcli.cli:main, and optional vobject support. gcalcli/cli.py parses configuration and dispatches subcommands to GoogleCalendarInterface. gcalcli/gcal.py builds the Calendar v3 service, caches calendar data, retries rate-limit failures with exponential backoff, and stores OAuth credentials with pickle. gcalcli/auth.py uses InstalledAppFlow with a random local redirect port. gcalcli/env.py resolves platform-standard configuration and data locations. gcalcli/config.py validates TOML through Pydantic. gcalcli/ics.py converts vObject components into Google event bodies, while gcalcli/actions.py and gcalcli/details.py implement tabular event patch, insert, delete, and field handling.
Observed
- License
- MIT
- Primary language
- Python 3, requiring Python 3.10 or newer
- Interface
- Command-line application with a packaged gcalcli console entry point
- Packaging
- Setuptools project installable from PyPI with pip or pipx; optional vobject extra enables imports
- System packages
- Documented installation through Debian or Ubuntu packages, Void Linux, Nix, and Homebrew on macOS
- External service
- Uses Google Calendar API version 3 with OAuth2 authentication
Read from README.md, setup.py, pyproject.toml, docs/README.md, docs/api-auth.md, gcalcli/cli.py, gcalcli/env.py, gcalcli/ics.py, gcalcli/auth.py, gcalcli/gcal.py, gcalcli/utils.py, gcalcli/_types.py, gcalcli/config.py, gcalcli/actions.py, gcalcli/details.py.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.