List Cal.com Appointments
curl --request GET \
--url https://api.ravan.ai/api/v1/calcom/appointments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ravan.ai/api/v1/calcom/appointments"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/calcom/appointments")
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": "Appointments retrieved",
"data": {
"appointments": [
{
"id": "<string>",
"organization_id": "<string>",
"agent_id": "<string>",
"attendee_name": "<string>",
"attendee_email": "<string>",
"attendee_phone": "<string>",
"attendee_timezone": "<string>",
"start_time": "<string>",
"end_time": "<string>",
"duration_minutes": <integer>,
"status": "<string>"
}
],
"count": <integer>,
"org_id": "<string>",
"agent_id": "<string>"
}
}
Cal.com Integration API
List Cal.com Appointments
Lists bookings fetched live from the organization’s primary Cal.com account.
GET
/
api
/
v1
/
calcom
/
appointments
List Cal.com Appointments
curl --request GET \
--url https://api.ravan.ai/api/v1/calcom/appointments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ravan.ai/api/v1/calcom/appointments"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/calcom/appointments")
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": "Appointments retrieved",
"data": {
"appointments": [
{
"id": "<string>",
"organization_id": "<string>",
"agent_id": "<string>",
"attendee_name": "<string>",
"attendee_email": "<string>",
"attendee_phone": "<string>",
"attendee_timezone": "<string>",
"start_time": "<string>",
"end_time": "<string>",
"duration_minutes": <integer>,
"status": "<string>"
}
],
"count": <integer>,
"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>.Query Parameters
string
required
The organization ID whose primary Cal.com account bookings you want to fetch.
string
Optional Cal.com booking status filter.
string
Optional agent ID that is stamped onto the results and echoed back in the response.
integer
Optional result limit. Defaults to
50 and is clamped back to 50 when the value is <= 0 or > 200.Response
boolean
Whether the request succeeded.
string
Human-readable status message.
object
{
"success": <boolean>,
"message": "Appointments retrieved",
"data": {
"appointments": [
{
"id": "<string>",
"organization_id": "<string>",
"agent_id": "<string>",
"attendee_name": "<string>",
"attendee_email": "<string>",
"attendee_phone": "<string>",
"attendee_timezone": "<string>",
"start_time": "<string>",
"end_time": "<string>",
"duration_minutes": <integer>,
"status": "<string>"
}
],
"count": <integer>,
"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": "CALCOM_API_ERROR"
}
{
"success": false,
"message": "<string>"
}
{
"success": false,
"message": "<string>",
"code": "INTERNAL_ERROR"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Organization ID
Cal.com booking status filter
Agent ID to stamp onto results and echo back
Result limit, clamped to 50 when <=0 or >200
Response
Appointments retrieved
Show child attributes
Show child attributes
Example:
{
"appointments": [
{
"id": "<string>",
"organization_id": "<string>",
"agent_id": "<string>",
"attendee_name": "<string>",
"attendee_email": "<string>",
"attendee_phone": "<string>",
"attendee_timezone": "<string>",
"start_time": "<string>",
"end_time": "<string>",
"duration_minutes": 0,
"status": "<string>"
}
],
"count": 1,
"org_id": "<string>",
"agent_id": "<string>"
}

