Developer Portal / Code Examples
Developer Portal

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