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
- Cannot remove the team owner. The owner must transfer ownership or delete the team.
- If all members are
email_only, availability calls will fail — there are no calendars to query.
email_only members are skipped in mutual availability calculations. They can still receive proposals.