The CLI
@quorumcal/cli puts every API operation behind a command, generated from the API’s own catalog, so it is always in step with the API. The full list is the CLI reference.
Install
Section titled “Install”npm install --global @quorumcal/cliquorum --helpRequires Node 20 or later.
Log in
Section titled “Log in”quorum loginThis is the OAuth device flow. The CLI prints a short code and opens your browser; check the code, approve the scopes, and the CLI keeps a login on this machine. It refreshes itself and stops working when you revoke it in Settings → Developer.
By default it asks for links, bookings, polls and availability, read and write. Ask for more or less:
quorum login --admin # add workspace:admin (members, teams, invites, webhooks)quorum login --contacts # add your address bookquorum login --scope links:read --scope polls:readThe login is stored in credentials.json under $QUORUM_CONFIG_DIR, else $XDG_CONFIG_HOME/quorum or ~/.config/quorum (%APPDATA%\quorum on Windows), readable by you only. There is one entry per API address, so a local login never reaches production. quorum logout revokes it.
Scripts and CI
Section titled “Scripts and CI”Set QUORUM_TOKEN to a personal token; it wins over a stored login.
export QUORUM_TOKEN=qrm_pat_...quorum --json links list | jq -r '.data[].slug'Everyday use
Section titled “Everyday use”quorum whoamiquorum orgs listquorum teams mine
quorum team links list --org acme --team salesquorum polls create --title "Retro" --duration-minutes 60 --timezone UTC \ --options 2026-11-05T15:00:00Z,2026-11-06T15:00:00Zquorum team bookings list --org acme --team sales --when upcoming --all- Path values (
<handle>,<linkId>, …) are positional or flags.--organd--teamare aliases for--handleand--team-path, and default toQUORUM_ORGandQUORUM_TEAM. - Other arguments are flags named after the field in kebab-case; a list is a repeated flag or comma-separated. Nested bodies go in
--bodyas JSON,@file.json, or-for stdin. - Lists print as tables; one object prints as
key valuelines;--jsonprints the API’s JSON.--allfollows every page. - With
--json, failures are{"error":{"code","message","status"}}on stderr. - Exit codes:
0success,1the API or login refused,2usage.
| Setting | Flag | Variable |
|---|---|---|
| API address | --base-url |
QUORUM_API_URL (default https://api.quorumcal.com) |
| API version | --api-version |
QUORUM_VERSION |
| Config directory | QUORUM_CONFIG_DIR |