Vennio is a scheduling API built for developers — REST-first, composable, and designed to be embedded into any application. It exposes atomic primitives (availability, bookings, venn-links, proposals) that you combine to build exactly the scheduling flow your app needs.
A good scheduling API for developers should:
Vennio is designed around all five. The API version is 1.2.0 with 125 documented operations across 18 resource tags.
Vennio exposes four composable scheduling primitives:
GET /v1/availability/slots returns bookable slots for a business, filtered by duration and date range. No authentication required for public availability checks.
# No API key required for public availability
curl "https://api.vennio.app/v1/availability/slots?business_id=YOUR_BUSINESS_ID&duration_minutes=30&timezone=America%2FNew_York"
{
"business_id": "YOUR_BUSINESS_ID",
"duration_minutes": 30,
"timezone": "America/New_York",
"total_slots": 14,
"slots": [
{ "start": "2026-04-01T09:00:00-05:00", "end": "2026-04-01T09:30:00-05:00", "duration_minutes": 30 },
{ "start": "2026-04-01T10:00:00-05:00", "end": "2026-04-01T10:30:00-05:00", "duration_minutes": 30 }
]
}
POST /v1/bookings creates a booking in one call. Side effects — calendar event, confirmation emails, webhooks, CRM sync — happen automatically.
import { createVennioClient } from '@vennio/sdk'
const client = createVennioClient({ apiKey: process.env.VENNIO_API_KEY })
const res = await client.bookings.create({
body: {
business_id: 'YOUR_BUSINESS_ID',
customer_email: 'customer@example.com',
customer_name: 'Jane Doe',
start_time: '2026-04-01T09:00:00-05:00',
end_time: '2026-04-01T09:30:00-05:00',
},
})
console.log(res.data.booking.status) // "confirmed"
All write operations accept an Idempotency-Key header. Retry safely without risk of duplicate bookings.
GET /v1/availability/mutual finds slots where multiple people are simultaneously free — the core primitive for multi-party scheduling.
curl "https://api.vennio.app/v1/availability/mutual?principal_ids=UUID1,UUID2&duration_minutes=60&timezone=UTC" \
-H "Authorization: Bearer vennio_sk_live_YOUR_KEY"