Pass --json on every command you will parse. Or set CALKIT_JSON=1 in the environment.

Envelope

Success:
{ "ok": true, "data": { } }
Failure (nonzero exit):
{ "ok": false, "error": { "code": "NOT_FOUND", "message": "not a calkit calendar" } }
Parse data. Do not scrape the human table.

Schema

calkit schema --json
calkit schema --event --json
Use this before constructing an event you are unsure about.

Global --require-clean

calkit --require-clean add … refuses mutations when git has uncommitted changes. Useful when an agent must not mix an unrelated dirty tree with a new event.