For the complete documentation index, see llms.txt.

Team Scheduling

Teams let multiple Vennio users share availability. When you query a team's availability, Vennio finds slots where all schedulable members are simultaneously free.

Teams vs hosts. Use a team to find one slot where a group is all free (one meeting, many attendees). To run a roster of independently-bookable people under one account — each booked separately, on their own calendar — use Multi-Host Accounts instead.

Endpoints

Method Path Purpose
POST /v1/teams Create a team
GET /v1/teams List my teams
GET /v1/teams/:id Get team + members
PATCH /v1/teams/:id Update name/description (owner only)
DELETE /v1/teams/:id Delete team (owner only)
POST /v1/teams/:id/members Add a member
DELETE /v1/teams/:id/members/:memberId Remove a member (owner only)
GET /v1/teams/:id/availability Get mutual free slots
POST /v1/teams/:id/proposals Create a scheduling proposal

Create a team

curl -X POST https://api.vennio.app/v1/teams \
  -H "Authorization: Bearer $VENNIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Engineering Squad",
    "description": "Weekly syncs and interviews"
  }'

Get mutual availability

curl "https://api.vennio.app/v1/teams/team_abc123/availability?duration_minutes=30&from=2026-04-07T09:00:00Z&to=2026-04-11T17:00:00Z&timezone=Europe/London&limit=10" \
  -H "Authorization: Bearer $VENNIO_API_KEY"

Availability query parameters

Parameter Type Default Description
duration_minutes integer 30 Duration of the desired slot
from ISO datetime — Required. Window start
to ISO datetime — Required. Window end
timezone IANA timezone UTC Timezone for slot grouping
limit integer (1–50) 10 Maximum slots to return

Create a proposal

A proposal shares a set of candidate slots with invitees and collects their preference:

curl -X POST https://api.vennio.app/v1/teams/team_abc123/proposals \
  -H "Authorization: Bearer $VENNIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q2 Planning Session",
    "slots": [
      { "start": "2026-04-08T10:00:00Z", "end": "2026-04-08T10:30:00Z" },
      { "start": "2026-04-09T14:00:00Z", "end": "2026-04-09T14:30:00Z" }
    ]
  }'

Member types

Type Description
vennio_user A registered Vennio user. Their calendar is checked for availability.
external_consent An external party who must consent before their availability is considered.
email_only Added by email address only. No calendar access — skipped in availability calculations.

Gotchas