Skip to main content
Every command can print its result in one of four formats. Pretty output is the default in an interactive terminal; the flags below switch to a machine-readable format.
FormatFlagBest for
Pretty(default in a terminal)Reading a result yourself.
JSON--jsonMachine-readable payloads with pagination metadata.
Quiet--quietPiping an identifier into another command or jq.
TOON--toonFeeding list/show output back to an LLM (fewer tokens than JSON).
If more than one is set, precedence is --toon > --quiet > --json > pretty.

Pretty

The default when writing to a terminal — tables for lists, key-value pairs for a single record. Not intended for machine consumption.
neetocal bookings list --type upcoming

JSON

The JSON envelope wraps the resource body along with breadcrumbs and, for list commands, pagination:
{
  "data": [
    { "id": "8sqtzrs", "name": "Oliver Smith", "email": "oliver@example.com" }
  ],
  "breadcrumbs": [{ "label": "Show details", "command": "neetocal bookings show <sid>" }],
  "pagination": {
    "total_records": 250,
    "total_pages": 10,
    "current_page_number": 1,
    "page_size": 30
  }
}
For a list command, data is the array of records itself — the resource key from the API response is unwrapped. For show, create, and update, data is the single-record body as the API returns it, such as { "booking": { ... } }. breadcrumbs is omitted when empty, and pagination is present only for list commands. JSON is used automatically when output is piped (a non-TTY), or force it with --json.

Quiet

--quiet emits only the data payload — no envelope. For action commands (create / update) it prints just the resource identifier; for delete it prints success. This makes it ideal for scripting:
neetocal bookings create \
  --meeting-slug demo --name "Oliver Smith" --email oliver@example.com \
  --slot-date 2026-05-15 --slot-start-time 10:00 --time-zone "America/New_York" \
  --quiet
# → prints the new booking id

TOON

--toon re-encodes the same data as TOON (Token-Optimized Output Notation) — the same shape as JSON with compressed whitespace and keys, typically 30–60% fewer tokens. Prefer it when handing list or show output to an AI assistant.
neetocal meetings list --search "demo" --toon

Pagination

List commands page their results. Two flags control paging, and the pagination block in the JSON envelope tells you where you are in the result set.

Pagination Parameters

--page
integer
The page of results to retrieve, starting from 1.
--page-size
integer
The number of records to return per page (max 100).

Example Usage

neetocal bookings list --page 2 --page-size 50
This retrieves the second page of bookings, 50 records per page.

Response Structure

For list commands the JSON envelope carries a pagination block alongside the data:
{
  "pagination": {
    "total_records": 250,
    "total_pages": 5,
    "current_page_number": 2,
    "page_size": 50
  }
}
pagination.total_records
integer
The total number of records across all pages.
pagination.total_pages
integer
The total number of pages available.
pagination.current_page_number
integer
The page you are currently on.
pagination.page_size
integer
The number of records returned per page.

Default Behavior

Omit both flags and the CLI sends no paging parameters, so the server defaults apply: the first page with 30 records per page. Set either flag to override — --page-size accepts up to 100.

Best Practices

  • To walk every page, increment --page until current_page_number == total_pages.
  • Use --json or --toon when scripting so you can read the pagination block. --quiet strips the envelope, so pagination metadata is not available in quiet mode.
  • Read total_records up front to size the work before you start paging.