SavvyCal · Schema
Event
A scheduled event/booking on SavvyCal.
SchedulingCalendarAppointmentsAvailabilityBookingMeetingsWebhooks
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique event identifier. |
| status | string | Current status of the event. |
| start_time | string | Event start time in ISO 8601 format. |
| end_time | string | Event end time in ISO 8601 format. |
| duration | integer | Event duration in minutes. |
| buffer_before | integernull | Buffer time before the event in minutes. |
| buffer_after | integernull | Buffer time after the event in minutes. |
| original_start_time | stringnull | Original start time if the event was rescheduled. |
| attendees | array | All event attendees. |
| conferencing | object | |
| payment | object | |
| scope | object | |
| created_at | string | When the event was created. |
| updated_at | string | When the event was last updated. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api.savvycal.com/v1/schemas/event",
"title": "Event",
"description": "A scheduled event/booking on SavvyCal.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique event identifier."
},
"status": {
"type": "string",
"description": "Current status of the event.",
"enum": [
"confirmed",
"canceled",
"awaiting_reschedule",
"awaiting_checkout",
"awaiting_approval"
]
},
"start_time": {
"type": "string",
"format": "date-time",
"description": "Event start time in ISO 8601 format."
},
"end_time": {
"type": "string",
"format": "date-time",
"description": "Event end time in ISO 8601 format."
},
"duration": {
"type": "integer",
"description": "Event duration in minutes.",
"minimum": 1
},
"buffer_before": {
"type": ["integer", "null"],
"description": "Buffer time before the event in minutes."
},
"buffer_after": {
"type": ["integer", "null"],
"description": "Buffer time after the event in minutes."
},
"original_start_time": {
"type": ["string", "null"],
"format": "date-time",
"description": "Original start time if the event was rescheduled."
},
"attendees": {
"type": "array",
"description": "All event attendees.",
"items": {
"$ref": "#/$defs/EventAttendee"
}
},
"conferencing": {
"$ref": "#/$defs/Conferencing"
},
"payment": {
"oneOf": [
{ "$ref": "#/$defs/Payment" },
{ "type": "null" }
]
},
"scope": {
"oneOf": [
{ "$ref": "#/$defs/Scope" },
{ "type": "null" }
]
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "When the event was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "When the event was last updated."
}
},
"required": ["id", "status", "start_time", "end_time", "duration", "attendees"],
"$defs": {
"EventAttendee": {
"title": "EventAttendee",
"description": "An attendee of a scheduled event.",
"type": "object",
"properties": {
"id": { "type": "string", "description": "Unique attendee identifier." },
"name": { "type": "string", "description": "Attendee's name." },
"email": { "type": "string", "format": "email", "description": "Attendee's email." },
"time_zone": { "type": "string", "description": "Attendee's time zone." },
"status": {
"type": "string",
"enum": ["accepted", "declined", "tentative", "awaiting"],
"description": "Attendee's response status."
}
},
"required": ["name", "email"]
},
"Conferencing": {
"title": "Conferencing",
"description": "Video conferencing details for an event.",
"type": "object",
"properties": {
"join_url": { "type": ["string", "null"], "format": "uri" },
"meeting_id": { "type": ["string", "null"] },
"integration_type": { "type": "string", "example": "zoom" }
}
},
"Payment": {
"title": "Payment",
"description": "Payment information associated with an event.",
"type": "object",
"properties": {
"amount": { "type": "number" },
"state": { "type": "string", "enum": ["awaiting_checkout", "paid"] },
"stripe_dashboard_url": { "type": ["string", "null"], "format": "uri" }
}
},
"Scope": {
"title": "Scope",
"description": "A team or organizational scope.",
"type": "object",
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"slug": { "type": "string" }
},
"required": ["id", "name", "slug"]
}
}
}