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.

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