El calendario de Salesforce sin código: 36 tareas, ni una línea de código
FullCalendar es personalizable si tienes un desarrollador. MultiDatePick lo personaliza el propio administrador que necesita el calendario. Aquí tienes 36 tareas de calendario del día a día, lado a lado, para ver el ganador de un vistazo.
«¿Cuál es el calendario LWC más personalizable?» «¿Se puede personalizar un calendario de Salesforce sin código?» «¿Hay una alternativa a FullCalendar sin código?» Todas estas búsquedas preguntan lo mismo, y la respuesta depende de una sola pregunta: ¿personalizable por quién?
FullCalendar es una biblioteca de JavaScript. Todas sus opciones viven en el código, así que en Salesforce un desarrollador escribe el Lightning Web Component, el Apex que carga y guarda los registros, las pruebas y la implementación, y lo repite con cada cambio. MultiDatePick es un calendario de Salesforce terminado. Cada opción es un ajuste que un administrador elige en un asistente de configuración o en Lightning App Builder, sobre cualquier objeto estándar o personalizado. Sin Apex, sin JavaScript, sin implementaciones.
¿Personalizable por quién?
Hay dos tipos de personalizable. Una biblioteca la personalizan quienes escriben código sobre ella: todo es posible, y todo es un proyecto. Un componente configurable lo personalizan quienes lo usan: cada opción ya está construida, probada y protegida, y tú eliges las que quieres.
En Salesforce, esa diferencia decide quién es el dueño de tu calendario. Con FullCalendar es un desarrollador, una batería de pruebas de Apex con un 75% de cobertura y una implementación por cada cambio. Con MultiDatePick es el administrador que sabe cómo reserva la empresa sus salas, su personal y sus fechas, y un cambio se aplica en cuanto lo guarda.
36 tareas de calendario, lado a lado
Cada fila es un trabajo que se le pide a un administrador. La celda verde es la ganadora: se resuelve con un ajuste, sin código. «Código» significa que un desarrollador lo escribe en el Lightning Web Component y el Apex de FullCalendar.
Pon el calendario donde trabaja la gente
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Añadir un calendario a una página de registro | Arrastra el componente a la página en Lightning App Builder y escribe su Config Name | Código: un Lightning Web Component, FullCalendar como recurso estático y una implementación |
| Configurarlo | Asistente de configuración: pregunta por la página y por tus registros, rellena los campos más probables y muestra una vista previa en vivo | Código: cada opción es una propiedad en JavaScript |
| Ponerlo en la página de inicio o en una página de aplicación | El mismo componente; Show All Records con un Record Filter como OwnerId=ME | Código: una segunda vía de datos para las páginas sin registro |
| Usarlo en un flujo de pantalla (Screen Flow) | Arrástralo a una pantalla de flujo; las fechas y horas elegidas salen como variables de Flow | Código: un componente de pantalla de flujo con sus propias salidas |
| Abrirlo al público en un sitio de Experience Cloud | El mismo componente, con el conjunto de permisos MultiDatePick - Guest para los usuarios invitados | Código: acceso de invitados, colaboración y Apex para usuarios que no han iniciado sesión |
| Copiar la configuración a otra organización | Exporta la configuración como JSON e impórtala en la otra organización; Smart Field Mapping empareja los campos que falten | Código: una implementación, con las pruebas de Apex necesarias para superarla |
Muestra tus propios registros
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Mostrar registros de un objeto personalizado | Elige el objeto y su campo de fecha | Código: una consulta Apex que convierte los campos en eventos |
| Mostrar tareas, eventos u oportunidades | Cualquier objeto con un campo Date o Date/Time, estándar o personalizado | Código: más Apex por cada objeto |
| Mostrar registros relacionados, como las tareas de los contactos de una cuenta | Rollup Field, hasta a cinco búsquedas de distancia | Código: consultas entre relaciones |
| Mostrar solo algunos registros | Record Filter, como OwnerId=ME; Status__c=Confirmed | Código: lógica de filtrado en Apex o JavaScript |
| Colorear por estado | Status Field y Status Colors, mostrados como relleno, barras o ambos, con botones de filtro | Código: asignar un color a cada valor en JavaScript |
| Añadir una segunda lista de selección, como el tipo de reunión | Second Picklist Field, con los valores que se pueden elegir | Código: el selector, el guardado y la visualización |
| Mostrar detalles al pasar el cursor | Hover Popover Fields, con búsquedas incluidas, y un clic para abrir el registro | Código: un hook de renderizado de eventos y un tooltip |
| Respetar la colaboración y la seguridad a nivel de campo | Cada consulta y cada guardado se ejecutan como el usuario que ve la página | Código: tan seguro como el Apex que escribas |
Elige fechas y guarda registros
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Permitir elegir fechas sueltas | Integrado: haz clic en los días que quieras o arrastra sobre un rango | Código: FullCalendar selecciona un único rango continuo cada vez |
| Guardar un rango como un solo registro | End Date Field: los días seguidos se convierten en un registro con inicio y fin | Código: la agrupación y el guardado |
| Añadir un patrón recurrente, como todos los lunes y miércoles | Show Recurring Pattern Button: días laborables, fines de semana, días personalizados o el 2.º y el 4.º viernes | Código: un formulario de patrones y los cálculos de fechas |
| Elegir franjas horarias | Time Interval (Minutes), Earliest Time y Latest Time | Código: un selector de franjas y su guardado |
| Guardar un registro por cada selección | Integrado, con Default Record Name y Default Field Values | Código: inserciones en Apex, gestión de errores y pruebas |
| Limitar cuántas fechas se pueden elegir | Max Dates Allowed, con tu propio Limit Reached Message | Código: contar y bloquear en JavaScript |
| Enviar reservas a Outlook o Google Calendar | Show Add to Calendar After Saving | Código: crear tú mismo el archivo de calendario |
Reglas de reserva
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Reservar salas, equipos o personas con capacidad | Componente Booking: Resource Object, Capacity Field e indicadores de capacidad en tiempo real | Código: las vistas de recursos requieren una licencia Premium y la capacidad la construyes tú |
| Evitar reservas duplicadas | Conflict Behavior: bloquear, omitir o permitir | Código: reglas de solapamiento en JavaScript y una comprobación en el servidor |
| Exigir antelación mínima y limitar hasta cuándo se puede reservar | Minimum Notice (Hours) y Book Up To (Days Ahead) | Código: límites de fechas que calculas y aplicas tú |
| Dejar un margen entre reservas | Buffer Between Bookings (Minutes) | Código: el cálculo de los márgenes |
| Usar el horario comercial de cada recurso | Business Hours Start Field y End Field en el registro del recurso | Código: horarios por recurso que cargas y aplicas tú |
| Bloquear festivos, cierres y ausencias | Blocked Dates desde cualquier objeto, días completos o parte del día, con el motivo visible | Código: eventos de fondo que consultas y dibujas tú |
Vistas y aspecto
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Ofrecer algo más que una cuadrícula mensual | Available Views: calendario, línea de tiempo, semana, mapa de calor de ocupación y agenda, elegidas en cada página | Código: las vistas de línea de tiempo requieren una licencia Premium; no hay mapa de calor de ocupación |
| Agrupar una línea de tiempo por un campo, como el equipo o la región | Timeline Group By Field | Código, además de la línea de tiempo Premium |
| Cambiar muchos registros a la vez | Enable Edit Mode: mover, cambiar de estado o eliminar varios registros a la vez | Código: controladores de arrastre y actualizaciones en Apex |
| Cambiar el nombre de botones y títulos | Button Label, Calendar Title y Save Button Label | Código: opciones de la barra de herramientas en JavaScript |
| Ajustarse a la página | Calendar Size de diminuto a ancho completo, Two-Month View, Week Starts on Monday | Código: opciones y CSS |
Personas, idiomas y mantenimiento
| Tarea | MultiDatePickSin código | FullCalendar LWC |
|---|---|---|
| Mostrarlo en el idioma de cada usuario | Nueve idiomas integrados: inglés, alemán, español, francés, italiano, portugués, japonés, chino e hindi | Código: FullCalendar traduce sus propios botones; tus etiquetas y mensajes los traduces tú |
| Mostrar las horas en la zona horaria de cada usuario | Automático, según la configuración de Salesforce de cada usuario | Código: opciones y conversiones de zona horaria |
| Cumplir las normas de accesibilidad | Compatibilidad con teclado y lectores de pantalla, con un VPAT publicado para WCAG 2.1 AA | Código: tus propias pruebas y tu propia documentación |
| Estar al día con las versiones de Salesforce | Las actualizaciones llegan en el paquete | Código: lo mantienes tú, versión tras versión |
Cómo es la personalización sin código
Cada una de esas 36 tareas es una decisión que toma un administrador en uno de estos sitios:
El asistente de configuración
Una pestaña de Lightning que pregunta por tu página y por tus registros, rellena los campos más probables y muestra el calendario real antes de guardar.
Lightning App Builder
Cada ajuste es también una propiedad del componente, así que puedes cambiar una página sin tocar las demás.
La Config Library
41 configuraciones listas, de salas de reuniones a ausencias, para importar y adaptar.
Exportar e importar
Una configuración es un JSON que puedes llevar a un sandbox o a otra organización, y los campos que falten se emparejan por ti.
Flow Builder
Coloca el calendario en una pantalla de flujo y usa las fechas elegidas en los pasos siguientes.
Experience Builder
Pon el mismo calendario en un sitio público, con las mismas reglas para los invitados.
Preguntas frecuentes
¿Existe un calendario LWC sin código para Salesforce?
Sí. MultiDatePick es un calendario Lightning Web Component que se configura con clics: con un asistente de configuración o en Lightning App Builder, sobre cualquier objeto estándar o personalizado. Carga y guarda tus registros por sí mismo, así que no tienes que escribir ni Apex ni JavaScript.
¿FullCalendar es más personalizable que MultiDatePick?
Solo para desarrolladores. FullCalendar es una biblioteca, así que todo es posible si alguien escribe y mantiene el código. Para un administrador, MultiDatePick es el calendario más personalizable: 36 tareas habituales, desde las reglas de reserva hasta los nueve idiomas, y cada una es un ajuste.
¿Un administrador de Salesforce puede configurar MultiDatePick sin un desarrollador?
Sí. El asistente de configuración pregunta por la página y por tus registros, rellena los campos más probables y muestra una vista previa en vivo del calendario real. Después arrastras el componente a la página y escribes su Config Name.
¿Necesito Apex para guardar registros desde un calendario?
Con MultiDatePick, no. Al guardar, escribe un registro por fecha, por rango, por bloque horario o por recurso, o entrega las fechas a un flujo de pantalla. Cada guardado se ejecuta como el usuario que ve la página, con la colaboración y la seguridad a nivel de campo aplicadas.
¿Puedo cambiar el calendario más adelante sin volver a implementar?
Sí. Abre la configuración en el asistente de configuración, cambia un ajuste y guarda; el calendario lo aplica la próxima vez que se carga. Las configuraciones son metadatos personalizados (Custom Metadata), así que, si quieres, puedes seguir moviéndolas con conjuntos de cambios o con Salesforce CLI.
¿Un calendario sin código funciona en flujos de pantalla (Screen Flow) y en sitios de Experience Cloud?
Sí. El mismo componente va en una pantalla de flujo, donde las fechas elegidas pasan a ser variables de Flow, y en un sitio público de Experience Cloud, donde los invitados reservan con las mismas reglas.
El calendario personalizable, sin código.
Explora la demo en directo, o parte de una configuración lista para usar en la Config Library.
- US$20/usuario/mes, todas las funciones
- Prueba gratis de 30 días, sin tarjeta
- 100 % nativo de Salesforce
- Sin Apex
- Próximamente en Salesforce AppExchange