Saltar al contenido principal

Appointment Properties

This table defines the structure of the appointment entity, including all properties and their descriptions.

🔹 Core Properties

PropertyTypeRequiredRead-OnlyDescriptionExample
idstring (UUID)NoYesUnique identifier for the appointment"550e8400-e29b-41d4-a716-446655440000"
createdAtstring (ISO 8601)NoYesTimestamp when the appointment was created"2025-05-01T10:30:00Z"
updatedAtstring (ISO 8601)NoYesTimestamp when the appointment was last updated"2025-05-21T09:00:00Z"
cancelledAtstring (ISO 8601)NoYesTimestamp when the appointment was cancelled"2025-05-22T08:15:00Z"
cancellationTokenstringNoYesToken used to authorize cancellation"cancel-abc123"
cancellationOriginstringNoYesSource or reason category for cancellation"user"
originstringNoNoSource from which the appointment was created"web"
extraFieldsobjectNoNoCustom object containing additional defined fields{ "salesRep": "John Doe", "priority": "high" }
externalIdstringNoNoExternal identifier for the appointment"EXT-123"
titlestringNoNoTitle or subject of the appointment"Product Demo Meeting"
descriptionstringNoNoDetailed description of the appointment"Demonstration of new product features"
startstring (ISO 8601)YesNoStart time of the appointment"2025-05-20T14:00:00Z"
endstring (ISO 8601)YesNoEnd time of the appointment"2025-05-20T15:00:00Z"
langstringNoNoLanguage code for localization"en-US"
statestringNoNoCurrent state of the appointment"pending"

🗓️ Scheduling Properties

PropertyTypeRequiredDescriptionExample
calendarIdsarray of string (UUID)YesList of calendar IDs this appointment belongs to["123e4567-e89b-12d3-a456-426614174000", "223e4567-e89b-12d3-a456-426614174001"]
serviceIdstring (UUID)NoID of the service/template used"123e4567-e89b-12d3-a456-426614174000"
allowOverlappingbooleanNoAllow overlap with other appointmentsfalse
statestringNoCurrent state of the appointment"confirmed"

👥 Guest Management

PropertyTypeRequiredDescriptionExample
guestsarrayNoList of guests invitedSee guests example below
guests[].emailstringYesGuest's email address"[email protected]"
guests[].extraFieldsobjectNoAdditional guest information{"company": "Acme Corp"}

⏰ Reminders and Notifications

PropertyTypeRequiredDescriptionExample
remindersarrayNoReminder configurationsSee reminders example below
reminders[].timenumberYesTime value for reminder10
reminders[].unitstringYesTime unit (s/m/h)"m"

🎥 Event Details

PropertyTypeRequiredDescriptionExample
event.eventIdstring (UUID)YesVirtual event identifier"123e4567-e89b-12d3-a456-426614174000"
event.iCallUrlstring (URL)YesVideo call URL"https://meet.example.com/room/123"
event.roomstringYesVirtual room name"Demo Room 1"

🧩 Example Entry

{
"id": "123e4567-e89b-12d3-a456-426614174000",
"externalId": "EXT-123",
"title": "Product Demo Meeting",
"description": "Demonstration of new product features to the client",
"start": "2025-05-20T14:00:00Z",
"end": "2025-05-20T15:00:00Z",
"lang": "en-US",
"calendarIds": ["123e4567-e89b-12d3-a456-426614174000"],
"serviceId": "123e4567-e89b-12d3-a456-426614174000",
"cancellationToken": "tkn_cancel_123",
"cancellationOrigin": "user",
"state": "pending",
"createdAt": "2025-05-22T10:30:00Z",
"updatedAt": "2025-05-22T10:30:00Z",
"guests": [
{
"email": "[email protected]"
}
],
"extraFields": {
"area": "Madrid",
"city": "Alcobendas",
"street": "Carretera. De Fuencarral, 18",
"country": "Spain"
},
"reminders": [
{
"time": 10,
"unit": "m"
}
],
"event": {
"eventId": "123e4567-e89b-12d3-a456-426614174000",
"iCallUrl": "https://meet.example.com/room/123",
"room": "Demo Room 1"
},
"origin": "web",
"agentComment": null,
"organizationId": "bfc5b6b5-1d67-419e-9025-96336f2330c6",
"cancelledAt": null,
}

🔍 Interpretation

  • Appointments can optionally be tied to a service (serviceId)
  • Guests receive notifications based on their preferences
  • Virtual meetings include event details with video call information
  • Appointments follow a state lifecycle (pending → confirmed → completed/cancelled)
  • All times are in ISO 8601 format with UTC timezone

✅ Use Cases

  • 📅 Basic Scheduling: Create standard appointments
  • 🎥 Virtual Meetings: Schedule video conferences
  • 👥 Group Events: Manage multi-participant appointments
  • 🔄 Series Management: Handle recurring appointments
  • 📋 Service Booking: Schedule service-based appointments

📘 Notes

  • Timezone: All times must be in UTC
  • Duration: End time must be after start time
  • Overlap: By default, appointments cannot overlap
  • Notifications: Configurable per guest
  • Virtual Events: Automatically generate meeting links
  • States: Follow defined state transition rules
  • Custom Fields: Use extraFields for additional data