Developer Portal / Manage Appointments
Developer Portal

Manage Appointments

After creating appointments, you can fully manage them via API: list, filter, update status, reschedule and cancel.

List appointments

GET /api/v3/appointments/
curl -X GET "https://eagenda.com.br/api/v3/appointments/" \
  -H "Authorization: Basic YOUR_TOKEN"

Available filters

ParameterTypeDescription
calendar_keyUUIDFilter by calendar
client_keyUUIDFilter by client
person_keyUUIDFilter by person
statusstringFilter by status
start_datedatetimeMinimum start date
end_datedatetimeMaximum start date
emailstringFilter by email
phonestringFilter by phone
namestringFilter by name
identification_codestringFilter by ID number
external_idstringFilter by external ID
search_codestringSearch by appointment code
is_cancelledbooleanFilter cancelled
service_keysUUID[]Filter by services
tag_keysUUID[]Filter by tags
owner_userstringFilter by responsible user
created_atdatetimeFilter by creation date

Possible statuses

StatusDescription
CONFIRMEDConfirmed
PENDINGPending confirmation
ATTENDEDAttended
IN_PROGRESSIn progress
NO_SHOWNo show
CANCELEDCancelled
CANCELED_CLIENTCancelled by client
CANCELED_GOOGLECancelled via Google Calendar
PENDING_PAYMENTAwaiting payment
PENDING_FORMAwaiting form submission
PENDING_COMPANIONSAwaiting companion details

Example: today’s confirmed appointments

curl -X GET "https://eagenda.com.br/api/v3/appointments/?status=CONFIRMED&start_date=2026-06-04T00:00:00&end_date=2026-06-04T23:59:59" \
  -H "Authorization: Basic YOUR_TOKEN"

Retrieve an appointment

GET /api/v3/appointments/{appointment_key}/
curl -X GET "https://eagenda.com.br/api/v3/appointments/apt12345-.../" \
  -H "Authorization: Basic YOUR_TOKEN"

Update status

PATCH /api/v3/appointments/{appointment_key}/

Change an appointment’s status (e.g., mark as attended):

curl -X PATCH "https://eagenda.com.br/api/v3/appointments/apt12345-.../" \
  -H "Authorization: Basic YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "ATTENDED"}'

Reschedule

PATCH /api/v3/appointments/{appointment_key}/reschedule/

Move the appointment to a new time slot:

curl -X PATCH "https://eagenda.com.br/api/v3/appointments/apt12345-.../reschedule/" \
  -H "Authorization: Basic YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"start_date": "2026-06-12T14:00:00-03:00"}'

Important: Check availability of the new time slot before rescheduling.

Cancel

DELETE /api/v3/appointments/{appointment_key}/
curl -X DELETE "https://eagenda.com.br/api/v3/appointments/apt12345-.../?send_email=true" \
  -H "Authorization: Basic YOUR_TOKEN"
ParameterTypeDescription
send_emailbooleanSend cancellation notification email to client

Complete example in Python

import requests
from datetime import datetime, timedelta

BASE_URL = "https://eagenda.com.br/api/v3"
AUTH = ("my@email.com", "my_password")

# List tomorrow's appointments
tomorrow = (datetime.now() + timedelta(days=1)).strftime("%Y-%m-%d")
appointments = requests.get(
    f"{BASE_URL}/appointments/",
    auth=AUTH,
    params={
        "start_date": f"{tomorrow}T00:00:00",
        "end_date": f"{tomorrow}T23:59:59",
        "status": "CONFIRMED",
    }
).json()

for apt in appointments["results"]:
    print(f"{apt['search_code']} - {apt['person']['full_name']} at {apt['start_date']}")

# Mark the first one as attended
if appointments["results"]:
    apt_key = appointments["results"][0]["appointment_key"]
    requests.patch(
        f"{BASE_URL}/appointments/{apt_key}/",
        auth=AUTH,
        json={"status": "ATTENDED"}
    )
    print(f"Appointment {apt_key} marked as ATTENDED")