Code Examples
Ready-to-use examples you can copy and adapt for your project. All examples use the base URL https://eagenda.com.br/api/v3.
Python (requests)
import requests
import os
BASE_URL = "https://eagenda.com.br/api/v3"
HEADERS = {"Authorization": f"Bearer {os.environ['EAGENDA_TOKEN']}"}
# List active calendars
calendars = requests.get(
f"{BASE_URL}/calendars/",
headers=HEADERS,
params={"is_active": True}
).json()
# Query time slots
slots = requests.get(
f"{BASE_URL}/available-date-times/",
headers=HEADERS,
params={
"calendar_key": calendars["results"][0]["calendar_key"],
"day": "2026-06-10",
}
).json()
# Create appointment
appointment = requests.post(
f"{BASE_URL}/appointments/",
headers=HEADERS,
json={
"calendar_key": calendars["results"][0]["calendar_key"],
"start_date": slots["results"][0]["start_date"],
"service_keys": ["your-service-key"],
"person": {
"full_name": "Maria Souza",
"email": "maria@example.com",
"phone": "+15559876543",
},
}
).json()
print(f"Appointment: {appointment['search_code']}")
JavaScript / TypeScript (fetch)
const BASE_URL = "https://eagenda.com.br/api/v3";
const AUTH_HEADER = "Bearer " + process.env.EAGENDA_TOKEN;
const headers = {
"Authorization": AUTH_HEADER,
"Content-Type": "application/json",
};
// List active calendars
async function listCalendars() {
const res = await fetch(`${BASE_URL}/calendars/?is_active=true`, { headers });
return res.json();
}
// Query available time slots
async function getAvailableSlots(calendarKey, day) {
const params = new URLSearchParams({
calendar_key: calendarKey,
day: day,
});
const res = await fetch(`${BASE_URL}/available-date-times/?${params}`, { headers });
return res.json();
}
// Create appointment
async function createAppointment(calendarKey, startDate, serviceKeys, person) {
const res = await fetch(`${BASE_URL}/appointments/`, {
method: "POST",
headers,
body: JSON.stringify({
calendar_key: calendarKey,
start_date: startDate,
service_keys: serviceKeys,
person,
}),
});
return res.json();
}
// Usage
const calendars = await listCalendars();
const calendarKey = calendars.results[0].calendar_key;
const slots = await getAvailableSlots(calendarKey, "2026-06-10");
const appointment = await createAppointment(
calendarKey,
slots.results[0].start_date,
["your-service-key"],
{ full_name: "Maria Souza", email: "maria@example.com", phone: "+15559876543" }
);
console.log(`Appointment: ${appointment.search_code}`);
PHP
<?php
$baseUrl = "https://eagenda.com.br/api/v3";
$token = getenv("EAGENDA_TOKEN");
function apiRequest($url, $method = "GET", $data = null) {
global $token;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $token",
"Content-Type: application/json",
]);
if ($method === "POST") {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// List calendars
$calendars = apiRequest("$baseUrl/calendars/?is_active=true");
$calendarKey = $calendars["results"][0]["calendar_key"];
// Query time slots
$slots = apiRequest("$baseUrl/available-date-times/?calendar_key=$calendarKey&day=2026-06-10");
// Create appointment
$appointment = apiRequest("$baseUrl/appointments/", "POST", [
"calendar_key" => $calendarKey,
"start_date" => $slots["results"][0]["start_date"],
"service_keys" => ["your-service-key"],
"person" => [
"full_name" => "Maria Souza",
"email" => "maria@example.com",
"phone" => "+15559876543",
],
]);
echo "Appointment: " . $appointment["search_code"] . "\n";
C# (.NET)
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
var baseUrl = "https://eagenda.com.br/api/v3";
var token = Environment.GetEnvironmentVariable("EAGENDA_TOKEN");
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
// List calendars
var calendarsJson = await client.GetStringAsync($"{baseUrl}/calendars/?is_active=true");
var calendars = JsonDocument.Parse(calendarsJson);
var calendarKey = calendars.RootElement
.GetProperty("results")[0]
.GetProperty("calendar_key")
.GetString();
// Query time slots
var slotsJson = await client.GetStringAsync(
$"{baseUrl}/available-date-times/?calendar_key={calendarKey}&day=2026-06-10"
);
var slots = JsonDocument.Parse(slotsJson);
var startDate = slots.RootElement
.GetProperty("results")[0]
.GetProperty("start_date")
.GetString();
// Create appointment
var body = new {
calendar_key = calendarKey,
start_date = startDate,
service_keys = new[] { "your-service-key" },
person = new {
full_name = "Maria Souza",
email = "maria@example.com",
phone = "+15559876543"
}
};
var content = new StringContent(
JsonSerializer.Serialize(body), Encoding.UTF8, "application/json"
);
var response = await client.PostAsync($"{baseUrl}/appointments/", content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Appointment created: {result}");
cURL
# List calendars
curl -X GET "https://eagenda.com.br/api/v3/calendars/?is_active=true" \
-H "Authorization: Bearer YOUR_TOKEN"
# Query time slots
curl -X GET "https://eagenda.com.br/api/v3/available-date-times/?calendar_key=YOUR_CALENDAR_KEY&day=2026-06-10" \
-H "Authorization: Bearer YOUR_TOKEN"
# Create appointment
curl -X POST "https://eagenda.com.br/api/v3/appointments/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"calendar_key": "YOUR_CALENDAR_KEY",
"start_date": "2026-06-10T09:00:00-03:00",
"service_keys": ["YOUR_SERVICE_KEY"],
"person": {
"full_name": "Maria Souza",
"email": "maria@example.com",
"phone": "+15559876543"
}
}'
# Cancel appointment
curl -X DELETE "https://eagenda.com.br/api/v3/appointments/YOUR_APPOINTMENT_KEY/?send_email=true" \
-H "Authorization: Bearer YOUR_TOKEN"
Example repository
For more examples and complete integration projects, visit our GitHub repository:
GitHub: mupisystems/eagenda-integracao