knowledge-base
This file contains domain knowledge about the Cal.diy product and codebase. For coding…
Detailed documentation for event type endpoints in the Cal.diy API v2.
$ npx -y skills add calcom/cal.diy --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Detailed documentation for event type endpoints in the Cal.diy API v2.
Detailed documentation for event type endpoints in the Cal.diy API v2.
| Method | Endpoint | Description | |--------|----------|-------------| | GET | /v2/event-types | List event types | | POST | /v2/event-types | Create an event type | | GET | /v2/event-types/{eventTypeId} | Get an event type | | PATCH | /v2/event-types/{eventTypeId} | Update an event type | | DELETE | /v2/event-types/{eventTypeId} | Delete an event type |
GET /v2/event-types
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | take | number | No | Number of results (default: 10, max: 250) | | skip | number | No | Pagination offset |
{
"status": "success",
"data": [
{
"id": 123,
"title": "30 Minute Meeting",
"slug": "30min",
"description": "A quick 30 minute call",
"lengthInMinutes": 30,
"locations": [
{
"type": "integration",
"integration": "cal-video"
}
],
"bookingFields": [],
"disableGuests": false,
"slotInterval": null,
"minimumBookingNotice": 120,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"schedulingType": null,
"metadata": {},
"requiresConfirmation": false,
"price": 0,
"currency": "usd",
"hidden": false
}
]
}POST /v2/event-types
{
"title": "30 Minute Meeting",
"slug": "30min",
"description": "A quick 30 minute call to discuss your needs",
"lengthInMinutes": 30,
"locations": [
{
"type": "integration",
"integration": "cal-video"
}
],
"bookingFields": [
{
"type": "textarea",
"name": "notes",
"label": "Additional Notes",
"required": false,
"placeholder": "Any additional information..."
}
],
"disableGuests": false,
"slotInterval": 15,
"minimumBookingNotice": 120,
"beforeEventBuffer": 5,
"afterEventBuffer": 5,
"scheduleId": 1,
"requiresConfirmation": false,
"hidden": false
}| Field | Type | Description | |-------|------|-------------| | title | string | Display name of the event type | | slug | string | URL-friendly identifier | | lengthInMinutes | number | Duration of the event |
| Field | Type | Description | |-------|------|-------------| | description | string | Description shown on booking page | | locations | array | Meeting location options | | bookingFields | array | Custom form fields | | disableGuests | boolean | Prevent attendees from adding guests | | slotInterval | number | Minutes between available slots | | minimumBookingNotice | number | Minimum minutes before booking | | beforeEventBuffer | number | Buffer time before event (minutes) | | afterEventBuffer | number | Buffer time after event (minutes) | | scheduleId | number | ID of schedule to use | | requiresConfirmation | boolean | Require host confirmation | | hidden | boolean | Hide from public profile |
{
"type": "integration",
"integration": "cal-video"
}{
"type": "integration",
"integration": "zoom"
}{
"type": "integration",
"integration": "google-meet"
}{
"type": "integration",
"integration": "msteams"
}{
"type": "address",
"address": "123 Main St, City, Country"
}{
"type": "userPhone"
}{
"type": "attendeePhone"
}{
"type": "link",
"link": "https://custom-meeting.com/room"
}Custom form fields for collecting information from attendees.
{
"type": "text",
"name": "company",
"label": "Company Name",
"required": true,
"placeholder": "Enter your company name"
}{
"type": "textarea",
"name": "notes",
"label": "Additional Notes",
"required": false
}{
"type": "select",
"name": "topic",
"label": "Meeting Topic",
"required": true,
"options": [
{ "value": "sales", "label": "Sales Inquiry" },
{ "value": "support", "label": "Support" },
{ "value": "other", "label": "Other" }
]
}{
"type": "radio",
"name": "preference",
"label": "Preferred Contact Method",
"required": true,
"options": [
{ "value": "email", "label": "Email" },
{ "value": "phone", "label": "Phone" }
]
}{
"type": "checkbox",
"name": "terms",
"label": "I agree to the terms",
"required": true
}{
"type": "phone",
"name": "phone",
"label": "Phone Number",
"required": false
}GET /v2/event-types/{eventTypeId}| Parameter | Type | Description | |-----------|------|-------------| | eventTypeId | number | Event type ID |
PATCH /v2/event-types/{eventTypeId}Only include fields you want to update:
{
"title": "Updated Meeting Title",
"lengthInMinutes": 45,
"hidden": false
}DELETE /v2/event-types/{eventTypeId}For team event types, use the team-scoped endpoints:
GET /v2/teams/{teamId}/event-typesPOST /v2/teams/{teamId}/event-typesAdditional fields for team event types:
{
"title": "Team Meeting",
"slug": "team-meeting",
"lengthInMinutes": 30,
"schedulingType": "ROUND_ROBIN",
"hosts": [
{ "userId": 1, "isFixed": false },
{ "userId": 2, "isFixed": false }
]
}Repo: calcom/cal.com
This file contains domain knowledge about the Cal.diy product and codebase. For coding…
The `packages/features` package should contain only framework-agnostic code: - Repositories…