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"
AUTH = (os.environ["EAGENDA_USER"], os.environ["EAGENDA_PASSWORD"])
# List active calendars
calendars = requests.get(
f"{BASE_URL}/calendars/",
auth=AUTH,
params={"is_active": True}
).json()
# Query time slots
slots = requests.get(
f"{BASE_URL}/available-date-times/",
auth=AUTH,
params={
"calendar_key": calendars["results"][0]["calendar_key"],
"day": "2026-06-10",
}
).json()
# Create appointment
appointment = requests.post(
f"{BASE_URL}/appointments/",
auth=AUTH,
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 = "Basic " + btoa(`${process.env.EAGENDA_USER}:${process.env.EAGENDA_PASSWORD}`);
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";
$user = getenv("EAGENDA_USER");
$password = getenv("EAGENDA_PASSWORD");
function apiRequest($url, $method = "GET", $data = null) {
global $user, $password;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["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 credentials = Convert.ToBase64String(
Encoding.UTF8.GetBytes($"{Environment.GetEnvironmentVariable("EAGENDA_USER")}:{Environment.GetEnvironmentVariable("EAGENDA_PASSWORD")}")
);
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic", credentials);
// 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: Basic 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: Basic YOUR_TOKEN"
# Create appointment
curl -X POST "https://eagenda.com.br/api/v3/appointments/" \
-H "Authorization: Basic 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: Basic YOUR_TOKEN"
Example repository
For more examples and complete integration projects, visit our GitHub repository:
GitHub: mupisystems/eagenda-integracao