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
| Parameter | Type | Description |
|---|---|---|
calendar_key | UUID | Filter by calendar |
client_key | UUID | Filter by client |
person_key | UUID | Filter by person |
status | string | Filter by status |
start_date | datetime | Minimum start date |
end_date | datetime | Maximum start date |
email | string | Filter by email |
phone | string | Filter by phone |
name | string | Filter by name |
identification_code | string | Filter by ID number |
external_id | string | Filter by external ID |
search_code | string | Search by appointment code |
is_cancelled | boolean | Filter cancelled |
service_keys | UUID[] | Filter by services |
tag_keys | UUID[] | Filter by tags |
owner_user | string | Filter by responsible user |
created_at | datetime | Filter by creation date |
Possible statuses
| Status | Description |
|---|---|
CONFIRMED | Confirmed |
PENDING | Pending confirmation |
ATTENDED | Attended |
IN_PROGRESS | In progress |
NO_SHOW | No show |
CANCELED | Cancelled |
CANCELED_CLIENT | Cancelled by client |
CANCELED_GOOGLE | Cancelled via Google Calendar |
PENDING_PAYMENT | Awaiting payment |
PENDING_FORM | Awaiting form submission |
PENDING_COMPANIONS | Awaiting 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"
| Parameter | Type | Description |
|---|---|---|
send_email | boolean | Send 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")