O calendário Salesforce sem código: 36 tarefas, nenhuma linha de código
O FullCalendar é personalizável se você tem um desenvolvedor. O MultiDatePick é personalizável pelo próprio administrador que precisa do calendário. Aqui estão 36 tarefas do dia a dia de um calendário, lado a lado, para você ver o vencedor à primeira vista.
"Qual é o calendário LWC mais personalizável?" "Dá para personalizar um calendário Salesforce sem código?" "Existe uma alternativa sem código ao FullCalendar?" Todas essas buscas perguntam a mesma coisa, e a resposta depende de uma só pergunta: personalizável por quem?
O FullCalendar é uma biblioteca JavaScript. Todas as opções ficam no código, então no Salesforce um desenvolvedor escreve o Lightning Web Component, o Apex que carrega e salva os registros, os testes e a implantação, e repete tudo a cada mudança. O MultiDatePick é um calendário Salesforce pronto. Cada opção é uma configuração que o administrador escolhe no Assistente de Configuração ou no Lightning App Builder, em qualquer objeto padrão ou personalizado. Sem Apex, sem JavaScript, sem implantação.
Personalizável por quem?
Existem dois tipos de personalizável. Uma biblioteca é personalizável por quem escreve código em cima dela: tudo é possível, e tudo vira um projeto. Um componente configurável é personalizável por quem o usa: cada opção já vem construída, testada e protegida, e você escolhe as que quer.
No Salesforce, essa diferença decide quem é o dono do seu calendário. Com o FullCalendar, é um desenvolvedor, uma suíte de testes Apex com 75% de cobertura e uma implantação a cada mudança. Com o MultiDatePick, é o administrador que sabe como a empresa reserva salas, pessoas e datas, e a mudança vale assim que ele salva.
36 tarefas de calendário, lado a lado
Cada linha é uma tarefa que chega ao administrador. A célula verde é a vencedora: feita com uma configuração, sem código. "Código" significa que um desenvolvedor escreve isso no Lightning Web Component e no Apex do FullCalendar.
Coloque o calendário onde as pessoas trabalham
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Adicionar um calendário a uma página de registro | Arraste o componente para a página no Lightning App Builder e digite o Config Name dele | Código: um Lightning Web Component, o FullCalendar como recurso estático e uma implantação |
| Configurar | Assistente de Configuração: pergunta sobre a página e os seus registros, preenche os campos mais prováveis e mostra uma prévia ao vivo | Código: cada opção é uma propriedade em JavaScript |
| Colocar na página inicial ou em uma página de aplicativo | O mesmo componente; Show All Records com um Record Filter como OwnerId=ME | Código: um segundo caminho de dados para páginas sem registro |
| Usar em um fluxo de tela (Screen Flow) | Arraste para uma tela de fluxo; as datas e os horários escolhidos saem como variáveis do Flow | Código: um componente de tela de fluxo com saídas próprias |
| Abrir ao público em um site do Experience Cloud | O mesmo componente, com o conjunto de permissões MultiDatePick - Guest para os usuários convidados | Código: acesso de convidados, compartilhamento e Apex para usuários que não fizeram login |
| Copiar a configuração para outra organização | Exporte a configuração como JSON e importe na outra organização; o mapeamento inteligente de campos resolve os campos que faltarem | Código: uma implantação, com os testes Apex para aprová-la |
Mostre os seus próprios registros
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Mostrar registros de um objeto personalizado | Escolha o objeto e o campo de data | Código: uma consulta Apex que transforma os campos em eventos |
| Mostrar Tarefas, Eventos ou Oportunidades | Qualquer objeto com campo Data ou Data/Hora, padrão ou personalizado | Código: mais Apex para cada objeto |
| Mostrar registros relacionados, como as tarefas dos contatos de uma conta | Rollup Field, a até cinco lookups de distância | Código: consultas entre relacionamentos |
| Mostrar só alguns registros | Record Filter, como OwnerId=ME; Status__c=Confirmed | Código: lógica de filtro em Apex ou JavaScript |
| Colorir por status | Status Field e Status Colors, exibidos como preenchimento, barras ou ambos, com botões de filtro | Código: mapear cada valor para uma cor em JavaScript |
| Adicionar uma segunda lista de opções, como o tipo de reunião | Second Picklist Field, com os valores que as pessoas podem escolher | Código: o seletor, o salvamento e a exibição |
| Mostrar detalhes ao passar o mouse | Hover Popover Fields, lookups incluídos, um clique até o registro | Código: um hook de renderização de eventos e um tooltip |
| Respeitar o compartilhamento e a segurança em nível de campo | Cada consulta e cada salvamento rodam como o usuário que está vendo a página | Código: tão seguro quanto o Apex que você escrever |
Escolha datas e salve registros
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Deixar as pessoas escolherem datas avulsas | Pronto: clique em quaisquer dias ou arraste por um intervalo | Código: o FullCalendar seleciona um intervalo contínuo por vez |
| Salvar um intervalo como um único registro | End Date Field: dias seguidos viram um registro com início e fim | Código: o agrupamento e o salvamento |
| Adicionar um padrão recorrente, como toda segunda e quarta | Show Recurring Pattern Button: dias úteis, fins de semana, dias personalizados ou a 2ª e a 4ª sexta-feira | Código: um formulário de padrões e o cálculo das datas |
| Escolher horários | Time Interval (Minutes), Earliest Time e Latest Time | Código: um seletor de horários e o salvamento |
| Salvar um registro por escolha | Pronto, com Default Record Name e Default Field Values | Código: inserts em Apex, tratamento de erros e testes |
| Limitar quantas datas alguém pode escolher | Max Dates Allowed, com a sua própria Limit Reached Message | Código: contar e bloquear em JavaScript |
| Enviar reservas para o Outlook ou o Google Agenda | Show Add to Calendar After Saving | Código: gerar você mesmo o arquivo de calendário |
Regras de reserva
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Reservar salas, equipamentos ou pessoas com capacidade | Componente Booking: Resource Object, Capacity Field e contadores de capacidade ao vivo | Código: as visualizações de recursos exigem licença Premium, e a capacidade fica por sua conta |
| Evitar reservas duplicadas | Conflict Behavior: bloquear, ignorar ou permitir | Código: regras de sobreposição em JavaScript e uma verificação no servidor |
| Exigir antecedência e limitar até quando dá para reservar | Minimum Notice (Hours) e Book Up To (Days Ahead) | Código: limites de data que você calcula e aplica |
| Deixar um intervalo entre reservas | Buffer Between Bookings (Minutes) | Código: o cálculo dos intervalos |
| Usar o horário comercial de cada recurso | Business Hours Start Field e End Field no registro do recurso | Código: horários por recurso que você carrega e aplica |
| Bloquear feriados, fechamentos e folgas | Blocked Dates de qualquer objeto, dias inteiros ou parte do dia, com o motivo exibido | Código: eventos de fundo que você consulta e desenha |
Visualizações e aparência
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Oferecer mais que uma grade mensal | Available Views: calendário, linha do tempo, semana, mapa de calor de ocupação e agenda, escolhidas em cada página | Código: as visualizações de linha do tempo exigem licença Premium; não existe mapa de calor de ocupação |
| Agrupar a linha do tempo por um campo, como equipe ou região | Timeline Group By Field | Código, além da linha do tempo Premium |
| Alterar muitos registros de uma vez | Enable Edit Mode: mover, mudar o status ou excluir vários registros juntos | Código: handlers de arraste e atualizações em Apex |
| Renomear botões e títulos | Button Label, Calendar Title e Save Button Label | Código: opções da barra de ferramentas em JavaScript |
| Caber na página | Calendar Size de minúsculo a largura total, Two-Month View, Week Starts on Monday | Código: opções e CSS |
Pessoas, idiomas e manutenção
| Tarefa | MultiDatePickSem código | FullCalendar LWC |
|---|---|---|
| Exibir no idioma de cada usuário | Nove idiomas prontos: inglês, alemão, espanhol, francês, italiano, português, japonês, chinês e hindi | Código: o FullCalendar traduz os próprios botões; os seus rótulos e mensagens, você traduz |
| Mostrar os horários no fuso horário de cada usuário | Automático, a partir das configurações do Salesforce de cada usuário | Código: opções e conversões de fuso horário |
| Atender às regras de acessibilidade | Suporte a teclado e leitores de tela, com VPAT publicado para WCAG 2.1 AA | Código: os seus próprios testes e a sua própria documentação |
| Acompanhar as versões do Salesforce | As atualizações chegam no pacote | Código: você mantém, versão após versão |
Como é a personalização sem código
Cada uma dessas 36 tarefas é uma escolha que o administrador faz em um destes lugares:
O Assistente de Configuração
Uma aba do Lightning que pergunta sobre a sua página e os seus registros, preenche os campos mais prováveis e mostra o calendário real antes de salvar.
Lightning App Builder
Cada configuração também é uma propriedade do componente, então você pode ajustar uma página sem mexer nas outras.
A Config Library
41 configurações prontas, de salas de reunião a folgas, para importar e ajustar.
Exportar e importar
Uma configuração é um JSON que você leva para um sandbox ou outra organização, com os campos que faltam mapeados para você.
Flow Builder
Coloque o calendário em uma tela de fluxo e use as datas escolhidas nas próximas etapas.
Experience Builder
Coloque o mesmo calendário em um site público, com as mesmas regras para os convidados.
Perguntas frequentes
Existe um calendário LWC sem código para Salesforce?
Sim. O MultiDatePick é um calendário Lightning Web Component que você configura com cliques: no Assistente de Configuração ou no Lightning App Builder, em qualquer objeto padrão ou personalizado. Ele mesmo carrega e salva os seus registros, então não há Apex nem JavaScript para escrever.
O FullCalendar é mais personalizável que o MultiDatePick?
Só para desenvolvedores. O FullCalendar é uma biblioteca, então tudo é possível se alguém escrever e mantiver o código. Para um administrador, o MultiDatePick é o calendário mais personalizável: 36 tarefas comuns, das regras de reserva aos nove idiomas, e cada uma é uma configuração.
Um administrador Salesforce consegue configurar o MultiDatePick sem um desenvolvedor?
Sim. O Assistente de Configuração pergunta sobre a página e os seus registros, preenche os campos mais prováveis e mostra uma prévia ao vivo do calendário real. Depois é só arrastar o componente para a página e digitar o Config Name dele.
Preciso de Apex para salvar registros a partir de um calendário?
Com o MultiDatePick, não. Ao Salvar, ele grava um registro por data, por intervalo, por bloco de horário ou por recurso, ou entrega as datas a um fluxo de tela. Cada salvamento roda como o usuário que está vendo a página, com compartilhamento e segurança em nível de campo aplicados.
Posso alterar o calendário depois sem uma nova implantação?
Sim. Abra a configuração no Assistente de Configuração, mude uma opção e salve; o calendário aplica a mudança no próximo carregamento. As configurações são Metadados personalizados (Custom Metadata), então você ainda pode movê-las com conjuntos de alterações ou com o Salesforce CLI, se quiser.
Um calendário sem código funciona em fluxos de tela (Screen Flow) e em sites do Experience Cloud?
Sim. O mesmo componente vai em uma tela de fluxo, onde as datas escolhidas viram variáveis do Flow, e em um site público do Experience Cloud, onde os convidados reservam com as mesmas regras.
O calendário personalizável, sem código.
Explore a demo ao vivo ou comece com uma configuração pronta da Config Library.
- $20/usuário/mês, todos os recursos
- Teste grátis de 30 dias, sem cartão
- 100% nativo do Salesforce
- Sem Apex
- Em breve no Salesforce AppExchange