Get Appointment
curl --request GET \
--url https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": <boolean>,
"message": "Appointment retrieved",
"data": {
"appointment": {
"id": "<string>",
"organization_id": "<string>",
"ghl_appointment_id": "<string>",
"contact_id": "<string>",
"agent_id": "<string>",
"agent_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"contact_phone": "<string>",
"appointment_time": "<string>",
"end_time": "<string>",
"status": "<string>"
},
"org_id": "<string>",
"agent_id": "<string>"
}
}
Cal.com Integration API
Get Appointment
Fetches a single booking by its Cal.com booking UID from the organization’s primary Cal.com account.
GET
/
api
/
v1
/
calcom
/
appointments
/
{appointment_id}
Get Appointment
curl --request GET \
--url https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/calcom/appointments/{appointment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": <boolean>,
"message": "Appointment retrieved",
"data": {
"appointment": {
"id": "<string>",
"organization_id": "<string>",
"ghl_appointment_id": "<string>",
"contact_id": "<string>",
"agent_id": "<string>",
"agent_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"contact_phone": "<string>",
"appointment_time": "<string>",
"end_time": "<string>",
"status": "<string>"
},
"org_id": "<string>",
"agent_id": "<string>"
}
}
Authorizations
string
required
Your JWT access token. Pass it as a Bearer token in the
Authorization header. Example: Authorization: Bearer <token>.Path Parameters
string
required
The Cal.com booking UID for the appointment you want to fetch.
Query Parameters
string
Optional fallback organization ID. It is used only when the JWT claims do not already include the org context.
Response
boolean
Whether the request succeeded.
string
Human-readable status message.
object
{
"success": <boolean>,
"message": "Appointment retrieved",
"data": {
"appointment": {
"id": "<string>",
"organization_id": "<string>",
"ghl_appointment_id": "<string>",
"contact_id": "<string>",
"agent_id": "<string>",
"agent_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"contact_phone": "<string>",
"appointment_time": "<string>",
"end_time": "<string>",
"status": "<string>"
},
"org_id": "<string>",
"agent_id": "<string>"
}
}
{
"success": false,
"message": "<string>",
"code": "INVALID_REQUEST"
}
{
"success": false,
"message": "<string>",
"code": "NOT_CONNECTED"
}
{
"success": false,
"message": "<string>",
"code": "UNAUTHORIZED"
}
{
"success": false,
"message": "<string>",
"code": "CALCOM_API_ERROR"
}
{
"success": false,
"message": "<string>",
"code": "INTERNAL_ERROR"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Cal.com booking UID
Query Parameters
Fallback organization ID used only when not present in JWT claims
Response
Appointment retrieved
Show child attributes
Show child attributes
Example:
{
"appointment": {
"id": "<string>",
"organization_id": "<string>",
"ghl_appointment_id": "<string>",
"contact_id": "<string>",
"agent_id": "<string>",
"agent_name": "<string>",
"contact_name": "<string>",
"contact_email": "<string>",
"contact_phone": "<string>",
"appointment_time": "<string>",
"end_time": "<string>",
"status": "<string>"
},
"org_id": "<string>",
"agent_id": "<string>"
}
⌘I

