Meeting Types are templates that define the rules for a specific type of meeting. Each meeting type has its own booking URL and settings.
Meeting Type Properties
| Property | Description |
|---|
name | Display name shown on booking pages |
duration | Length in minutes |
slug | URL-friendly identifier |
buffer | Time blocked before/after meetings |
channel | Video conferencing platform |
Create a Meeting Type
curl -X POST "https://api.meetergo.com/v4/meeting-type" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-meetergo-api-user-id: {userId}" \
-H "Content-Type: application/json" \
-d '{
"name": "Discovery Call",
"duration": 30,
"slug": "discovery-call"
}'
Request Body
| Field | Type | Required | Description |
|---|
name | string | Yes | Display name (e.g., “30 Minute Call”) |
duration | number | Yes | Duration in minutes |
slug | string | No | URL slug (auto-generated if not provided) |
description | string | No | Description shown on booking page |
bufferBefore | number | No | Minutes blocked before meeting |
bufferAfter | number | No | Minutes blocked after meeting |
Response
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"name": "Discovery Call",
"slug": "discovery-call",
"duration": 30,
"bookingUrl": "https://cal.meetergo.com/john-smith/discovery-call"
}
List Meeting Types
Get all meeting types for a user:
curl -X GET "https://api.meetergo.com/v4/meeting-type" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-meetergo-api-user-id: {userId}"
Response
[
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"name": "Discovery Call",
"slug": "discovery-call",
"duration": 30,
"description": "Let's discuss your needs",
"bookingUrl": "https://cal.meetergo.com/john-smith/discovery-call"
},
{
"id": "770e8400-e29b-41d4-a716-446655440003",
"name": "Demo Session",
"slug": "demo",
"duration": 60,
"bookingUrl": "https://cal.meetergo.com/john-smith/demo"
}
]
Update a Meeting Type
curl -X PATCH "https://api.meetergo.com/v4/meeting-type/{meetingTypeId}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-meetergo-api-user-id: {userId}" \
-H "Content-Type: application/json" \
-d '{
"name": "Quick Chat",
"duration": 15
}'
Video Conferencing
Specify the video conferencing channel when booking:
| Channel | Description |
|---|
google_meet | Google Meet link (requires integration) |
zoom | Zoom meeting (requires integration) |
teams | Microsoft Teams (requires integration) |
whereby | Whereby room |
phone | Phone call |
in_person | In-person meeting |
When creating a booking, specify the channel:
{
"meetingTypeId": "770e8400-e29b-41d4-a716-446655440002",
"start": "2024-01-15T09:00:00+01:00",
"hostIds": ["550e8400-e29b-41d4-a716-446655440000"],
"channel": "zoom",
"attendee": {
"email": "[email protected]",
"firstname": "Jane"
}
}
Buffer Times
Buffer times prevent back-to-back meetings:
{
"name": "Strategy Session",
"duration": 60,
"bufferBefore": 15,
"bufferAfter": 15
}
This creates a 60-minute meeting with 15 minutes blocked before and after.
Example schedule impact:
| Actual Time | Availability |
|---|
| 9:00-9:15 | Blocked (buffer before) |
| 9:15-10:15 | Meeting |
| 10:15-10:30 | Blocked (buffer after) |
| 10:30+ | Available |
Multiple Durations
Some meeting types support multiple durations. The attendee chooses when booking:
{
"name": "Consultation",
"durations": [15, 30, 60],
"defaultDuration": 30
}
When booking, specify the duration:
{
"meetingTypeId": "770e8400-e29b-41d4-a716-446655440002",
"start": "2024-01-15T09:00:00+01:00",
"duration": 60,
"hostIds": ["550e8400-e29b-41d4-a716-446655440000"],
"attendee": { "email": "[email protected]" }
}
Common Patterns
Sales Discovery
{
"name": "Discovery Call",
"duration": 30,
"description": "Let's learn about your business and goals",
"bufferAfter": 10
}
Technical Demo
{
"name": "Product Demo",
"duration": 45,
"description": "See our product in action",
"bufferBefore": 15,
"bufferAfter": 15
}
Quick Support
{
"name": "Quick Support",
"duration": 15,
"description": "Fast help for simple questions"
}
Strategy Session
{
"name": "Strategy Session",
"duration": 90,
"description": "Deep dive into your strategy",
"bufferBefore": 30,
"bufferAfter": 15
}
Best Practices
Use descriptive names - “30 Minute Discovery Call” is clearer than “Call”
Add buffer times - Give yourself time to prepare and wrap up
Keep slugs short - discovery is better than 30-minute-discovery-call-with-sales
Slug uniqueness - Each meeting type slug must be unique per user