---
name: vita-client-schedule-classes
description: "Agenda, horarios y clases: Abre horas, crea clases o eventos y corrige disponibilidad futura con alcance visible. Rama pública para profesionales, servicios, sedes, horarios puntuales, patrones recurrentes y clases o eventos con cupos. Trabaja en la hora local de la sede, separa el patrón de las horas realmente reservables, protege las reservas existentes y verifica los cupos creados."
---

# Agenda, horarios y clases

Usa esta rama para profesionales, servicios, sedes, horas puntuales, disponibilidad recurrente, clases grupales y eventos. Habla en la hora local de la sede y oculta identificadores o parámetros técnicos en tus respuestas.

[Volver a la guía raíz](https://skills.vita.lat/s/vita-client-assistant)

## Resolver el alcance

Antes de escribir, identifica y vuelve a mostrar en palabras simples:

- institución y sede;
- profesional;
- servicio o clase;
- días, fecha inicial y fecha final;
- hora de inicio, hora de término y duración;
- cupos, descansos y lista de espera;
- si es un cambio puntual, un horario recurrente o un evento.

Usa `get_current_context`, `admin_list_locations`, `admin_list_services`, el perfil del profesional, `admin_list_doctor_hours` y `timezone_tool`. No adivines una sede o un servicio por un nombre parecido.

## Profesionales, servicios y sedes

Lee el registro actual antes de crear o editar. Si ya existe inactivo, prefiere corregirlo o reactivarlo antes que duplicarlo. Para un profesional, trata sus datos, sus servicios y su horario como cambios separados. Muestra el antes y después y actúa dentro de la autorización vigente; confirma únicamente un alcance nuevo.

## Abrir horas puntuales

Usa `admin_create_batch_doctor_hours` para crear horas concretas dentro de un rango. Esto crea horas reservables; no crea una definición recurrente para el futuro.

Antes de llamar la herramienta, resume profesional, sede, servicio, fechas, días, horario, duración, descansos, cupos y lista de espera. Espera un sí explícito. Después lista el rango creado y compara la cantidad y las horas reales con lo aprobado.

## Crear o cambiar disponibilidad recurrente

Una definición recurrente y las horas que la gente puede reservar son dos cosas distintas:

1. `admin_create_doctor_hour_pattern` guarda una definición nueva. `admin_update_doctor_hour_pattern` edita una existente. Ninguna de esas acciones abre ni corrige por sí sola las horas reservables.
2. Lista las definiciones actuales y las reservas afectadas. Resuelve fecha inicial/final, días, reloj local, duración, cupos, descansos, sede, servicio y lista de espera. Mantén las asociaciones y horarios no incluidos en el pedido.
3. Para varios bloques del mismo profesional, usa `admin_run_doctor_hour_patterns_batch` con **todas las definiciones hermanas que deben conservarse en ese rango**, incluidas las que no editaste. Una sincronización aislada puede tratar los bloques hermanos como horas sobrantes. Revisa primero la vista previa disponible y su alcance.
4. La sincronización conserva las horas reservadas; no significa que toda reserva existente adopte la nueva duración o capacidad. Revisa cualquier conflicto o sobrecupo informado.
5. Vuelve a listar las horas reales, agrupa por inicio y cuenta IDs únicos: ocho plazas simultáneas deben resultar en ocho horas por bloque. Divide el rango si la herramienta trunca resultados.

Envía las horas semanales en reloj local, no convertidas a UTC. Relee antes de repetir una llamada que haya vencido. No dupliques una definición para simular una edición.

Que una clase tenga horas y un plan no garantiza que aparezca en Agendar. Para tarjetas, filtros, pruebas gratis, enlaces `/f/` o la app, continúa en [Flujos de reserva web y app](https://skills.vita.lat/s/vita-client-booking-flows).

## Crear una clase o evento con cupos

Usa `admin_create_event_doctor_hours` cuando varios cupos comparten nombre, descripción, imagen y bloque horario.

- Un `cupo` crea una plaza reservable concurrente. Diez cupos de 10:00 a 11:00 son diez plazas a esa hora.
- Cada sede se crea por separado porque define dirección y zona horaria.
- Resuelve al menos un servicio real. Si hay imagen, súbela primero; no inventes una URL.
- Antes de crear, muestra cada bloque con sus cupos y el total por sede. Espera confirmación.
- Después, exige que cada bloque reporte tantos cupos creados como fueron aprobados y revisa la agenda o la página pública de reserva.

## Retirar horas futuras

Usa `admin_delete_doctor_hours` primero con vista previa. Limita por profesional, sede, servicio, días, horario y rango. Muestra cuántas horas vacías coinciden y deja claro que las reservas existentes se conservarán.

Solo después de la confirmación ejecuta el retiro con el conteo exacto devuelto por la vista previa. Si el conteo cambió, detente y vuelve a mostrar el alcance; no fuerces la eliminación.

## Verificar y responder

No digas “listo” por una respuesta de creación. Vuelve a listar el rango, revisa fechas y horas locales, comprueba que no aparecieron bloques fuera del alcance y, para clases públicas, abre el flujo que verá la gente. Entrega el resultado sin IDs ni JSON.
