CLI Usage
This guide walks through every CLI command group with practical examples. For a quick start, see the CLI Quickstart. For flag-level detail, see the CLI Reference.
Authentication
Section titled “Authentication”The interactive login validates your key against the API before saving:
chronary auth loginSave to a named profile:
chronary auth login --profile stagingMultiple profiles
Section titled “Multiple profiles”Manage separate keys for test, live, and different environments:
# List profileschronary auth list Profile Key* default chr_sk_a1b2... production chr_sk_x9y8...# Switch profileschronary auth switch production
# Remove a profilechronary auth remove stagingStatus
Section titled “Status”chronary auth statusKey: chr_sk_a1b2...Base URL: https://api.chronary.aiAgents
Section titled “Agents”List agents
Section titled “List agents”chronary agents listID Name Type Status Description Createdagt_a1b2c3d4 Sales Agent - Acme ai active Handles meeting scheduling 2026-04-04agt_e5f6g7h8 Support Bot ai active Customer support scheduling 2026-04-05
Showing 2 of 2 agentsFilter by type or status:
chronary agents list --type ai --status activeFetch all pages automatically:
chronary agents list --allRegister an agent
Section titled “Register an agent”chronary agents create --name "Sales Agent" --type ai --description "Handles sales meetings"Or from a JSON file:
chronary agents create @agent.jsonWhere agent.json contains:
{ "name": "Sales Agent", "type": "ai", "description": "Handles sales meetings", "metadata": { "team": "sales", "region": "us-east" }}Get, update, delete
Section titled “Get, update, delete”# Get full detailschronary agents get agt_a1b2c3d4
# Update fieldschronary agents update agt_a1b2c3d4 --name "Sales Agent v2" --status paused
# Delete (with confirmation prompt)chronary agents delete agt_a1b2c3d4
# Skip confirmationchronary agents delete agt_a1b2c3d4 --yesCalendars
Section titled “Calendars”List calendars
Section titled “List calendars”# All calendars in your orgchronary calendars list
# Calendars for a specific agentchronary calendars list --agent agt_a1b2c3d4Create a calendar
Section titled “Create a calendar”# Org-level calendarchronary calendars create --name "Conference Room B" --timezone "America/Chicago"
# Agent-owned calendarchronary calendars create --agent agt_a1b2c3d4 --name "Sales Meetings" --timezone "America/New_York"
# With metadatachronary calendars create \ --name "Conference Room B" \ --timezone "America/Chicago" \ --metadata '{"capacity": 12, "floor": 4}'Or from a file:
chronary calendars create @calendar.jsonGet, update, delete
Section titled “Get, update, delete”chronary calendars get cal_x1y2z3chronary calendars update cal_x1y2z3 --name "New Name" --timezone "Europe/London"chronary calendars delete cal_x1y2z3 --yesEvents
Section titled “Events”List events
Section titled “List events”Events require either a --calendar or --agent scope:
# Events on a specific calendarchronary events list --calendar cal_x1y2z3
# All events across an agent's calendarschronary events list --agent agt_a1b2c3d4
# With date and status filterschronary events list --calendar cal_x1y2z3 \ --start-after "2026-04-01T00:00:00Z" \ --start-before "2026-04-30T23:59:59Z" \ --status confirmedCreate an event
Section titled “Create an event”chronary events create \ --calendar cal_x1y2z3 \ --title "Strategy sync" \ --start "2026-04-07T14:00:00Z" \ --end "2026-04-07T14:30:00Z" \ --description "Quarterly strategy alignment" \ --status confirmedAll-day events:
chronary events create \ --calendar cal_x1y2z3 \ --title "Company Holiday" \ --start "2026-07-04T00:00:00Z" \ --end "2026-07-05T00:00:00Z" \ --all-dayFrom a file:
chronary events create @event.json --calendar cal_x1y2z3Get, update, delete
Section titled “Get, update, delete”chronary events get evt_m1n2o3 --calendar cal_x1y2z3chronary events update evt_m1n2o3 --calendar cal_x1y2z3 --title "Updated title" --status cancelledchronary events delete evt_m1n2o3 --calendar cal_x1y2z3 --yesAvailability
Section titled “Availability”Query free/busy slots for agents, calendars, or across multiple agents.
Agent availability
Section titled “Agent availability”chronary availability agent agt_a1b2c3d4 \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z" \ --slot-duration 30mCalendar availability
Section titled “Calendar availability”chronary availability calendar cal_x1y2z3 \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z"Cross-agent availability
Section titled “Cross-agent availability”Find shared free time across multiple agents:
chronary availability cross \ --agents "agt_a1b2c3d4,agt_e5f6g7h8" \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z" \ --slot-duration 1hInclude busy blocks
Section titled “Include busy blocks”Add --include-busy to see what’s blocking each time slot:
chronary availability agent agt_a1b2c3d4 \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z" \ --include-busyWebhooks
Section titled “Webhooks”List webhooks
Section titled “List webhooks”chronary webhooks listCreate a webhook
Section titled “Create a webhook”chronary webhooks create \ --url "https://example.com/webhooks/chronary" \ --events "event.created, event.updated"Created webhook wh_a1b2c3d4URL: https://example.com/webhooks/chronaryEvents: event.created, event.updatedSecret: whsec_abc123...(Save this secret — it won't be shown again)Valid event types: agent.created, agent.updated, event.created, event.updated, event.deleted.
Get, update, delete
Section titled “Get, update, delete”chronary webhooks get wh_a1b2c3d4chronary webhooks update wh_a1b2c3d4 --events "event.created" --active=falsechronary webhooks delete wh_a1b2c3d4 --yesiCal Subscriptions
Section titled “iCal Subscriptions”Import external iCal feeds into a Chronary calendar. The API polls them approximately every 5 minutes.
List subscriptions
Section titled “List subscriptions”chronary ical list --agent agt_a1b2c3d4Create a subscription
Section titled “Create a subscription”chronary ical create \ --agent agt_a1b2c3d4 \ --calendar cal_x1y2z3 \ --url "https://calendar.google.com/calendar/ical/example%40gmail.com/public/basic.ics" \ --label "Google Calendar"Get, update, delete, sync
Section titled “Get, update, delete, sync”# Get detailschronary ical get isub_a1b2c3d4
# Update label or URLchronary ical update isub_a1b2c3d4 --label "Personal Google Cal"
# Deletechronary ical delete isub_a1b2c3d4 --yes
# Trigger an immediate syncchronary ical sync isub_a1b2c3d4Usage & Quotas
Section titled “Usage & Quotas”Check your current plan usage:
chronary usagePlan: freePeriod: 2026-04-01 to 2026-04-30
Resource Used Limit RemainingAgents 2 10 8Calendars 3 25 22Events 15 500 485API Calls 142 10000 9858Webhooks 1 5 4Availability Queries 28 1000 972iCal Subscriptions 1 5 4Health check
Section titled “Health check”Verify the API is reachable:
chronary healthStatus: okTime: 2026-04-07T12:00:00ZLatency: 45msFile input
Section titled “File input”Any create command accepts a @file argument to read the request body from a JSON file instead of flags:
chronary agents create @agent.jsonchronary calendars create @calendar.jsonchronary events create @event.json --calendar cal_x1y2z3chronary webhooks create @webhook.jsonYou can also pipe from stdin using @-:
echo '{"name":"Bot","type":"ai"}' | chronary agents create @-Pagination
Section titled “Pagination”List commands return a single page by default. Use --all to fetch every page automatically:
# Default: first page (50 results)chronary events list --calendar cal_x1y2z3
# Manual paginationchronary events list --calendar cal_x1y2z3 --limit 10 --offset 20
# Auto-paginate everythingchronary events list --calendar cal_x1y2z3 --allOutput formats
Section titled “Output formats”Every command supports three output formats via the --output (or -o) flag:
# Table (default) — human-readablechronary agents list
# JSON — for scripting and pipingchronary agents list -o json | jq '.data[].name'
# YAML — for readability in config contextschronary agents get agt_a1b2c3d4 -o yaml