No Google account. No OAuth dance. No human in the loop.
Agents create events via API. A public iCal feed URL is generated instantly. Users subscribe from Google Calendar, Apple Calendar, or Outlook — no setup on their end.
Every major calendar API assumes the entity scheduling the meeting is a human with a Google account. That assumption breaks the moment an AI agent needs to manage time.
Your agent needs to schedule. It should take one API call.
Three steps. Your agent handles all three.
POST /v1/calendar/events with summary, start, end.
Optional: description, location, attendees.
Returns the event ID immediately.
Every account gets a permanent https://api.agentlair.dev/v1/calendar/feed.ics?cal_token=...
URL. No configuration needed — it exists from the moment you create your account.
Paste the iCal URL into Google Calendar → “Other calendars › From URL”. Events appear within minutes. No app install. No account creation. Works on every device.
Pick your tool:
# 1. Get an API key (30 seconds)
API_KEY=$(curl -s -X POST https://api.agentlair.dev/v1/auth/keys | jq -r .api_key)
# 2. Create an event
curl -s -X POST https://api.agentlair.dev/v1/calendar/events \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"summary": "Product demo — Acme Corp",
"start": "2026-04-01T14:00:00Z",
"end": "2026-04-01T15:00:00Z",
"description": "Quarterly review call",
"location": "https://meet.example.com/demo"
}'
# → { "id": "evt_01JNXK...", "summary": "Product demo — Acme Corp", ... }
# 3. Get the public iCal subscription URL
curl -s https://api.agentlair.dev/v1/calendar/feed \
-H "Authorization: Bearer $API_KEY"
# → { "feed_url": "https://api.agentlair.dev/v1/calendar/feed.ics?cal_token=..." }
# 4. Share feed_url with anyone — they add it to their calendar app, done // Create an event — works from any agent, LLM runner, or Cloudflare Worker
const event = await fetch('https://api.agentlair.dev/v1/calendar/events', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
summary: 'Product demo — Acme Corp',
start: '2026-04-01T14:00:00Z',
end: '2026-04-01T15:00:00Z',
description: 'Quarterly review call',
location: 'https://meet.example.com/demo',
attendees: ['ceo@acme.com'],
}),
}).then(r => r.json());
// event.id → "evt_01JNXK..."
// Fetch the subscription URL once, share it in your onboarding flow
const { feed_url } = await fetch(
'https://api.agentlair.dev/v1/calendar/feed',
{ headers: { 'Authorization': `Bearer ${apiKey}` } },
).then(r => r.json());
// feed_url → "https://api.agentlair.dev/v1/calendar/feed.ics?cal_token=..."
// List upcoming events
const { events } = await fetch(
`https://api.agentlair.dev/v1/calendar/events?from=${new Date().toISOString()}`,
{ headers: { 'Authorization': `Bearer ${apiKey}` } },
).then(r => r.json()); After creating your first event, get your subscription URL:
Share this URL anywhere. Here’s how users subscribe:
.ics file. If it speaks iCal (RFC 5545), it works.The token is in the URL. No authentication required for subscribers — paste and go.
The feed is a standard iCalendar file (RFC 5545). If it speaks iCal, it subscribes.
Building a calendar integration? Open a PR →
No Google account. No user OAuth. Your agent is the calendar owner — events appear under its name, not yours.
Add attendees to any event. Invite emails sent automatically via AgentLair Email — no SMTP setup required.
Events rendered as valid VEVENT blocks. All-day events, date-time events, UTC and floating times all supported.
Store Google/Outlook OAuth tokens in Vault, use them to write to a user’s calendar — without touching your own infra.
Pro tier coming soon. Free tier is permanent — no expiry, no bait-and-switch.
Autonomous agents: x402 payments available — agents pay per-call at $0.001/request when limits are hit.
Built on open standards. No vendor lock-in, no proprietary format.
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/calendar/events | Create an event (body: summary, start, end, description?, location?, attendees?) |
GET | /v1/calendar/events | List events (?from=ISO&to=ISO optional date range filter) |
DELETE | /v1/calendar/events/{id} | Delete a single event by ID |
GET | /v1/calendar/feed | Get (or create) public iCal subscription URL |
GET | /v1/calendar/feed.ics | Public iCal feed (?cal_token=, no auth required) |
Requires a human OAuth consent flow. No service account path for consumer accounts. Domain-wide delegation needs Google Workspace ($6+/user/mo).
Connect to existing human calendars — they don’t provision new ones. Enterprise pricing. We give your agent its own calendar with one API call.
Scheduling platform for humans, not agents. Requires a UI and a human on the other side. We’re infrastructure — your agent is in control.
Radicale/Baikal require persistent storage, ops, and deployment. We handle the infra — your agent gets a calendar endpoint, not a server to manage.
Free tier. No Google account. No OAuth. No human setup.
API reference · Dashboard · Email · Vault