termeeting
v1.2.3
Published
CLI for Google Calendar (read-only)
Readme
Termeeting
CLI for Google Calendar (read-only). Returns events in human-readable or JSON format.
Installation
npm i -g termeetingSetup
1. Create a Google Cloud project
Go to the Google Cloud Console and create a new project (or select an existing one).
2. Enable the Calendar API
Navigate to APIs & Services > Library, search for "Google Calendar API", and enable it.
3. Configure the OAuth consent screen
Go to APIs & Services > OAuth consent screen. Choose External and fill in the required fields (app name, support email, developer contact). No verification needed since it's for personal use — add your own email as a test user under Audience > Test users.
4. Create OAuth credentials
Go to APIs & Services > Credentials > Create Credentials > OAuth client ID.
- Application type: Desktop / TV and limited-input devices
- Name: Anything (e.g. "termeeting")
Once created, the dialog will show your Client ID and Client Secret. Copy them.
5. Add the redirect URI
On the credentials screen, click your newly created client, then add the following under Authorized redirect URIs:
http://localhost:3000/oauth/callbackClick Save.
6. Run setup
termeeting setupEnter your Client ID and Client Secret when prompted. A browser opens for OAuth consent. Your first account (nicknamed "default") is created automatically.
The app requests the https://www.googleapis.com/auth/calendar.readonly scope — read-only access to the primary calendar of each linked Google account.
Accounts
Termeeting supports multiple Google Calendar identities.
termeeting account add work # add another Google account
termeeting account add personal # add another
termeeting account list # show all accounts
termeeting account set-default work # set default for bare `termeeting` call
termeeting account remove personal # remove an accountEach account stores its OAuth tokens separately. Use --account to select one:
termeeting --account work # events from work calendar
termeeting --account personal --json # personal events as JSONIf no --account is given, the default account is used.
Usage
termeeting # today's events (default account)
termeeting --account work --json # work events, JSON
termeeting --account personal --date 2026-06-30 # personal events for a date
termeeting next # next upcoming event (default account)
termeeting next --json # next event as JSON
termeeting setup # guided OAuth app registration + first account
termeeting account add <name> # add another Google account
termeeting account list # list all accounts
termeeting account set-default <name> # change default account
termeeting account remove <name> # remove an accountExample output:
📅 Today — Wednesday, June 25, 2026
─────────────────────────────────────
09:00–10:00 Standup (Room 3)
14:00–15:00 Design review Google MeetAccount list example:
work [email protected] (default)
personal [email protected]Account list with --json:
termeeting account list --json
# [{"nickname":"work","email":"[email protected]"},{"nickname":"personal","email":"[email protected]"}]Development
npm test # run tests
npm run build # compile standalone binaryLicense
ISC
