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"
cancellationOriginstringNoYesSource or reason category for cancellation"user"
originstringNoNoSource from which the appointment was created"web"
originUrlstring (URL)NoNoOrigin URL where the appointment was created"https://example.com"
extraFieldsobjectNoNoCustom object containing additional defined fields{ "salesRep": "John Doe", "priority": "high" }
externalIdstringNoNoExternal identifier for the appointment"EXT-123"
interactionIdstringNoNoInteraction identifier (UUID string)"123e4567-e89b-12d3-a456-426614174000"
commentstringNoNoAdditional comment"Additional notes"
titlestringNoNoTitle or subject of the appointment"Product Demo Meeting"
descriptionstringNoNoDetailed description of the appointment"Demonstration of new product features"
startAtstring (ISO 8601)YesNoStart time of the appointment"2025-05-20T14:00:00Z"
endAtstring (ISO 8601)YesNoEnd time of the appointment"2025-05-20T15:00:00Z"
langstringNoNoLanguage code for localization"en-US"
statusstringNoNoCurrent status of the appointment"pending"
subStatusstringNoNoSub-status of the appointment"reschedule-requested"
blockedUntilstring (ISO 8601)NoNoBlocked until datetime (if applicable)"2025-05-20T13:30:00Z"
versionnumberNoNoVersion number1
bufferTimeMinutesnumberNoNoBuffer time in minutes15
providerEventIdstringNoNoProvider event identifier"prov-123"
providerETagstringNoNoProvider ETag"etag-123"
providerIdstring (UUID)NoNoProvider ID"123e4567-e89b-12d3-a456-426614174000"
userPreferencesobjectNoNoUser preferences by entity type{ "agent": [{"field":"lang","value":"en","required":true}] }

🗓️ 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"
userGroupIdstring (UUID)NoUser group identifier"1be7bf10-5c72-480b-b0d7-1c2bb023225d"
blockedbooleanNoWhether the appointment is a blockfalse
blockedAppointmentIdstring (UUID)NoBlock an existing appointment by reference"123e4567-e89b-12d3-a456-426614174000"

👥 Guest Management

PropertyTypeRequiredDescriptionExample
guestsarrayNoList of guests invitedSee guests example below
guests[].emailstringNoGuest email"[email protected]"
guests[].phonestringNoGuest phone"+1234567890"
guests[].firstNamestringNoGuest first name"John"
guests[].lastNamestringNoGuest last name"Doe"
guests[].statusstringNoGuest status"invited"
guests[].canonicalIdstringNoCanonical ID"guest-12345"

⏰ Reminders and Notifications

PropertyTypeRequiredDescriptionExample
remindersarrayNoReminder configurationsSee reminders example below
reminders[].timenumberYesTime value for reminder10
reminders[].unitenumYesTime unit. One of: s (seconds), m (minutes), h (hours)"m"
reminders[].directionenumYesDirection relative to the appointment: before or after"before"
reminders[].executionDatestring (ISO 8601)NoExact execution datetime (calculated)"2025-05-14T09:45:00Z"
reminders[].executedAtstring (ISO 8601)NoWhen the reminder was executed (if executed)"2025-05-14T09:45:10Z"

🎥 Event Details

PropertyTypeRequiredDescriptionExample
eventobjectNoArbitrary provider event properties{ "eventId": "123e4567-..." }

🧩 Example Entry

{
"id": "123e4567-e89b-12d3-a456-426614174000",
"externalId": "EXT-123",
"title": "Product Demo Meeting",
"description": "Demonstration of new product features to the client",
"startAt": "2025-05-20T14:00:00Z",
"endAt": "2025-05-20T15:00:00Z",
"lang": "en-US",
"calendarIds": ["123e4567-e89b-12d3-a456-426614174000"],
"serviceId": "123e4567-e89b-12d3-a456-426614174000",
"cancellationOrigin": "user",
"status": "pending",
"createdAt": "2025-05-22T10:30:00Z",
"updatedAt": "2025-05-22T10:30:00Z",
"guests": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe"
}
],
"extraFields": {
"area": "Madrid",
"city": "Alcobendas",
"street": "Carretera. De Fuencarral, 18",
"country": "Spain"
},
"reminders": [
{
"time": 10,
"unit": "m",
"direction": "before"
}
],
"event": {
"eventId": "123e4567-e89b-12d3-a456-426614174000",
"iCallUrl": "https://meet.example.com/room/123",
"room": "Demo Room 1"
},
"origin": "web",
"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 may include event details
  • Appointments follow a status 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: May include provider-specific fields
  • Status/Sub-status: Use status and subStatus for lifecycle tracking
  • Custom Fields: Use extraFields for additional data