One API for calendars, voice intent, traffic-aware ETAs, weather-adjusted departure timing, and webhook orchestration. Drop in ChronaPilot and ship scheduling-heavy features in days, not quarters.
curl https://api.chronapilot.com/v1/events \ -H "Authorization: Bearer sk_test_..." \ -H "Chronapilot-Version: 2026-05-20" \ -d '{ "title": "Lunch with Sarah", "start_time": "2026-05-22T12:00:00-07:00", "location": { "name": "Buena Vista Cafe" } }'
import ChronaPilot from '@chronapilot/node'; const cp = new ChronaPilot('sk_test_...'); const event = await cp.events.create({ title: 'Lunch with Sarah', start_time: '2026-05-22T12:00:00-07:00', location: { name: 'Buena Vista Cafe' }, }); // Subscribe to live ETA updates const s = await cp.events.subscribe(event.id); s.on('departure.updated', d => console.log(d.earliest_departure));
import chronapilot chronapilot.api_key = 'sk_test_...' event = chronapilot.Event.create( title='Lunch with Sarah', start_time='2026-05-22T12:00:00-07:00', location={'name': 'Buena Vista Cafe'}, ) # Subscribe to live ETA updates for ev in chronapilot.Event.subscribe(event.id): print(ev.earliest_departure)
curl https://api.chronapilot.com/v1/events \ -H "Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc" \ -H "Chronapilot-Version: 2026-05-20" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "title": "Lunch with Sarah", "start_time": "2026-05-22T12:00:00-07:00", "end_time": "2026-05-22T13:00:00-07:00", "timezone": "America/Los_Angeles", "location": { "name": "Buena Vista Cafe", "address": "2765 Hyde St, San Francisco, CA 94109" } }'
import ChronaPilot from '@chronapilot/node'; const cp = new ChronaPilot('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); const event = await cp.events.create({ title: 'Lunch with Sarah', start_time: '2026-05-22T12:00:00-07:00', end_time: '2026-05-22T13:00:00-07:00', timezone: 'America/Los_Angeles', location: { name: 'Buena Vista Cafe', address: '2765 Hyde St, San Francisco, CA 94109' } }); // Subscribe to ETA updates const stream = await cp.events.subscribe(event.id); stream.on('departure.updated', d => console.log(d.earliest_departure));
import chronapilot chronapilot.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' event = chronapilot.Event.create( title='Lunch with Sarah', start_time='2026-05-22T12:00:00-07:00', end_time='2026-05-22T13:00:00-07:00', timezone='America/Los_Angeles', location={ 'name': 'Buena Vista Cafe', 'address': '2765 Hyde St, San Francisco, CA 94109' } )
import "github.com/chronapilot/chronapilot-go" cp := chronapilot.NewClient("sk_test_4eC39HqLyjWDarjtT1zdp7dc") event, err := cp.Events.Create(ctx, &chronapilot.EventParams{ Title: chronapilot.String("Lunch with Sarah"), StartTime: chronapilot.String("2026-05-22T12:00:00-07:00"), EndTime: chronapilot.String("2026-05-22T13:00:00-07:00"), Timezone: chronapilot.String("America/Los_Angeles"), Location: &chronapilot.LocationParams{ Name: chronapilot.String("Buena Vista Cafe"), Address: chronapilot.String("2765 Hyde St, San Francisco, CA 94109"), }, })
require 'chronapilot' Chronapilot.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' event = Chronapilot::Event.create( title: 'Lunch with Sarah', start_time: '2026-05-22T12:00:00-07:00', end_time: '2026-05-22T13:00:00-07:00', timezone: 'America/Los_Angeles' )
<?php $cp = new \Chronapilot\Client('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $event = $cp->events->create([ 'title' => 'Lunch with Sarah', 'start_time' => '2026-05-22T12:00:00-07:00', 'end_time' => '2026-05-22T13:00:00-07:00', 'timezone' => 'America/Los_Angeles', ]);
{
"id": "evt_1abc2def3ghi",
"object": "event",
"title": "Lunch with Sarah",
"start_time": "2026-05-22T12:00:00-07:00",
"end_time": "2026-05-22T13:00:00-07:00",
"location": {
"name": "Buena Vista Cafe",
"address": "2765 Hyde St, San Francisco, CA 94109",
"lat": 37.8064,
"lng": -122.4203
},
"monitoring": {
"status": "monitoring",
"earliest_departure": "2026-05-22T11:32:00-07:00",
"latest_departure": "2026-05-22T11:42:00-07:00",
"traffic_level": "light",
"confidence": "high"
},
"created_at": "2026-05-20T18:14:22Z",
"livemode": false,
"request_id": "req_1A2b3C4d5E6f"
}Grab a sandbox key, hit your first endpoint, and watch a live departure window update — under a minute.
Begin quickstart →Authentication, Connect, idempotency, webhooks, versioning, errors — the architectural primitives every integration uses.
Read concepts →Calendars, Events, Free/Busy, Departure intelligence, Voice realtime — fully documented with code in six languages.
API reference →Every primitive on this site is grounded in code running in production at cal.chronapilot.com. The developer API is a clean surface over the same engine that runs the consumer app.
One API, three providers. Google, Microsoft Graph and iCloud OAuth, push notification channels, delta sync and webhook renewal handled for you.
Departure windows recomputed every minute against live traffic and weather. departure.updated webhooks fire when the window shifts.
WebSocket endpoint backed by gpt-realtime. Tools are scoped to the user's calendar so the AI can read, propose, confirm, and execute.
HMAC-signed, 24 retries over 72 hours, replay from the dashboard. Chronapilot-Signature verification helpers in every SDK.
Every mutating endpoint takes an Idempotency-Key. Retries within 24h return the original response — no duplicate state.
Identical surface at api-sandbox.chronapilot.com. Synthetic users and calendars pre-seeded. Test keys never hit prod.