calcom-axi

September 9, 2026 · View on GitHub

An AXI-compliant wrapper around the Cal.com CLI — token-efficient TOON output, structured errors, and agent-first ergonomics for AI coding agents that operate Cal.com via shell.

Built on axi-sdk-js, modeled on the reference implementation gh-axi.

Status

Early scaffold (v0). Read-only commands only.

Requirements

  • Node.js >= 20
  • The Cal.com CLI installed and logged in: npm install -g @calcom/cli, then calcom login --api-key <key> (or calcom login --oauth). CAL_API_KEY in the environment also works.

Install

Not on npm yet, so npx -y calcom-axi does not work. Install from a clone:

git clone https://github.com/simkimsia/calcom-axi
pnpm --prefix calcom-axi install
pnpm --prefix calcom-axi run build
pnpm --prefix calcom-axi link --global   # puts `calcom-axi` on PATH

Check it: calcom-axi --version. To update later, git pull in the clone and run the build step again.

Usage

calcom-axi                 # dashboard: who you are + your next 3 bookings
calcom-axi whoami          # logged-in Cal.com account
calcom-axi agenda          [--limit 10] [--full]              # upcoming bookings, soonest first
calcom-axi bookings        [--status upcoming|past|cancelled|recurring|unconfirmed]
                           [--after <iso>] [--before <iso>] [--attendee-email <e>]
                           [--event-type-id <id>] [--limit 20] [--skip <n>] [--full]
calcom-axi booking <uid>   # one booking in full: hosts, attendees, meeting link
calcom-axi event-types     [--username <u>] [--full]          # what people can book
calcom-axi schedules       # availability schedules with an hours summary
calcom-axi slots           --start <date> --end <date> (--event-type-id <id> | --event-type-slug <s> --username <u>)
                           [--timezone <tz>] [--duration <mins>] [--limit 50]
calcom-axi --help
calcom-axi --version       # fast path, never loads the command graph
calcom-axi update          # self-update (built into axi-sdk-js)

Example output (TOON):

count: 2 upcoming bookings (next in 5d)
bookings[2]{uid,start,status,title,attendees}:
  abc123XYZ,"2026-09-15T02:00Z",accepted,30 min between Jane Doe and Bob,Bob
  def456,"2026-09-16T09:00Z",pending,Intro call,carol@example.com; Dan
help[1]:
  Run `calcom-axi booking <uid>` for duration, location, meeting link, and hosts

Every command fetches a bounded page and exits. List rows keep to five short columns; long titles and attendee lists are shortened with a size hint (… (312 chars)) and one --full hint, and --full shows them whole. Times are ISO 8601 in UTC trimmed to the minute, unless slots --timezone asks for local times. Bad flags fail before any network call with exit code 2 and the accepted flags listed; missing credentials come back as a structured AUTH error with the exact login command.

Agent skill

Install the bundled skill so your coding agent prefers calcom-axi over raw calcom, falls back to calcom when a command is not wrapped yet, and files the gap as an issue here (label agent-reported-gap):

npx skills add simkimsia/calcom-axi --skill calcom-axi -g

The skill is a discovery stub that defers to calcom-axi --help for current command guidance. Source: skills/calcom-axi/SKILL.md.

Development

pnpm install
pnpm run dev          # run from source (tsx)
pnpm test             # vitest (offline; fixtures mirror `calcom ... --json`)
pnpm run build        # tsc -> dist/
pnpm run format:check

License

MIT