Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/JulietaEM/EdgeTimer/llms.txt

Use this file to discover all available pages before exploring further.

Slots are time windows that barbers open in their calendar so clients can browse and reserve them. Each slot carries a date, start time, optional end time, and a status that tracks whether it is still available. Clients see all open slots across all barbers; a barber filtering by their own profileId sees only the slots they own.
Clients receive all available slots when no profileId is supplied. Barbers should always pass their own profileId to scope results to their own schedule.

GET /slots

Retrieve a list of availability slots. Pass profileId to filter by a specific barber.

Query parameters

profileId
string
Barber profile ID. When provided, only slots belonging to this barber are returned.

Response

Returns an array of SlotDisponible objects.
id
string
required
Unique slot identifier.
barbero
object
required
Barber who owns the slot.
inicioAt
string
required
ISO 8601 datetime of the slot start.
finAt
string
required
ISO 8601 datetime of the slot end.
fecha
string
required
Date of the slot in YYYY-MM-DD format.
horaInicio
string
required
Start time in HH:MM format.
horaFin
string
required
End time in HH:MM format.
estado
string
required
Slot status. Common values: disponible, reservado, cancelado.
curl https://edgetimer-backend.onrender.com/slots
Response
[
  {
    "id": "slot_01",
    "barbero": {
      "id": "barbero_abc123",
      "nombre": "Carlos Mendoza",
      "foto": "https://storage.example.com/signed/barberos/carlos.jpg",
      "promedioCalificacion": 4.8
    },
    "inicioAt": "2026-05-20T09:00:00.000Z",
    "finAt": "2026-05-20T10:00:00.000Z",
    "fecha": "2026-05-20",
    "horaInicio": "09:00",
    "horaFin": "10:00",
    "estado": "disponible"
  }
]

POST /slots

Create a new availability slot. This action is intended for barbers only.

Body parameters

profileId
string
required
Barber profile ID. The slot is created under this barber’s calendar.
fecha
string
required
Date for the slot in YYYY-MM-DD format.
horaInicio
string
required
Start time in HH:MM format (24-hour clock).
horaFin
string
Optional. The slot’s actual end time is always set to 15 minutes after horaInicio by the server regardless of this value. The appointment end time is determined later when a client selects procedures.

Response

Returns the newly created slot object with the same shape as the GET /slots response items.
curl -X POST https://edgetimer-backend.onrender.com/slots \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": "barbero_abc123",
    "fecha": "2026-05-22",
    "horaInicio": "10:00",
    "horaFin": "11:00"
  }'
Response
{
  "id": "slot_02",
  "barbero": {
    "id": "barbero_abc123",
    "nombre": "Carlos Mendoza",
    "foto": "https://storage.example.com/signed/barberos/carlos.jpg",
    "promedioCalificacion": 4.8
  },
  "inicioAt": "2026-05-22T10:00:00.000Z",
  "finAt": "2026-05-22T11:00:00.000Z",
  "fecha": "2026-05-22",
  "horaInicio": "10:00",
  "horaFin": "11:00",
  "estado": "disponible"
}

PATCH /slots/:id

Update an existing slot. Use this to change the date or times of a slot that has not yet been reserved.

Path parameters

id
string
required
Unique identifier of the slot to update.

Body parameters

profileId
string
required
Barber profile ID. Must match the owner of the slot.
fecha
string
required
New date for the slot in YYYY-MM-DD format.
horaInicio
string
required
New start time in HH:MM format (24-hour clock).
horaFin
string
Optional. The server recalculates the end time as 15 minutes after the new horaInicio regardless of this value.

Response

Returns the updated slot object.
curl -X PATCH https://edgetimer-backend.onrender.com/slots/slot_02 \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": "barbero_abc123",
    "fecha": "2026-05-22",
    "horaInicio": "11:00",
    "horaFin": "12:00"
  }'
Response
{
  "id": "slot_02",
  "barbero": {
    "id": "barbero_abc123",
    "nombre": "Carlos Mendoza",
    "foto": "https://storage.example.com/signed/barberos/carlos.jpg",
    "promedioCalificacion": 4.8
  },
  "inicioAt": "2026-05-22T11:00:00.000Z",
  "finAt": "2026-05-22T12:00:00.000Z",
  "fecha": "2026-05-22",
  "horaInicio": "11:00",
  "horaFin": "12:00",
  "estado": "disponible"
}

DELETE /slots/:id

Delete a slot. The profileId query parameter is required and must match the barber who owns the slot, preventing one barber from deleting another barber’s slots.

Path parameters

id
string
required
Unique identifier of the slot to delete.

Query parameters

profileId
string
required
Barber profile ID. Must match the owner of the slot.

Response

Returns a confirmation object for the deleted slot.
curl -X DELETE \
  "https://edgetimer-backend.onrender.com/slots/slot_02?profileId=barbero_abc123"
Response
{
  "id": "slot_02",
  "estado": "cancelado"
}

Build docs developers (and LLMs) love