Your agents need to manage schedules, not fight with calendar APIs. Limehouse gives them a calendar server that speaks their language — simple REST, real-time webhooks, and auth that just works.
import limehouse# Create a calendar for your agentclient = limehouse.Client("lh_sk_...")cal = client.calendars.create(name="Team Standup")# Subscribe to event changes via webhookclient.webhooks.create( calendar_id=cal.id, url="https://myapp.dev/hooks/calendar", events=["event.created", "event.updated", "event.cancelled"])# Create an event — attendees get scoped tokens automaticallyclient.events.create( calendar_id=cal.id, title="Sprint Planning", starts_at="2026-02-17T10:00:00Z", duration_minutes=30,)Every calendar API was designed for human users with OAuth flows and UI widgets. Limehouse is designed from the ground up for programmatic access.
Subscribe to event.created, event.updated, event.cancelled, and more. Your agent reacts the moment a schedule changes — no polling.
Create calendars, manage events, invite attendees, handle conflicts — all through clean, predictable REST endpoints. No UI required.
Issue fine-grained tokens per agent, per calendar, or per event. No OAuth dance — just API keys with the right permissions.
Every event stores an IANA timezone. Queries return results in the timezone you ask for. No more UTC-only headaches.
Automatically detect double-bookings and overlapping events. Let your agent resolve conflicts or flag them for humans.
One Limehouse account, unlimited calendars. Isolate calendars per customer, per team, or per agent — with full audit logs.
No config files, no OAuth setup, no provisioning. Get an API key and start creating calendars in seconds.
Sign up and grab a key from the dashboard. That's your only credential — no client secrets, no redirect URIs.
One POST request gives your agent its own calendar. Scope it to a user, a team, or an entire org.
Register a webhook URL and pick your events. Your agent gets notified instantly when anything changes.
Every webhook payload includes the full event diff — previous values, new values, and who made the change. Your agent always has the context it needs to act.
{
"event": "event.updated",
"calendar_id": "cal_2x8f9k3m",
"payload": {
"event_id": "evt_7nq4w1p",
"title": "Sprint Planning",
"changes": {
"starts_at": {
"old": "2026-02-17T10:00:00Z",
"new": "2026-02-17T14:00:00Z"
}
},
"changed_by": "agent_scheduling_bot"
},
"timestamp": "2026-02-14T19:32:01Z"
}Forget OAuth consent screens and refresh token juggling. Limehouse uses scoped API tokens that you can issue, rotate, and revoke programmatically.
We're building Limehouse right now. Join the waitlist and be the first to give your agents a calendar.
No spam. We'll only email you when it's ready.