Para qué sirve y para quién
Horarios dice cuándo está abierto el negocio:
- la semana habitual: por cada día, cerrado, abierto 24 horas o uno o varios tramos (turno partido, o un tramo que pasa de medianoche, como 22:00–02:00);
- los días especiales: un festivo cerrado o un día con otro horario, que puede repetirse cada año (Navidad);
- los cambios temporales: unas fechas seguidas con otro horario o cerradas (vacaciones, horario de verano, obras).
Es el horario del negocio. No es el turno de cada profesional ni sus ausencias (eso es de Personal), ni las horas que se pueden reservar (eso lo decide Citas cruzando las dos cosas).
Quién la usa:
- El propietario, el administrador y el responsable fijan la semana, añaden, corrigen y borran días especiales y cambios temporales, y cambian los ajustes.
- El empleado solo lo ve.
Citas lo lee para ofrecer horas libres y rechazar una reserva con el negocio cerrado; el asistente contesta con él «¿estáis abiertos el sábado a las seis?».
Referencia adoptada
Qué es de Horarios y qué de Personal (skill market-decision, 2026-10-14). Todos los productos de
la tabla guardan dos cosas distintas: el horario del local (lo que ve el cliente y lo que cierra el
negocio un festivo) y el turno de cada profesional (cuándo se le puede reservar). La agenda reserva
dentro del turno del profesional y, con el local cerrado (festivo, vacaciones), no ofrece nada.
| Producto | Cómo lo resuelve | Fuente |
|---|---|---|
| Fresha | Horario de apertura del local aparte de los turnos del equipo; se reserva dentro del turno; al cambiar el horario se ofrece llevarlo a los turnos | https://www.fresha.com/help-center/knowledge-base/workspace-settings/588-update-your-business-opening-hours · https://www.fresha.com/help-center/knowledge-base/calendar/252-schedule-and-update-team-shifts |
| Square Appointments | «Business hours» del local y «Staff hours» por persona, independientes; se reserva por las del profesional | https://community.squareup.com/t5/Payments-Troubleshooting/How-can-I-adjust-my-Square-Appointments-open-hours/m-p/144439 |
| Vagaro | Horario del negocio fijo en el perfil, aparte del horario de cada empleado | https://www.vagaro.com/pro/updates/business-hours |
| Google Business Profile | Horario semanal con varios tramos por día, «abierto 24 horas» y horario especial por fecha (festivos, cierres) | https://support.google.com/business/answer/6303076?hl=en |
| Odoo | Horario de trabajo de la empresa con sus festivos («Public holidays») que heredan los empleados; cada empleado, su horario | https://www.odoo.com/documentation/19.0/applications/hr/time_off/public_holidays.html |
| Business Central | Calendario base con días no laborables, también recurrentes cada año, asignado a la empresa o al almacén | https://learn.microsoft.com/bg-bg/dynamics365/business-central/across-how-to-assign-base-calendars |
| Toast | Horario del restaurante y sus servicios (desayuno, comida, cena) por días de la semana, sin huecos ni solapes | https://support.toasttab.com/article/Setup-Restaurant-Hours-and-Services |
| Shopify | No tiene horario de tienda en el TPV; el foro se queja de que la recogida en tienda ignora el cierre del fin de semana | https://community.shopify.com/t/feedback-bug-pickup-from-store-availability-does-not-account-for-store-hours-or-weekend-closures/553038 |
Gana: dos horarios en dos apps. Horarios guarda el del negocio (semana, días especiales, cambios temporales); Personal, el de cada profesional y sus ausencias. Citas reserva solo si la cita cabe entera en un tramo abierto del negocio y en la disponibilidad del profesional. Es lo que hacen todos los de salón y los ERP, y el caso de Shopify enseña lo que pasa si falta el horario del local. Por qué las demás no: que el horario del negocio sea la unión de los turnos (una opción de Vagaro) deja sin forma de cerrar un festivo; meter el turno del profesional en Horarios duplica lo que Personal ya hace.
Por eso, de lo que el encargo pedía mirar, todo lo «por persona» queda cubierto por Personal:
horario semanal de cada profesional (STAFF-F13 a F15), sus ausencias (STAFF-F17 a F20, F24) y su
disponibilidad (staff.availability.for_member, STAFF-F16). El módulo viejo de Horarios tampoco lo
tenía. Horarios no conoce a nadie del equipo y no depende de Personal.
Del producto actual se conservan (su contraste de mercado ya estaba hecho y registrado en su código):
- Google Business Profile: varios tramos por día, «abierto 24 horas» como 00:00–00:00 y horario especial por fecha.
- Square, Fresha y Google Business Profile: siete filas fijas; un día se edita, nunca se «añade».
- Odoo, Google Calendar, Microsoft Bookings, Business Central y Lightspeed Reservations: la semana por defecto, de lunes a viernes de 09:00 a 18:00 sin pausa y el fin de semana cerrado.
- Sin regla para un día, el negocio no se da por abierto (código
no_hours).
Y se decide aquí (mismo contraste):
- Un tramo pertenece al día en que abre (Google Business Profile): un 22:00–02:00 del sábado sigue abierto el domingo a la 01:00, venga de la semana, de un día especial o de un cambio temporal, aunque el domingo sea un día cerrado.
- Un día especial y un cambio temporal se corrigen (Google, Fresha, Square los editan); ya no hay que borrarlos y crearlos otra vez.
Antes de empezar
- Activa Horarios (viene con la peluquería y el restaurante). Ya tiene una semana por defecto (SCHEDULE-F12): de lunes a viernes de 09:00 a 18:00, sábado y domingo cerrados.
- La zona horaria del negocio es la del Hub (SCHEDULE-F09): con ese reloj se lee todo el horario. En la fase 1 es la de Madrid.
- En Horarios → Horario, pulsa Sí, este es mi horario si la semana por defecto es la tuya (SCHEDULE-F03), o edita los días que cambian (SCHEDULE-F02).
- En Días especiales, añade los festivos y cierres (SCHEDULE-F04) y, para varios días seguidos, un cambio temporal (SCHEDULE-F05).
- Si quieres que la semana empiece en domingo, cámbialo en Ajustes (SCHEDULE-F08).
Pantallas
Horarios se abre desde el menú Horarios y tiene tres pestañas: Horario, Días especiales y Ajustes. Lo que una persona no puede hacer no aparece, y la app lo rechaza aunque lo intente por la API o por el asistente.
Horario
Tabla de siete filas fijas, una por día de la semana, con las columnas Día, Horario y Estado; no hay botón de añadir: un día se edita. Horario dice, por ejemplo, «10:00–14:00 · 17:00–20:00», «Abierto 24 horas», «Cerrado» o «Sin definir»; Estado dice «Abierto», «Cerrado» o «—» (sin definir). Las horas salen en el reloj del idioma (24 horas en español, AM/PM en inglés). La acción de fila Editar (o tocar la fila) abre «Editar horario — {día}» con: Día, Cerrado, Abierto 24 horas, una línea por tramo (Abre, Cierra y Quitar tramo), + Añadir tramo, la pista «Jornada partida: una línea por tramo (10:00–14:00 y 17:00–20:00). Un cierre anterior a la apertura pasa de medianoche (22:00–02:00).» y Guardar día. Mientras nadie haya guardado ni confirmado la semana, encima de la tabla sale el aviso amarillo «Este es un horario por defecto que hemos puesto por ti. Comprueba que coincide con el de tu negocio: las reservas fuera de él se rechazan.» con el botón Sí, este es mi horario (el botón, solo para quien puede cambiar el horario; el empleado ve el aviso). En móvil la tabla se pinta como tarjetas.
Días especiales
Dos tablas, una debajo de otra, cada una con su título.
- Días especiales: columnas Fecha, Nombre, Estado («Cerrado» o sus horas, tramo a tramo) y Anual («Sí»/«No»); buscador «Buscar día especial…», filtros por fecha (desde–hasta), nombre, estado y anual, orden por columna y 50 por página. + abre Nuevo día especial: Fecha, Nombre («Nombre (p. ej. Navidad)»), Estado («Cerrado» o «Abierto (con horario)»; empieza en Cerrado), el mismo editor de tramos, Se repite cada año, Notas y Añadir día. Acciones de fila: Editar (o tocar la fila; el mismo formulario con Guardar) y Eliminar.
- Cambios temporales: columnas Desde, Hasta, Motivo y Estado; buscador «Buscar cambio temporal…», filtros por fechas, motivo y estado, y los mismos controles. + abre Nuevo cambio temporal: Desde, Hasta, Motivo, Estado, el editor de tramos y Añadir cambio temporal. Acciones de fila: Editar y Eliminar.
- Eliminar pide confirmar: «Eliminar» · «Se eliminará «{nombre}». No se puede deshacer.» con Cancelar y Eliminar.
Ajustes
Arriba, solo lectura, Zona horaria del negocio con su nombre (por ejemplo, Europe/Madrid) y la nota «Es la del Hub y el único reloj con el que se lee el horario.». Debajo, Semana empieza (Lunes o Domingo) y Guardar, que confirma con «Guardado». Quien no puede cambiar los ajustes ve el valor sin poder cambiarlo y sin Guardar.
Estados de cada pantalla
| Estado | Qué ve la persona |
|---|---|
| Cargando | «Cargando…» mientras llega el primer resultado; la semana no se pinta hasta tener también los ajustes (si no, se ordenaría mal). |
| Vacío | «Sin días especiales.» o «Sin cambios temporales.»; con búsqueda o filtro, «Sin resultados». La semana siempre tiene siete filas. |
| Error | El aviso de la tabla con «Reintentar». Un rechazo de un formulario sale dentro del formulario, sin perder lo tecleado; el de una acción de fila (eliminar, confirmar la semana, guardar los ajustes), encima de la tabla o del formulario. Con los ajustes sin leer no se enseña Semana empieza, para no guardar un valor que no se ha leído. |
| Reconectando | Lo pintado se queda; una franja avisa «Reconectando…». |
| App inactiva | «Esta app no está activa en este negocio». |
| Sin permiso | No aparece lo que no puede hacer; si llega por otra puerta, «No tienes permiso». |
Flujos
| ID | Flujo | Estado |
|---|---|---|
| SCHEDULE-F01 | Ver el horario de la semana | hecho |
| SCHEDULE-F02 | Fijar el horario de un día | hecho |
| SCHEDULE-F03 | Confirmar la semana por defecto | hecho |
| SCHEDULE-F04 | Añadir un día especial | hecho |
| SCHEDULE-F05 | Añadir un cambio temporal | hecho |
| SCHEDULE-F06 | Borrar un día especial o un cambio temporal | hecho |
| SCHEDULE-F07 | Cargar varios días especiales de golpe | hecho (asistente y API; sin pantalla) |
| SCHEDULE-F08 | Elegir con qué día empieza la semana | hecho |
| SCHEDULE-F09 | Ver la zona horaria con la que se lee el horario | hecho |
| SCHEDULE-F10 | Preguntar si el negocio está abierto en un momento | hecho (asistente y API; sin pantalla) |
| SCHEDULE-F11 | Dar el horario de unos días a Citas | hecho (sin pantalla) |
| SCHEDULE-F12 | Partir de una semana por defecto al activar | hecho |
| SCHEDULE-F13 | Corregir un día especial o un cambio temporal | hecho |
SCHEDULE-F01 Ver el horario de la semana
Estado: hecho (servidor y pantalla) Actor: todos Pantalla: Horario Pasos: 1. Abre Horarios; la pestaña Horario muestra los siete días. 2. Lee de cada día sus tramos, «Abierto 24 horas», «Cerrado» o «Sin definir». 3. Si la semana empieza en domingo (SCHEDULE-F08), la tabla abre por el domingo; solo cambia el orden. Entra: la semana del negocio y el ajuste «Semana empieza». Sale: nada; solo lectura. Si falla: la tabla dice «No se ha podido cargar el horario.» con Reintentar; hasta tener la semana y los ajustes no se pinta ni una fila, para no enseñar siete «Sin definir» que parecerían un negocio sin horario. Implicados: ninguno
SCHEDULE-F02 Fijar el horario de un día
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Horario
Pasos:
1. En Horario, pulsa Editar en el día (o toca la fila): se abre «Editar horario — {día}». El
selector Día cambia de día sin cerrar.
2. Elige una de tres cosas: Cerrado; Abierto 24 horas; o una línea por tramo con su apertura y
su cierre (10:00–14:00 y 17:00–20:00 para un turno partido; 22:00–02:00 pasa de medianoche).
3. Pulsa Guardar día: el formulario se cierra y la fila enseña el resumen nuevo.
Entra: el día (lunes a domingo; el asistente también entiende «el lunes») y sus tramos, hasta 12. El
orden da igual: se guardan ordenados. 00:00–00:00 es «abierto 24 horas»; cualquier otro tramo con la
misma apertura y cierre no vale.
Sale: los tramos del día, que sustituyen a los anteriores (no se acumulan), y el aviso
schedule.week.updated. La semana queda confirmada (SCHEDULE-F03): quien guarda un día ya la ha visto.
Si falla: debajo de los tramos y sin guardar nada: «Un día abierto necesita al menos un tramo horario.»,
«Un tramo no puede empezar y acabar a la misma hora; 00:00–00:00 es abierto 24 horas.», «Dos tramos se
solapan (o uno cruza la medianoche sobre otro); ajusta las horas para que no se pisen.», «Como mucho 12
tramos por día.». Una línea a medias no se envía: «Indica la hora de apertura y cierre, o márcalo como
cerrado».
Implicados: Citas (lee el horario en la reserva siguiente)
SCHEDULE-F03 Confirmar la semana por defecto
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Horario
Pasos:
1. Con el aviso amarillo «Este es un horario por defecto…» a la vista, comprueba que los días son los de
tu negocio.
2. Pulsa Sí, este es mi horario; el botón se desactiva mientras trabaja.
3. El aviso desaparece.
Entra: la semana que ya está guardada; no se manda ninguna hora, así que nadie confirma un horario que no
se le ha enseñado.
Sale: la semana marcada como confirmada, sin cambiar ni una hora, y un aviso schedule.week.updated.
Confirmar dos veces no cambia nada ni avisa.
Si falla: arriba de la tabla: «No hay horario semanal que confirmar.» si no hay ningún día guardado (no
se llega desde la pantalla: el aviso solo sale cuando hay semana).
Implicados: ninguno
SCHEDULE-F04 Añadir un día especial
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Días especiales
Pasos:
1. En Días especiales, pulsa + (Nuevo día especial).
2. Escribe la Fecha y el Nombre (los dos obligatorios).
3. Deja Cerrado (lo que viene) o elige «Abierto (con horario)» y escribe uno o más tramos, igual que
en SCHEDULE-F02.
4. Marca Se repite cada año si cae el mismo día y mes todos los años (Navidad); si quieres, Notas.
5. Pulsa Añadir día: el formulario se cierra y el día aparece en la lista.
Entra: fecha (real: el 31 de febrero no vale), nombre (hasta 200), cerrado o tramos, anual y notas (hasta
1000).
Sale: el día especial (schedule.special_day.created). Gana a todo lo demás ese día (SCHEDULE-F10,
F11). Un día anual vale todos los años, también los anteriores a su fecha; el del 29 de febrero solo
existe los años bisiestos.
Si falla: «Ya existe un día especial en esa fecha.» bajo la fecha (409 schedule.special_day_exists,
también si dos personas la crean a la vez); los rechazos de tramos de SCHEDULE-F02; un nombre vacío o de
solo espacios, bajo el nombre. Una fecha que tuvo un día especial borrado se puede volver a usar.
Implicados: Citas
SCHEDULE-F05 Añadir un cambio temporal
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Días especiales
Pasos:
1. En la tabla «Cambios temporales», pulsa + (Nuevo cambio temporal).
2. Escribe Desde, Hasta y Motivo (los tres obligatorios).
3. Deja Cerrado (vacaciones del negocio) o elige «Abierto (con horario)» y escribe los tramos que
valen esas fechas (horario de verano).
4. Pulsa Añadir cambio temporal.
Entra: las dos fechas (ambas incluidas), el motivo (hasta 200) y cerrado o tramos: el cambio vale todos
los días del rango con las mismas horas.
Sale: el cambio temporal (schedule.override.created). Gana a la semana, pero pierde contra un día
especial de esa fecha (no se avisa de que lo pisa: la precedencia lo resuelve).
Si falla: «La fecha de fin no puede ser anterior a la de inicio.» bajo Hasta; «Esas fechas se solapan con
el cambio temporal «{motivo}» ({desde}–{hasta}).» bajo Desde (409 schedule.override_overlaps): dos
cambios no cubren el mismo día, para que la respuesta no dependa de cuál se lea primero; los rechazos de
tramos de SCHEDULE-F02.
Implicados: Citas
SCHEDULE-F06 Borrar un día especial o un cambio temporal
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Días especiales
Pasos:
1. En la fila, pulsa Eliminar.
2. En «Se eliminará «{nombre}». No se puede deshacer.» pulsa Eliminar (o Cancelar).
3. La fila desaparece; vuelve a regir la semana (o el cambio temporal) en esas fechas.
Entra: el día especial o el cambio temporal, por id o por su nombre o motivo (el asistente: «borra el
festivo de Navidad»).
Sale: la fila y sus tramos borrados en la misma operación (schedule.special_day.deleted,
schedule.override.deleted). Su fecha queda libre.
Si falla: «Ese día especial no existe en este negocio.» o «Ese cambio temporal no existe en este
negocio.» (404), sin avisar de nada; un nombre que vale para varios: «Hay varios con ese nombre: elige
uno.» con los candidatos.
Implicados: Citas
SCHEDULE-F07 Cargar varios días especiales de golpe
Estado: hecho (asistente y API; sin pantalla)
Actor: asistente, API
Pantalla: asistente
Pasos:
1. Pide al asistente que cargue una lista de festivos con su fecha y su nombre (hasta 366).
2. Cada uno es cerrado salvo que diga is_closed: false con sus tramos; puede marcarse anual.
3. La respuesta dice qué días se crearon y cuáles no, con su motivo.
Entra: la lista. Cada día lleva fecha y nombre y, si abre, sus tramos con las reglas de SCHEDULE-F02.
Sale: un día especial y un aviso schedule.special_day.created por cada día válido (ninguno si no entra
ninguno).
Si falla: un día con la fecha ya ocupada o repetida dentro de la lista (already_exists), o abierto sin
tramos o con tramos que no valen (invalid_hours), se salta con su motivo y los demás entran. Una lista
vacía, de más de 366 días, o con un día sin fecha real o sin nombre, se rechaza entera (422) antes de
crear nada.
Implicados: ninguno
SCHEDULE-F08 Elegir con qué día empieza la semana
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Ajustes
Pasos:
1. En Ajustes, elige en Semana empieza Lunes o Domingo.
2. Pulsa Guardar.
3. La tabla de Horario abre por el día elegido.
Entra: el día de inicio (la pantalla ofrece lunes o domingo; el servidor acepta de 1, lunes, a 7,
domingo, y la tabla gira con cualquiera).
Sale: el ajuste (schedule.settings.updated, solo si cambia). Solo mueve el orden de las filas: no
cambia ninguna hora ni lo que contesta SCHEDULE-F10.
Si falla: un valor fuera de 1–7 sale debajo del campo y no se guarda nada.
Implicados: ninguno
SCHEDULE-F09 Ver la zona horaria con la que se lee el horario
Estado: hecho (servidor y pantalla) Actor: todos Pantalla: Ajustes Pasos: 1. Abre Ajustes; arriba aparece «Zona horaria del negocio» con su nombre (Europe/Madrid). Entra: la zona del Hub. Sale: nada; solo lectura. Horarios no guarda zona propia: las horas son de pared (las 10:00 son las 10:00 antes y después del cambio de hora, sin tocar nada). Si falla: nada que fallar; la zona siempre la da el servidor. Implicados: ninguno
SCHEDULE-F10 Preguntar si el negocio está abierto en un momento
Estado: hecho (asistente y API; sin pantalla)
Actor: asistente, API (con la llave del negocio)
Pantalla: ninguna
Pasos:
1. Se pregunta por un momento: con zona (2026-08-18T08:00:00Z) se pasa al reloj del negocio; sin zona
(2026-08-18T10:00, «mañana a las diez» que el asistente escribe así) se lee tal cual; sin nada,
contesta para ahora.
2. Contesta: abierto o cerrado, la regla que decidió, la zona usada, el día y la hora locales y un código
estable del motivo.
Entra: solo el momento; el horario lo lee el servidor de este negocio, nunca lo manda quien pregunta.
Sale: nada guardado. is_open, code (exception_closed, exception_hours, open_interval,
closed_today, overnight_open, outside_hours o no_hours), source (special_day, override,
weekly o none), rule_id, los tramos que lo explican, timezone, today, current_time y, si lo
hay, reason (el nombre del día especial o el motivo del cambio que ganó). Orden: día especial de la
fecha exacta, día especial anual del mismo día y mes, cambio temporal que cubre la fecha, semana, nada.
Se está abierto desde la apertura y se deja de estar justo al cierre (a las 18:00 en punto ya está
cerrado). La madrugada de un tramo que pasó de medianoche la víspera cuenta como abierta
(overnight_open), venga de la regla que venga. Un día sin regla contesta no_hours: no está abierto.
Si falla: un momento que no es una fecha y hora reales: «Esa fecha y hora no son válidas.» (422 bajo
when).
Implicados: ninguno
SCHEDULE-F11 Dar el horario de unos días a Citas
Estado: hecho (sin pantalla)
Actor: sistema (Citas), asistente
Pantalla: ninguna
Pasos:
1. Citas pide el horario de un rango de días (hasta 366; un solo día vale).
2. Horarios elige para cada día la regla que manda (la misma precedencia que SCHEDULE-F10) y lo
contesta.
3. Citas reserva solo si la cita cabe entera en un tramo abierto (el de ese día o la cola de
medianoche de la víspera) y en la disponibilidad del profesional que da Personal
(staff.availability.for_member, STAFF-F16).
Entra: las fechas, en días del negocio.
Sale: solo lectura (contrato en «Para quien lo mantiene»). El final de la cita puede coincidir con el
cierre.
Si falla: un rango al revés o de más de 366 días se rechaza en el campo.
Implicados: Citas
SCHEDULE-F12 Partir de una semana por defecto al activar
Estado: hecho (sin pantalla)
Actor: sistema
Pantalla: ninguna
Pasos:
1. Al crear las tablas de Horarios en un negocio, se planta de lunes a viernes de 09:00 a 18:00 y sábado
y domingo cerrados.
2. La semana sale como sin confirmar: el aviso amarillo de Horario (SCHEDULE-F03).
Entra: nada de la persona; la semana es la del mercado, no la del negocio.
Sale: siete días. Solo una vez: una actualización nunca devuelve días que el negocio cambió.
Si falla: no hay pantalla; si no hubiera semana, Citas vería no_hours.
Implicados: ninguno
SCHEDULE-F13 Corregir un día especial o un cambio temporal
Estado: hecho (servidor y pantalla)
Actor: propietario, administrador, responsable, asistente
Pantalla: Días especiales
Pasos:
1. Pulsa la fila (o Editar): se abre el formulario con lo guardado.
2. Cambia la fecha, el nombre o el motivo, el estado, los tramos, «Se repite cada año» o las notas.
3. Pulsa Guardar.
Entra: el día especial o el cambio temporal (por id o por nombre) y lo enviado; lo que no se envía se
queda como estaba, y si se envían los tramos se sustituyen todos.
Sale: el día o el cambio corregido (schedule.special_day.updated, schedule.override.updated).
Guardar sin cambiar nada no avisa.
Si falla: los mismos rechazos que al crearlo (la fecha de otro día especial, el rango de otro cambio).
Implicados: Citas
Servicios: lo que entra y lo que sale
Todo se puede pedir por las pantallas, el asistente (por voz o por texto, con la sesión de quien habla) y
la API, con las mismas reglas y los mismos permisos. Un día de la semana se nombra por su número (0 =
lunes) o por su nombre («lunes», «monday»); un día especial, por su id o su nombre; un cambio temporal,
por su id o su motivo. Si un nombre vale para varios, se dice cuáles y se pide que elija
(schedule.ambiguous_reference).
Lo que ofrece: consultas (leen, no cambian nada; todas se pueden seguir en vivo)
| Qué da | Quién puede | Flujos | Servicio |
|---|---|---|---|
| La semana: los siete días en el orden de «Semana empieza», cada uno cerrado, sin definir o con sus tramos, y si está confirmada | ver | F01, F03 | schedule.week.get |
| Los días especiales con sus tramos, con búsqueda, filtros, orden y páginas (hasta 100) | ver | F04, F06, F13 | schedule.special_day.list |
| Los cambios temporales con sus tramos, con búsqueda, filtros, orden y páginas (hasta 100) | ver | F05, F06, F13 | schedule.override.list |
| Los ajustes y la zona horaria del negocio | ver | F08, F09 | schedule.settings.get |
| ¿Está abierto en un momento? | ver | F10 | schedule.business.is_open |
| El horario de cada día de un rango | ver | F11 | schedule.hours.for_range |
Lo que ofrece: acciones (cambian datos)
| Qué hace | Quién puede | Flujos | Servicio |
|---|---|---|---|
| Fija los tramos de un día de la semana | cambiar el horario | F02 | schedule.week.set_day |
| Confirma la semana guardada | cambiar el horario | F03 | schedule.week.confirm |
| Crea un día especial | añadir | F04 | schedule.special_day.create |
| Crea hasta 366 días especiales de golpe | añadir | F07 | schedule.special_day.bulk_create |
| Corrige un día especial | cambiar el horario | F13 | schedule.special_day.update |
| Borra un día especial | borrar | F06 | schedule.special_day.delete |
| Crea un cambio temporal | añadir | F05 | schedule.override.create |
| Corrige un cambio temporal | cambiar el horario | F13 | schedule.override.update |
| Borra un cambio temporal | borrar | F06 | schedule.override.delete |
| Guarda los ajustes (solo lo enviado) | ajustes | F08 | schedule.settings.update |
Lo que avisa
| Aviso | Cuándo | Qué lleva | Servicio |
|---|---|---|---|
| Semana cambiada | Guardar un día; confirmar la semana | El día (weekday) o nada al confirmar |
schedule.week.updated |
| Día especial nuevo | Crearlo (uno por día en la carga de golpe) | Cuál (id) y su fecha |
schedule.special_day.created |
| Día especial corregido | Corregirlo con algún cambio | Cuál (id) y su fecha |
schedule.special_day.updated |
| Día especial borrado | Borrarlo | Cuál (id) |
schedule.special_day.deleted |
| Cambio temporal nuevo | Crearlo | Cuál (id) y sus fechas |
schedule.override.created |
| Cambio temporal corregido | Corregirlo con algún cambio | Cuál (id) y sus fechas |
schedule.override.updated |
| Cambio temporal borrado | Borrarlo | Cuál (id) |
schedule.override.deleted |
| Ajustes cambiados | Guardarlos con algún cambio | Nada | schedule.settings.updated |
Los avisos no llevan el nombre de un día especial ni el motivo de un cambio: son texto libre donde el negocio puede escribir nombres de personas.
A qué reacciona y lo que necesita de otras apps
Nada: Horarios no depende de ninguna app (requires = []) ni escucha avisos. De la plataforma usa la
zona horaria del negocio.
Quién puede qué
| Permiso | Propietario | Administrador | Responsable | Empleado | Servicio |
|---|---|---|---|---|---|
| Ver la semana, los días especiales, los cambios, los ajustes y si está abierto | sí | sí | sí | sí | schedule.view |
| Añadir días especiales y cambios temporales | sí | sí | sí | no | schedule.add |
| Fijar la semana, confirmarla y corregir días especiales y cambios | sí | sí | sí | no | schedule.change |
| Borrar días especiales y cambios temporales | sí | sí | sí | no | schedule.delete |
| Cambiar los ajustes | sí | sí | sí | no | schedule.manage_settings |