Skip to content

Run a Whole Roster of Bookable Hosts From One Account

Vennio multi-host accounts let agencies, L&D teams, and coaching networks book hundreds of independent hosts through one API integration — each with their own calendar and attribution.

Most scheduling tools assume one calendar per account. That breaks the moment you run people on a platform: a coaching network with 200 coaches, an agency booking on behalf of its clients, an L&D team where every facilitator takes their own sessions.

Until now, Vennio assumed it too. One account, one bookable identity. Connect a calendar and everything funneled into a single principal. If you wanted ten coaches, you wired up ten accounts and ten keys.

That’s fixed. Multi-host accounts let one account manage many independently-bookable hosts — each with their own calendar, availability, and bookings — through one integration and a few keys.

How it works

A host is a full principal with its own principal_id. You provision one, hand the host a link to connect their own calendar, then query and book against them directly. The booking is attributed to that host and lands on their calendar.

# 1. Provision a host
curl -X POST https://api.vennio.app/v1/hosts \
  -H "Authorization: Bearer $VENNIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "display_name": "Coach Alice" }'

# 2. Get a connect link to send the coach (they connect their own calendar)
curl -X POST https://api.vennio.app/v1/hosts/$HOST_ID/connect-link \
  -H "Authorization: Bearer $VENNIO_API_KEY"

# 3. Book against that specific host
curl -X POST https://api.vennio.app/v1/bookings \
  -H "Authorization: Bearer $VENNIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "principal_id": "'$HOST_ID'", "customer_email": "jane@example.com",
        "customer_name": "Jane Doe", "start_time": "2026-07-01T13:00:00Z",
        "end_time": "2026-07-01T13:30:00Z" }'

Or with the SDK:

const host = await vennio.hosts.create({ display_name: 'Coach Alice' });
const link = await vennio.hosts.createConnectLink(host.principal_id);
// email link.connect_url to the coach

await vennio.bookings.create({
  principal_id: host.principal_id,
  customer_email: 'jane@example.com',
  customer_name: 'Jane Doe',
  start_time: '2026-07-01T13:00:00Z',
  end_time: '2026-07-01T13:30:00Z',
});

AI agents get the same surface over MCP — provision_host, list_hosts, create_host_connect_link, and create_booking with a principal_id.

What you don’t have to build

  • No per-host accounts or key sprawl. A few keys carry delegated authority over every host you manage. Booking against a host you don’t manage returns a clean 403 — delegation is scoped, not open.
  • No credential handling. Hosts connect their own Google or Microsoft calendars through a hosted link. You never touch their tokens.
  • No merged free/busy. Each host returns their own availability. Two hosts, two independent calendars — never one blob.

Who it’s for

Agencies booking for clients. L&D and coaching networks. Marketplaces of practitioners. Any B2B2C product where the people being booked aren’t you.

Multi-host is available on the Scale tier, with per-key rate limits sized to your roster. Read the Multi-Host Accounts guide, or get in touch to set up a pilot.