curl --request POST \
--url https://api.{tenant}.getomneo.com/api/v3/appointments/{appointment}/link \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>"
}
'{
"data": {
"id": 123,
"appointment_definition_id": 123,
"appointment_definition": {
"id": 123,
"handle": "<string>",
"name": "<string>",
"description": "<string>",
"is_published": true,
"is_archived": true,
"duration_minutes": 123,
"buffer_before_minutes": 123,
"buffer_after_minutes": 123,
"min_lead_minutes": 123,
"max_advance_days": 123,
"slot_interval_minutes": 123,
"booking_type": "<string>",
"allow_customer_booking": true,
"allow_walk_in": true,
"requires_staff": true,
"customer_must_select_staff": true,
"use_staff_from_location": true,
"max_concurrent_bookings": 123,
"allow_waitlist": true,
"allow_queue": true,
"meta": [
"<unknown>"
],
"created_target_id": 123,
"confirmed_target_id": 123,
"cancelled_target_id": 123,
"rejected_target_id": 123,
"reminder_target_id": 123,
"notify_created_offset_days": 123,
"notify_created_offset_hours": 123,
"notify_confirmed_offset_days": 123,
"notify_confirmed_offset_hours": 123,
"notify_cancelled_offset_days": 123,
"notify_cancelled_offset_hours": 123,
"notify_rejected_offset_days": 123,
"notify_rejected_offset_hours": 123,
"notify_reminder_offset_days": 123,
"notify_reminder_offset_hours": 123,
"has_booking_questionnaire": true,
"created_at": "<string>",
"updated_at": "<string>",
"normal_hours": [
{
"id": 123,
"appointment_definition_id": 123,
"day_of_week": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"is_closed": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
],
"special_hours": [
{
"id": 123,
"appointment_definition_id": 123,
"name": "<string>",
"is_repeating": true,
"available_from": "<string>",
"available_until": "<string>",
"start_at": "<string>",
"end_at": "<string>",
"is_closed": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
],
"locations": [
"<unknown>"
],
"staff": [
{
"id": 123,
"appointment_definition_id": 123,
"staff_id": "<string>",
"is_active": true,
"staff": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"mobile_phone": "<string>",
"normal_hours": [
{
"id": "<string>",
"day_of_week": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"is_closed": "<string>"
}
],
"special_hours": [
{
"id": "<string>",
"name": "<string>",
"is_repeating": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"start_at": "<string>",
"end_at": "<string>"
}
]
},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"booking_questionnaire": {
"id": "<string>",
"name": "<string>",
"purpose": "<string>",
"is_active": "<string>",
"pages": "<string>"
}
},
"profile_id": "<string>",
"profile": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"location_id": 123,
"location": {
"id": 123,
"name": "<string>",
"handle": "<string>",
"timezone": "<string>"
},
"assigned_staff_id": "<string>",
"assigned_staff": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"status": "<string>",
"scheduled_start_at": "<string>",
"scheduled_end_at": "<string>",
"timezone": "<string>",
"approved_at": "<string>",
"confirmed_at": "<string>",
"cancelled_at": "<string>",
"arrived_at": "<string>",
"completed_at": "<string>",
"no_show_at": "<string>",
"rejected_at": "<string>",
"approved_by": "<string>",
"cancelled_by": "<string>",
"rejected_by": "<string>",
"transaction_id": 123,
"order_id": 123,
"notes": "<string>",
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>",
"transaction": {
"id": 123,
"external_id": "<string>",
"receipt_ref": "<string>",
"total": 123,
"status": "<string>"
},
"order": {
"id": 123,
"external_id": "<string>",
"receipt_ref": "<string>",
"order_number": "<string>",
"total": 123,
"status": "<string>"
},
"answers": [
{
"id": 123,
"questionnaire_id": 123,
"questionnaire_question_id": 123,
"question_id": 123,
"question_version_id": 123,
"profile_id": "<string>",
"answerable_type": "<string>",
"answerable_id": "<string>",
"mapping_key": "<string>",
"link_type": "<string>",
"link_target": "<string>",
"link_write_policy": "<string>",
"question_label": "<string>",
"question_type": "<string>",
"question_required": true,
"answer_type": "<string>",
"value": true,
"mappable_type": "<string>",
"mappable_id": "<string>",
"mapped_field": "<string>",
"mapping_status": "<string>",
"mapping_error": "<string>",
"mapped_at": "<string>",
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>",
"question_handle": "<string>"
}
],
"links": [
{
"id": "<string>",
"type": "<string>",
"target_id": "<string>",
"profile": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"linkable": {
"id": "<string>",
"name": "<string>",
"handle": "<string>",
"profile_id": "<string>"
}
}
]
}
}A POST to the /appointments/{appointmentId}/link endpoint allows your application to link an appointment to another record.
curl --request POST \
--url https://api.{tenant}.getomneo.com/api/v3/appointments/{appointment}/link \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>"
}
'{
"data": {
"id": 123,
"appointment_definition_id": 123,
"appointment_definition": {
"id": 123,
"handle": "<string>",
"name": "<string>",
"description": "<string>",
"is_published": true,
"is_archived": true,
"duration_minutes": 123,
"buffer_before_minutes": 123,
"buffer_after_minutes": 123,
"min_lead_minutes": 123,
"max_advance_days": 123,
"slot_interval_minutes": 123,
"booking_type": "<string>",
"allow_customer_booking": true,
"allow_walk_in": true,
"requires_staff": true,
"customer_must_select_staff": true,
"use_staff_from_location": true,
"max_concurrent_bookings": 123,
"allow_waitlist": true,
"allow_queue": true,
"meta": [
"<unknown>"
],
"created_target_id": 123,
"confirmed_target_id": 123,
"cancelled_target_id": 123,
"rejected_target_id": 123,
"reminder_target_id": 123,
"notify_created_offset_days": 123,
"notify_created_offset_hours": 123,
"notify_confirmed_offset_days": 123,
"notify_confirmed_offset_hours": 123,
"notify_cancelled_offset_days": 123,
"notify_cancelled_offset_hours": 123,
"notify_rejected_offset_days": 123,
"notify_rejected_offset_hours": 123,
"notify_reminder_offset_days": 123,
"notify_reminder_offset_hours": 123,
"has_booking_questionnaire": true,
"created_at": "<string>",
"updated_at": "<string>",
"normal_hours": [
{
"id": 123,
"appointment_definition_id": 123,
"day_of_week": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"is_closed": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
],
"special_hours": [
{
"id": 123,
"appointment_definition_id": 123,
"name": "<string>",
"is_repeating": true,
"available_from": "<string>",
"available_until": "<string>",
"start_at": "<string>",
"end_at": "<string>",
"is_closed": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
}
],
"locations": [
"<unknown>"
],
"staff": [
{
"id": 123,
"appointment_definition_id": 123,
"staff_id": "<string>",
"is_active": true,
"staff": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"mobile_phone": "<string>",
"normal_hours": [
{
"id": "<string>",
"day_of_week": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"is_closed": "<string>"
}
],
"special_hours": [
{
"id": "<string>",
"name": "<string>",
"is_repeating": "<string>",
"available_from": "<string>",
"available_until": "<string>",
"start_at": "<string>",
"end_at": "<string>"
}
]
},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"booking_questionnaire": {
"id": "<string>",
"name": "<string>",
"purpose": "<string>",
"is_active": "<string>",
"pages": "<string>"
}
},
"profile_id": "<string>",
"profile": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"location_id": 123,
"location": {
"id": 123,
"name": "<string>",
"handle": "<string>",
"timezone": "<string>"
},
"assigned_staff_id": "<string>",
"assigned_staff": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"status": "<string>",
"scheduled_start_at": "<string>",
"scheduled_end_at": "<string>",
"timezone": "<string>",
"approved_at": "<string>",
"confirmed_at": "<string>",
"cancelled_at": "<string>",
"arrived_at": "<string>",
"completed_at": "<string>",
"no_show_at": "<string>",
"rejected_at": "<string>",
"approved_by": "<string>",
"cancelled_by": "<string>",
"rejected_by": "<string>",
"transaction_id": 123,
"order_id": 123,
"notes": "<string>",
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>",
"transaction": {
"id": 123,
"external_id": "<string>",
"receipt_ref": "<string>",
"total": 123,
"status": "<string>"
},
"order": {
"id": 123,
"external_id": "<string>",
"receipt_ref": "<string>",
"order_number": "<string>",
"total": 123,
"status": "<string>"
},
"answers": [
{
"id": 123,
"questionnaire_id": 123,
"questionnaire_question_id": 123,
"question_id": 123,
"question_version_id": 123,
"profile_id": "<string>",
"answerable_type": "<string>",
"answerable_id": "<string>",
"mapping_key": "<string>",
"link_type": "<string>",
"link_target": "<string>",
"link_write_policy": "<string>",
"question_label": "<string>",
"question_type": "<string>",
"question_required": true,
"answer_type": "<string>",
"value": true,
"mappable_type": "<string>",
"mappable_id": "<string>",
"mapped_field": "<string>",
"mapping_status": "<string>",
"mapping_error": "<string>",
"mapped_at": "<string>",
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>",
"question_handle": "<string>"
}
],
"links": [
{
"id": "<string>",
"type": "<string>",
"target_id": "<string>",
"profile": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>"
},
"linkable": {
"id": "<string>",
"name": "<string>",
"handle": "<string>",
"profile_id": "<string>"
}
}
]
}
}Documentation Index
Fetch the complete documentation index at: https://docs.omneo.io/llms.txt
Use this file to discover all available pages before exploring further.
The appointment ID
Payload validation for both POST /appointments/{appointment}/link and POST /appointments/{appointment}/unlink. Type must be one of the whitelisted morph aliases; id format depends on the type (UUID for profile, integer for everything else).
Appointment
Show child attributes