Guia do usuário do MultiDatePick

Cada componente, configuração e armadilha, na ordem em que um administrador os encontra. Sem necessidade de Apex.

1. Os três componentes: quando usar cada um

O MultiDatePick traz três Lightning Web Components sobre uma mesma base. Escolha o que combina com os seus dados.

Date

Nos construtores: MultiDatePick - Dates

Escolha várias datas de uma vez. Ideal para confirmações de presença, frequência, folgas, datas bloqueadas e calendários de feriados.

Componente Date →

Date Time

Nos construtores: MultiDatePick - Dates & Times

Datas com horários. Ideal para aulas, agendamentos, blocos de treinamento e turnos.

Componente Date Time →

Booking

Nos construtores: MultiDatePick - Resource Booking

Datas, horários e um recurso. Ideal para salas, equipamentos, pessoas e tudo o que tem capacidade.

Componente Booking →

Comparação de recursos

Os recursos se somam. Tudo o que o Date tem, o Date Time e o Booking também têm. O Date Time acrescenta horários. O Booking acrescenta recursos e capacidade.

Recurso Date Date Time Booking
Disponível nos três componentes
Seleção de datas✓✓✓
Cinco visualizações✓✓✓
Cores de status✓✓✓
Datas bloqueadas✓✓✓
Carregar registros existentes✓✓✓
Modo de edição✓✓✓
Padrões recorrentes✓✓✓
Só Date Time e Booking
Horários✓✓
Registros de sub-bloco✓✓
Só Booking
Seletor de recurso✓
Selos de capacidade✓

2. Formatos de registro: quando usar cada um

O formato de registro define como uma seleção vira registros. Ele sai de três escolhas independentes, e todas as combinações funcionam.

Escolha 1
Horário

Date: só datas, sem horários.

Date Time / Booking: cada registro tem hora inicial e final.

Extra: ative Consolidate Time Span (Consolidar Intervalo de Horário) para ter um registro pai cobrindo todo o intervalo de horário, mais um sub-bloco filho para cada lacuna dentro dele.

Escolha 2
Recurso

Nenhum: Date, Date Time ou Booking sem recurso.

Recurso único: Booking com uma lista suspensa de recursos.

Vários recursos: Booking com caixas de seleção, um registro por recurso marcado.

Escolha 3
Intervalo

Por clique: cada data selecionada vira um registro. Cinco cliques, cinco registros.

Por intervalo: datas seguidas viram um único registro com início e fim. Defina o End Date Field API Name.

O Assistente de Configuração dá nome a seis formatos: um registro por data, um por intervalo de datas, um por bloco de horário, pai mais sub-blocos, recurso único e vários recursos.

Exemplos práticos: responda às 3 perguntas

Responda a três perguntas por cenário e você chega ao formato. O Assistente de Configuração faz as mesmas três.

Assistente de Configuração do MultiDatePick no Salesforce: as perguntas de Me guie pelo processo sobre horário, recurso e intervalo, com um pequeno diagrama do formato de registro em cada cartão de resposta
Me guie pelo processo faz as mesmas 3 perguntas na sua organização e escolhe o formato para você.

Pedido de folga

Você precisa de horários? Não, só datas.

Você precisa de um seletor de recurso? Não.

Datas seguidas devem virar um registro só? Sim. Uma folga de segunda a sexta deve ser UM registro.

→ Por intervalo: um registro, de segunda a sexta.

Reserva de sala de reunião

Você precisa de horários? Sim, cada reserva tem início e fim.

Você precisa de um seletor de recurso? Sim, para escolher uma sala.

Datas seguidas devem virar um registro só? Não, cada reserva é um registro.

→ Recurso único: um registro por data × bloco de horário, vinculado à sala.

Treinamento em 3 salas

Você precisa de horários? Sim, o mesmo início e fim todos os dias.

Você precisa de um seletor de recurso? Sim, várias salas com caixas de seleção.

Datas seguidas devem virar um registro só? Sim, vai de segunda a sexta.

→ Vários recursos, por intervalo: um registro por sala cobrindo a semana inteira.

Treinamento de dia inteiro com pausa para o almoço

Você precisa de horários? Sim, das 9h às 17h com uma pausa para o almoço.

Você precisa de um seletor de recurso? Não.

A pausa precisa ficar registrada? Sim, como um registro filho próprio.

→ Pai mais sub-blocos: um pai das 9h às 17h e um sub-bloco para o almoço.

A grade: todas as combinações

Escolha a linha conforme a sua necessidade de horário e recurso. A coluna depende de o End Date Field API Name estar definido ou não. Todas as células são configurações válidas.

Horário + recurso Por clique
(sem End Date Field)
Por intervalo
(com End Date Field)
Date
Sem horário. Componente Date.
Um registro por data
1 data → 1 registro.
Use para: confirmações de presença, frequência, check-ins diários.
Um registro por intervalo de datas
Datas seguidas → 1 registro com início e fim.
Use para: folgas, viagens, hospedagens de várias noites.
Date Time
Um bloco de horário por registro. Componente Date Time.
Um registro por bloco de horário
1 data × 1 bloco de horário = 1 registro.
Use para: folhas de ponto, partes de turno, blocos de treinamento.
Intervalo com o mesmo bloco de horário. Datas seguidas com os mesmos horários → 1 registro.
Use para: treinamentos de vários dias com o mesmo horário todo dia.
Date Time + Consolidar Intervalo de Horário
Registro pai mais sub-blocos filhos para as lacunas
Pai mais sub-blocos
Um pai cobre todo o intervalo de horário. Cada lacuna dentro dele vira um sub-bloco filho.
Use para: treinamentos com pausa para o almoço, rotas de campo com deslocamento entre paradas.
Booking, recurso único
Uma lista suspensa de recursos. Componente Booking.
Recurso único
1 registro por data × bloco de horário, vinculado ao recurso.
Use para: salas de reunião, agenda de instrutores.
Intervalo com recurso único. Datas seguidas em um recurso → 1 registro por intervalo.
Use para: hospedagens de várias noites em um quarto, empréstimo de equipamento por vários dias.
Booking, vários recursos
Caixas de seleção de recursos (Permitir Vários Recursos)
Vários recursos
1 registro por recurso × data × bloco de horário.
Use para: reuniões de equipe em paralelo, treinamento em várias salas.
Intervalo com vários recursos. Datas seguidas em N recursos → N registros, um por recurso.
Use para: uma semana de treinamento em 3 salas ao mesmo tempo.
Booking + Consolidar Intervalo de Horário
Reserva pai mais sub-blocos filhos para as lacunas
Reserva pai mais sub-blocos. Um recurso reservado o dia todo, com as pausas registradas.
Use para: equipamentos de laboratório com janelas de manutenção.

Resumindo: qualquer combinação das três escolhas funciona. Se o seu cenário não tem nome na lista, defina cada escolha separadamente e o componente faz o resto.

3. Passo a passo do Assistente de Configuração

O Assistente de Configuração salva uma configuração uma única vez. Digite o nome dela no Config Name de qualquer página ou tela de fluxo e pronto: aquele local passa a usá-la. Altere a configuração e todos os locais acompanham.

  1. 1 Nome & Tipo
  2. 2 Objeto & Campos
  3. 3 Campos de Tempo
  4. 4 Status & Exibição
  5. 5 Revisar & Salvar

Escolha por onde começar

A aba Criar Nova oferece dois caminhos. Me guie pelo processo faz três perguntas e escolhe o componente e o formato. Configurar todas as propriedades abre todas as opções. Ao lado há mais duas abas: Configurações Existentes, para editar uma configuração salva, e Importar, para colar uma da Config Library.

Assistente de Configuração do MultiDatePick no Salesforce: a tela inicial com os caminhos Me guie pelo processo e Configurar todas as propriedades
Me guie pelo processo faz as 3 perguntas. Configurar todas as propriedades vai direto para a etapa 1.

Etapa 1: Nome & Tipo

Escolha o componente (Date, Date Time ou Booking) e dê um nome à configuração. É esse nome que você digita depois no Config Name. Esta etapa também define as visualizações: a padrão, quais o seletor oferece e as opções de Linha do tempo e Agenda.

Assistente de Configuração do MultiDatePick no Salesforce, etapa Nome & Tipo: a escolha do tipo de componente entre Date, Date Time e Booking, com os campos de nome e rótulo da configuração
Etapa 1: escolha o componente e dê um nome à configuração.
Opções de visualização do Assistente de Configuração do MultiDatePick no Salesforce: Calendário, Linha do tempo e Agenda no seletor, Agrupar linha do tempo por na lista de opções Advisor Specialty, e Client Name, Meeting Type e Status como campos da agenda
Opções de visualização: escolha as visualizações do seletor, agrupe as linhas da Linha do tempo por qualquer lista de opções ou lookup e escolha as colunas da Agenda em uma lista.

Etapa 2: Objeto & Campos

A etapa principal. Escolha o objeto que guarda os registros, o campo de data dele e o campo de relacionamento com o registro pai. Campos opcionais acrescentam intervalos, recursos, capacidade, sub-blocos e datas bloqueadas. Nas configurações de Booking, o objeto de recurso, o campo de capacidade e o horário comercial também ficam aqui.

Assistente de Configuração do MultiDatePick no Salesforce, etapa Objeto & Campos: os seletores de objeto relacionado, campo de data, campo de relacionamento e campo de data final, além da escolha do local de uso
Etapa 2: o assistente lê o esquema da sua organização e oferece uma lista suspensa para cada campo.
Assistente de Configuração do MultiDatePick no Salesforce, etapa Objeto & Campos: cada campo é uma lista suspensa filtrada pelo objeto escolhido, aqui Advisor Appointment e Advisor, com a lista Campo de Capacidade aberta mostrando só os campos numéricos de Advisor
Nada de procurar nomes de API. Cada lista mostra só campos do tipo certo: o Campo de Capacidade, por exemplo, lista só campos numéricos.
Seção Datas Bloqueadas do Assistente de Configuração do MultiDatePick no Salesforce: o objeto Advisor Closure como origem, seus campos Closure Date, Start Time e End Time selecionados e a lista de campo de recurso aberta mostrando seus lookups
As datas bloqueadas podem vir de qualquer objeto. Escolha o objeto e as listas de data, hora e recurso se preenchem sozinhas.

Etapa 3: Campos de Tempo

Só Date Time e Booking. Mapeie os campos de hora inicial e final e depois defina o Intervalo de Horário (qualquer intervalo funciona; 15, 30 ou 60 minutos são os mais comuns), a hora mais cedo e a mais tarde, o modo de exibição e o que acontece em caso de conflito.

Assistente de Configuração do MultiDatePick no Salesforce, etapa Campos de Tempo: campos de hora inicial e final, intervalo de 30 minutos, exibição em grade, das 08:00 às 18:00, conflito em Bloquear e 90 dias de antecedência para conflitos, com a visualização ao vivo abaixo
Etapa 3: campos de hora, intervalo e regras de conflito, com a visualização ao vivo embaixo.

Etapa 4: Status & Exibição

Campo de status e cores, status a ocultar, status que os usuários podem escolher, campos ao passar o mouse, modo de edição, nome dos registros, rótulos dos botões, tamanho do calendário e limites como Max Dates Allowed (Máximo de Seleções).

Assistente de Configuração do MultiDatePick no Salesforce, etapa Status & Exibição: Campo de Status, mapeamento de cores de status com amostras de cor e status de reservas ocultos
As cores de status leem os valores da lista de opções do seu campo de status. Cada valor ganha uma amostra de cor.
Assistente de Configuração do MultiDatePick no Salesforce, etapa Status & Exibição: nome dos registros, campos ao passar o mouse, tamanho do calendário, formato do cabeçalho de dia e as alternâncias de recursos
Opções de exibição e alternâncias de recursos, com a visualização ao vivo embaixo.

Etapa 5: Revisar & Salvar

Confira o resumo, teste a visualização ao vivo e clique em Salvar Configuração. O assistente implanta a configuração para você em 30 a 60 segundos. No fim, se quiser, adicione uma descrição.

Assistente de Configuração do MultiDatePick no Salesforce, etapa Revisar & Salvar: um resumo de cada opção escolhida e uma visualização funcional do calendário configurado, com o botão Salvar Configuração
Etapa 5: todas as opções em uma lista e uma visualização funcional. Nada é salvo até você clicar em Salvar Configuração.

Configurações Existentes e Importar

As configurações salvas aparecem em Configurações Existentes: clique em uma para editar ou exportar. A aba Importar aceita o JSON de qualquer cartão da Config Library ou uma exportação de outra organização.

Assistente de Configuração do MultiDatePick no Salesforce: a aba Importar com uma caixa para colar uma configuração JSON e o cartão Salvar Descrição após a importação
Importar: cole uma configuração JSON para implantar a mesma configuração em qualquer lugar.
Assistente de Configuração do MultiDatePick no Salesforce: a aba Configurações Existentes listando as configurações salvas com tipo de componente, rótulo e descrição
Configurações Existentes: todas as configurações salvas, prontas para editar ou exportar.
Em um fluxo de tela, defina o Config Name e pare por aí. Todas as caixas de seleção vêm da configuração, então você nunca precisa de uma $GlobalConstant. Associe o registro pai ao Parent Record Id.

4. Conjuntos de permissões e acesso

O pacote traz quatro conjuntos de permissões. Atribua-os em Configuração, Conjuntos de permissões.

Conjunto de permissõesPara quemAssistente de ConfiguraçãoUsar calendários
MultiDatePick - SetupOs administradores que criam configurações✓ SimNão
MultiDatePick - UserTodos que usam os calendáriosNão✓ Sim
MultiDatePick - All AccessAdministradores que criam e usam calendários✓ Sim✓ Sim
MultiDatePick - GuestO usuário convidado de um site público do Experience CloudNão✓ Ver e reservar

Os componentes rodam com as permissões de cada usuário, então os usuários também precisam de acesso aos seus objetos e campos:

  • Objetos: Ler e Criar no objeto em que os registros são salvos, mais Ler em qualquer objeto de recurso, fechamento ou filho que o calendário lê.
  • Campos, leitura: todo campo que o calendário mostra (data, status, campos ao passar o mouse).
  • Campos, edição: todo campo que ele grava (data, horários, status, segunda lista de opções, campo de nome, o lookup para o registro pai). Um campo que o usuário não pode editar faz o salvamento falhar, mesmo que a leitura funcione.
  • Registros referenciados: pelo menos Ler no registro pai e no recurso para os quais o novo registro aponta.
Administradores também precisam de acesso aos campos. Um campo personalizado recém-criado fica invisível para todos, inclusive para Administradores do sistema, até que um conjunto de permissões o libere. Se um campo parece sumir na hora de salvar, verifique primeiro a segurança em nível de campo.

Cada mensagem de erro e sua causa estão em Solução de problemas: erros de acesso. Sites para convidados precisam de alguns passos extras: veja Páginas públicas para convidados.

5. Salvar com clique vs. salvar pelo fluxo

Há duas formas de salvar. Escolha a que combina com o local de uso.

Salvar com clique

O próprio componente grava os registros. Preencha quatro configurações e aparece o botão Salvar dele. Clique e os registros filhos são criados. Sem elementos de fluxo, sem código.

Use em: páginas de registro, páginas de aplicativo, páginas iniciais, sites do Experience Cloud e telas de fluxo com um registro pai.

Salvar pelo fluxo

O componente entrega a seleção ao seu fluxo. Use a ação incluída Parse Date Entries from JSON e depois seus próprios elementos Loop e Criar registros.

Use em: telas de fluxo em que você quer controle total: aprovações, registros condicionais, validações extras.

Salvar com clique: as quatro configurações

O Assistente de Configuração preenche estas. Quando as quatro têm valor, o botão Salvar aparece.

ConfiguraçãoO que contémNome da API
Child Object API NameO objeto em que os registros são salvosrelatedObjectApiName
Date Field API NameO campo de data nesse objetodateFieldApiName
Relationship Field API NameO lookup de volta para o registro pairelationshipFieldApiName
Parent Record Id ou Static Parent Record IdO registro pai. Em uma página de registro, é preenchido automaticamente. Em um fluxo, associe o Parent Record Id. Em páginas de aplicativo, iniciais e do Experience Cloud, digite o Id em Static Parent Record Id.recordId / staticRecordId
Dois botões em uma tela de fluxo. Com o salvamento por clique ativado, o Salvar do componente grava os registros e o Avançar do fluxo apenas segue em frente. Os usuários clicam primeiro em Salvar e depois em Avançar.

Qual registro pai uma página usa, e quando é melhor escolhê-lo em um fluxo, está explicado em Páginas de aplicativo, iniciais e do Experience Cloud.

Salvar pelo fluxo: as saídas

Deixe as quatro configurações em branco. O botão Salvar some e a seleção sai por estas saídas do fluxo:

SaídaConteúdoComponentes
Selected Dates (Output)Uma coleção de texto com datas (YYYY-MM-DD)Date, Date Time
Date Ranges JSON (Output)Datas seguidas agrupadas em intervalosDate, Date Time
Dates With Times JSON (Output)Cada data com seus horáriosDate Time
Successful Bookings Count / Conflict DatesResultados depois que o Booking salva sozinhoBooking

Passe o JSON para Parse Date Entries from JSON. Ela retorna uma lista que você pode percorrer em um Loop, com data inicial, data final, hora inicial, hora final e Id do recurso em cada item. Passo a passo: Receitas de fluxo.

Salvar só adiciona

O salvamento por clique só cria registros novos. Desmarcar uma data nunca exclui um registro salvo, então um clique errado não apaga dados. Para alterar ou remover registros, use o modo de edição ou a lista relacionada.

6. Cores de status e modo de edição

Cores de status e filtros

Dê cor aos registros com base em qualquer lista de opções do seu objeto, oculte alguns valores e limite o que os usuários finais podem escolher.

ConfiguraçãoO que fazNome da API
Status FieldA lista de opções que define as cores, por exemplo Confirmed / Tentative / Cancelled.statusField
Status ColorsUma cor por valor, como Confirmed:#22C55E, Tentative:#fbbf24. Deixe em branco para usar uma paleta automática.statusColors
Status Color DisplayOnde as cores aparecem: calendário, grade ou ambos. Deixe vazio para uma página de cliente limpa, sem cores.statusColorDisplay
Ignored StatusesOculta os registros com esses valores (por exemplo No-Show,Cancelled) do calendário e da contagem de capacidade.hideBookingsWithStatus
Selectable StatusesLimita os valores que o usuário final pode escolher, por exemplo só Requested, enquanto a equipe interna vê todos.selectableStatuses
Duas páginas, um objeto. Uma página de cliente pode não ter cores, oferecer só Requested como status e ocultar No-Show e Cancelled. Uma página interna com os mesmos registros ativa as cores e oferece todos os status.

Modo de edição

Ative Enable Edit Mode (Ativar Modo de Edição) e aparece o botão Editar. No modo de edição, os usuários podem:

  • Ver os registros existentes como cartões com data e status
  • Clicar em datas para incluir os registros delas na edição
  • Alterar data, horários, recurso ou status, e o registro é atualizado
  • Excluir com confirmação em dois cliques, para nada sumir por acidente
Demo animada do modo de edição do MultiDatePick em um calendário Salesforce: dois dias de agendamentos Requested são selecionados, Selecionar Tudo marca as duas reservas, o status muda para Confirmed e, após Aplicar Alterações, os dois dias passam de azul para verde
Alteração de status em massa: selecione os dias, Selecionar Tudo, escolha o status e aplique.
Demo animada do modo de edição do MultiDatePick em um calendário Salesforce: o agendamento de um cliente é selecionado, o dia seguinte é informado em Mover para data e, após Aplicar Alterações, a reserva sai de 30 de outubro e aparece em 31 de outubro, o único dia ainda marcado
Mover reservas: escolha o dia, uma nova data e aplique. O mesmo painel muda o recurso ou os horários.
Calendário de reservas do Salesforce com cores de status em cada dia e o modo de edição aberto: o dia selecionado lista cada reserva com status, horário e sala, pronto para alterar o status em massa, mover ou reatribuir
As cores de status pintam cada dia. O modo de edição lista os registros do dia, prontos para alterar.

7. Visualizações: cinco layouts, um componente

Todo componente desenha cinco layouts. Eles leem os mesmos registros pelos mesmos mapeamentos de campos, seguem as mesmas regras de conflito, datas bloqueadas e horário comercial, e salvam do mesmo jeito. Trocar de visualização muda a aparência dos registros, nunca o que eles significam.

As cinco, e a pergunta que cada uma responde

Exibição (View)A perguntaLayoutPermite gravar?
CalendárioO que acontece no dia 14?Um mês por vez, com cores de status por dia.Sim. É a padrão.
Linha do tempoQual recurso está livre, e quando?Recursos na lateral, datas no topo. Registros de vários dias aparecem como uma única barra.Sim
SemanaQuem está livre na quinta às 14h?Sete dias na horizontal, horário comercial na vertical. Arraste por dias e horas ao mesmo tempo.Sim
OcupaçãoQuem está acima da capacidade?Mapa de calor da capacidade usada, por recurso e por dia.Não, somente leitura
AgendaO que vem a seguir?Uma lista dos próximos 60 dias, em ordem.Não, somente leitura
Não abra uma página de reservas em Ocupação ou Agenda. As duas são somente leitura, então a página perderia sua função principal. Ofereça-as em Available Views (Visualizações Disponíveis) e abra em uma visualização que permita gravar.

Configurações

ConfiguraçãoPadrãoO que faz
ViewviewCalendárioO layout com que o componente abre.
Available ViewsavailableViewsem brancoAs visualizações que o seletor oferece, por exemplo calendar,timeline,agenda. Em branco, oferece as cinco. A visualização padrão sempre entra, então liste só as extras.
Timeline Window (Days)timelineWindowDays14Quantos dias a Linha do tempo mostra de uma vez. Com um mês inteiro, cada reserva fica com uns vinte pixels de largura e o rótulo é cortado. Use 0 para o mês inteiro. As setas internas avançam uma janela; as externas, um mês.
Resource RowsresourceViewFilterallbooked desenha só os recursos com reserva no período visível. É a melhor forma de encurtar uma lista longa, porque uma linha vazia não informa nada. Se não houver nenhuma reserva, volta a mostrar todos os recursos.
Max View ResourcesmaxViewResources0 (todos)Limita quantas linhas de recurso a Linha do tempo e a Ocupação desenham, começando pelos mais ocupados. Tudo continua sendo contado. Prefira Resource Rows, que só oculta linhas vazias.
Agenda FieldsagendaFieldsem brancoCampos extras em cada linha da Agenda, até quatro. Em branco, reutiliza os Hover Popover Fields (Campos ao Passar o Mouse). Data, hora e nome já estão na linha.
Capacity FieldcapacityFieldem brancoNão é uma configuração de visualização, mas a Ocupação precisa dele para mostrar porcentagens em vez de números absolutos.

Uma visualização diferente por página

A visualização é uma configuração de cada local de uso, então os mesmos registros podem aparecer de jeitos diferentes em cada lugar. Uma instalação, um conjunto de mapeamentos de campos.

Local de usoExibição (View)Visualizações Disponíveis (Available Views)
Página de entrevistas do recrutadorSemanacalendar,agenda
Página de reserva de salas da administração predialCalendáriotimeline,utilization
Escala do gerente de turnosLinha do tempoweek,agenda
Painel de parede da operaçãoAgendautilization,timeline
Página pública do Experience CloudCalendárioem branco, ou uma lista curta

O modo de edição funciona em todas as visualizações

Com Enable Edit Mode ativado, o botão de edição aparece em todas as visualizações. Clique em um registro na Linha do tempo, na Semana ou na Agenda para incluí-lo na edição, como faria com uma data no calendário mensal. Uma alteração de status em massa pela Linha do tempo funciona igual à feita pelo calendário.

Linha do tempo: linhas recolhidas

Quando um recurso tem reservas sobrepostas, a linha dele se recolhe em uma única faixa com um selo N ao mesmo tempo. Um botão de expandir abre uma faixa por reserva. Linhas recolhidas continuam aceitando arrastar, passar o mouse e clicar.

Visualização de linha do tempo do Salesforce com reservas de vários dias sobrepostas empilhadas em faixas sob cada recurso, um botão de expandir em cada linha com várias faixas e uma faixa de capacidade combinada no topo
Reservas sobrepostas se empilham em faixas. A faixa do topo mostra o quanto cada dia está cheio.

Linha do tempo: arraste para reagendar

Com Enable Edit Mode ativado, as barras da Linha do tempo podem ser arrastadas. Pegue pelo meio para mover uma reserva para outros dias. Pegue por uma borda para mudar o início ou o fim. A barra mostra onde vai cair e salva quando você solta. No zoom Dia, os mesmos gestos mudam os horários.

Demo animada de reagendamento na linha do tempo do MultiDatePick no Salesforce: arrastar a borda direita de um compromisso o estende por dois dias, depois arrastar outro compromisso o move dois dias para frente; cada um é salvo ao soltar, com as novas datas exibidas na barra
Estique uma reserva pela borda e deslize outra para dias depois. Cada uma é salva ao soltar.

Agende pessoas, não só salas

Resource Object API Name (Objeto de Recurso) aceita qualquer objeto. Defina como User e a Linha do tempo vira uma escala de equipe, a Semana uma grade de turnos e a Ocupação um painel de capacidade da equipe.

  • O User não tem campo de capacidade padrão. Crie um personalizado (por exemplo Daily Capacity) para ver a Ocupação em porcentagens.
  • Mapeie Business Hours Start Field (Campo de Início do Horário Comercial) e Business Hours End Field (Campo de Fim do Horário Comercial) para campos do User e a grade da Semana segue o horário de cada pessoa.

A Config Library tem dois exemplos prontos: Planejamento de Capacidade da Equipe e Escala de Turnos da Equipe.

MultiDatePick mostrando reservas do Salesforce nas cinco visualizações: linha do tempo de recursos, calendário mensal, mapa de calor de ocupação, grade semanal e lista de agenda
As mesmas reservas nas cinco visualizações.

8. Reserva de recursos e capacidade (componente Booking)

Recurso único

Os usuários escolhem um recurso em uma lista suspensa. A grade de horários carrega as reservas e a capacidade desse recurso.

Vários recursos

Ative Allow Multiple Resources (Permitir Vários Recursos) e a lista suspensa vira caixas de seleção. A grade mostra só os horários livres em todos os recursos marcados, e o Salvar reserva todos de uma vez.

Calendário de reservas do Salesforce no modo de vários recursos com dois recursos marcados, mostrando uma grade de capacidade combinada com selos X/Y em cada horário
Dois recursos marcados. Cada selo mostra reservas sobre a capacidade somando os dois.

Capacidade

Permita que várias reservas dividam um horário, com selos 3/5 ao vivo. Um horário lotado para de aceitar reservas.

ConfiguraçãoO que fazNome da API
Capacity FieldUm campo numérico no recurso, por exemplo Capacity = 5.capacityField
Show Availability CountMostra os selos X/Y.showAvailabilityCount
Capacity AggregationCombined (padrão) soma reservas e capacidades dos recursos marcados: duas salas de 5 mostram 0/10. Distinct conta uma única vez um evento reservado em vários recursos e usa a maior capacidade individual: uma aula em 4 salas mostra 1/5, não 4/20.capacityAggregation
A capacidade precisa dos dois campos de hora da reserva. Sem Booking Start Time Field e Booking End Time Field não há horários para contar, e o componente mostra um aviso âmbar no lugar do calendário.

Conflitos

Conflict Behavior (Comportamento de Conflito) define o que acontece quando um horário escolhido já está ocupado. Conflict Look-Ahead Days (Dias de Antecedência para Conflitos) define até quantos dias à frente verificar (padrão 360).

ValorO que aconteceIdeal para
Bloquear (padrão)Um horário ocupado não pode ser escolhido, e o salvamento para com os conflitos destacados.A maioria das páginas de reserva
IgnorarSalva os horários livres e pula os ocupados. As datas puladas voltam em Conflict Dates (Output).Pegar o que ainda estiver livre em muitas datas
PermitirSem verificação de conflito. As reservas podem passar da capacidade.Overbooking proposital

Um fechamento sempre prevalece. Nada é salvo em um horário bloqueado, nem com Permitir.

9. Limitar o que os usuários selecionam

Limite quanto uma pessoa pode escolher, por datas ou por horários.

ConfiguraçãoO que fazNome da API
Max Dates Allowed
Booking: Max Dates Per Booking
Máximo de datas que um usuário pode escolher. 0 significa sem limite.maxSelections
Max Time SlotsMáximo de horários no total, somando todas as datas. 0 significa sem limite. Use 1 para um agendamento por pessoa.maxTimeSlotSelection
Earliest / Latest Selectable DateDeixa em cinza as datas fora de um período fixo.minDate / maxDate
Book Up To / Minimum NoticeUma janela móvel: até N dias à frente, com pelo menos N horas de antecedência.maxDaysAhead / minNoticeHours
Buffer Between BookingsReserva um tempo livre de preparação depois de cada reserva.bufferMinutes
Add to CalendarUm arquivo .ics com tudo o que acabou de ser salvo, depois do Salvar.showAddToCalendar
Allow Past DatesDesativado, só permite hoje em diante. Vem ativado no Date e no Date Time e desativado no Booking.allowPastDates
Max Dates Allowed limita datas, não horários. Com limite 1, o usuário ainda pode escolher vários horários naquela data. Use também Max Time Slots (Máx. de horários) para limitar o número de reservas.

10. Bloquear datas, horários e recursos (fechamentos)

Qualquer calendário pode ler fechamentos de outro objeto e deixar em cinza as datas, horários ou recursos que eles cobrem, para que os usuários só reservem quando você está aberto. Aponte algumas configurações para o objeto de fechamentos e o componente faz o resto. Bloqueios de dia inteiro funcionam nos três componentes. Bloqueios de horário e de recurso precisam da grade de horários do Date Time ou do Booking.

Bloquear vs. ocultar: qual é a diferença?

Parecem iguais, mas fazem o oposto. Bloquear tira disponibilidade: o horário aparece, mas não pode ser reservado. Ocultar tira registros da tela, o que libera os horários deles.

Bloquear (fechamentos) Ocultar (por status)
O que controlaQuais datas, horários e recursos podem ser reservadosQuais registros salvos aparecem
ConfiguraçãoBlocked Dates Object (Objeto Fonte de Datas Bloqueadas) e seus campos de data, hora e recursoIgnored Statuses
Definido porUma lista de fechamentos ou feriados: um objeto próprio ou o seu objeto de reservas filtradoUm valor de status nos próprios registros
O que os usuários veemO horário está lá, mas riscado, em cinza e sem cliqueO registro some do calendário
Efeito na capacidadeTira disponibilidadeLibera disponibilidade: o registro oculto deixa de contar
Os dadosNão existe reserva; você só marca o horário como indisponívelOs registros continuam existindo no Salesforce
Use paraFeriados, janelas de manutenção, uma sala ou região fechadaReservas Cancelled ou Rejected que não devem poluir a grade nem contar na capacidade
Um mesmo status pode fazer qualquer um dos dois, dependendo do recurso a que você o liga. Pense em uma reserva Cancelled:
  • Ignored Statuses (Status ignorados) = Cancelled → a reserva some e o horário dela fica livre.
  • Blocked Dates Object = seu objeto de reservas, filtrado por Status = Cancelled → a reserva bloqueia a data dela para ninguém reservar de novo.
Oculte para liberar o horário. Bloqueie para mantê-lo indisponível.

As configurações de datas bloqueadas

ConfiguraçãoO que fazNome da API
Blocked Dates ObjectO objeto com os fechamentos, como um objeto Office Closure ou o seu objeto de reservas. Defini-lo ativa o bloqueio.blockedDatesSourceObject
Blocked Dates Date FieldO campo de data nesse objeto.blockedDatesDateField
Blocked Dates Start / End Time FieldCampos de hora opcionais. Defina os dois para bloqueios de parte do dia; deixe em branco para o dia inteiro. Date Time e Booking.blockedDatesStartTimeField / blockedDatesEndTimeField
Blocked Dates Resource FieldLookup opcional que restringe um fechamento a um recurso. Em branco, o fechamento vale para todos os recursos. Booking.blockedDatesResourceField
Blocked Dates Filter Field / ValueEscopo opcional, como Region = North ou Status = Cancelled. É assim que uma única tabela de fechamentos atende vários calendários.blockedDatesFilterField / blockedDatesFilterValue

Três níveis de bloqueio

  1. Dia inteiro: um fechamento sem horários deixa a data inteira em cinza. Nos três componentes. Uma data fechada continua fechada mesmo que já tenha reservas.
  2. Parte do dia: um fechamento com hora inicial e final bloqueia só aqueles horários. O resto do dia continua disponível. Os horários bloqueados aparecem quando uma data é selecionada.
  3. Um recurso: um fechamento que aponta para um recurso fecha só esse recurso. Na visualização de um recurso, o horário aparece riscado. Na visualização combinada, ganha uma pequena marca no canto e continua disponível nos recursos abertos.

Usa a grade de horários? Então você quer bloqueios de parte do dia. Bloqueios de dia inteiro combinam com seletores só de data.

Dois modelos para o objeto de fechamentos

  • O mesmo objeto, marcado por status: aponte o Blocked Dates Object para o seu objeto de reservas e filtre Status = Cancelled, assim as reservas canceladas também funcionam como fechamentos. É o mais simples, mas todos os calendários desse objeto os compartilham. Veja a configuração Agendamento de Atendimentos com Feriados na Config Library.
  • Um objeto só para fechamentos: um objeto Office Closure com data, hora inicial e final opcionais, um campo Region e um lookup opcional para recurso. Cada calendário filtra pela sua região, e um fechamento pode valer para um único recurso. Veja a configuração Fechamentos de Recursos por Horário.

Para que as pessoas bloqueiem o próprio horário (um responsável bloqueando uma manhã, por exemplo), coloque um componente Date Time que salva no objeto de fechamentos em uma página ou site interno.

Como os horários bloqueados se comportam

  • Aparência: um horário totalmente fechado aparece riscado e em cinza. Um horário fechado só para alguns dos recursos escolhidos ganha uma marca no canto.
  • Seleção: um horário totalmente fechado não aceita clique nem arrasto.
  • Salvar: nada é salvo em um recurso, data e horário fechados. Com vários recursos, só o fechado fica de fora; os abertos são reservados normalmente.

Uma tabela de fechamentos, vários calendários

Dê ao objeto de fechamentos um campo de etiqueta (Region, Location, Building) e coloque o mesmo campo nos seus recursos. Cada calendário então usa Resource Filter Field / Value para mostrar os próprios recursos e Blocked Dates Filter Field / Value para ler os próprios fechamentos.

11. Páginas públicas para convidados (Experience Cloud)

Coloque um componente em um site do Experience Cloud e qualquer pessoa pode reservar sem fazer login. Conclua os cinco passos antes de testar como convidado.

  1. Permissões de objeto. Dê ao usuário convidado do site Ler, mais Criar se os convidados enviam dados, em cada objeto. O Salesforce nunca deixa convidados editarem ou excluírem registros, então mantenha as páginas de edição, cancelamento e exclusão para usuários logados.
  2. Segurança em nível de campo em todo campo que o componente usa, inclusive os campos de horário comercial do recurso e os campos de hora dos fechamentos. Um único campo faltando derruba a consulta de recursos ou de fechamentos.
  3. Uma regra de compartilhamento para convidados (Ler) para que o convidado veja os registros. O padrão externo para toda a organização do objeto precisa ser Privado para a regra valer. Uma regra implantada como metadados precisa de um clique em Recalcular em Configuração, Configurações de compartilhamento.
  4. O conjunto de permissões MultiDatePick - Guest no usuário convidado do site. Ele dá o acesso às classes Apex pelas quais o componente carrega os dados.
  5. Ative o site. Publicar e ativar são passos separados.
Calendário vazio para convidados? Se objetos, campos e acesso às classes parecem corretos, quase sempre é o recálculo do compartilhamento do passo 3. Os passos 4 e 5 são os próximos mais esquecidos.
  • Qual registro os convidados veem: uma página pública usa o Static Parent Record Id, então todos os convidados reservam no mesmo registro pai (um escritório, local ou recurso). Para um registro por visitante, use um fluxo com um parâmetro de URL. Calendários realmente individuais exigem usuários logados.
  • Contatos e contas: o Salesforce restringe muito o acesso de convidados a eles. Faça as reservas de convidados em um objeto personalizado ou use um site autenticado.
  • Vários componentes na mesma página: eles não se sincronizam em tempo real. Inclua um aviso para atualizar entre eles, para que um bloqueio feito em um apareça no seguinte.

Os passos para colocar o componente estão em Páginas de aplicativo, iniciais e do Experience Cloud. Um site completo de exemplo está em Reservas no Experience Cloud.

12. Armadilhas comuns (perguntas frequentes)

Apareceu um aviso, sumiu o botão Salvar ou o calendário está vazio? A Solução de problemas mostra cada mensagem com uma captura de tela e a correção.

As cores de status não estão sendo aplicadas
Verifique três coisas. (a) O Status Field (Campo de Status) é exatamente o nome de API da lista de opções? Ele diferencia maiúsculas de minúsculas. (b) O Status Colors (Cores de Status de Reserva) usa o formato Value:#hex, Value:#hex, sem aspas? 'Confirmed':'#22C55E' quebra tudo sem aviso. (c) Os registros têm mesmo um valor nessa lista de opções?
Os registros são salvos com nomes inesperados
Verifique o Record Name Field (Campo de Nome do Registro): se o campo é curto, nomes longos são cortados. Verifique o Append Date to Record Name (Anexar DateTime ao Nome): quando ativado, a data e o horário selecionados são acrescentados a todos os nomes.
Como oculto registros Cancelled da grade de capacidade?
Defina Ignored Statuses como Cancelled, ou uma lista como Cancelled,Rejected. Eles saem do calendário e da contagem de capacidade.
Qual é a diferença entre bloquear e ocultar?
Bloquear (fechamentos) mantém uma data, horário ou recurso visível, mas sem permitir reserva: feriados, manutenção, uma sala fechada. Ocultar tira registros como os Cancelled do calendário e da capacidade, o que libera o horário. Veja Bloquear vs. ocultar.
O botão de edição não aparece
Ative Enable Edit Mode. É o único requisito, nos três componentes. O Status Field é opcional; ele só acrescenta uma lista de status no editor. Se o botão continuar sumido, a página ou a configuração está com Enable Edit Mode desativado.
Quero só alguns recursos (salas, não equipamentos)
Use Resource Filter Field (Campo de Filtro de Recurso) e Resource Filter Value (Valor do Filtro de Recurso). Um valor: campo Active__c, valor true. Vários valores (OU): North,South. Vários campos (E): campo Type__c;Active__c, valor Conference Room;true.
O Date Time insiste em mostrar um único seletor de horário compartilhado
A configuração certa é o Time Display Mode (Modo de Exibição de Horário): Grade ou Dropdown. No modo Grade, todas as datas compartilham a grade. Para um horário diferente por data, escolha Dropdown e ative Allow Different Times Per Date (Permitir Horários Diferentes).
Como passo do salvamento pelo fluxo para o salvamento com clique?
Preencha Parent Record Id, Child Object API Name, Date Field API Name e Relationship Field API Name. Remova a ação Parse Date Entries from JSON e o loop que criava os registros. Agora o próprio botão Salvar do componente os grava.
Aparece uma notificação de erro sem detalhes
Abra o console de desenvolvedor do navegador e procure linhas que começam com [MDP:ERROR]. O erro completo sempre fica registrado lá, mesmo quando a notificação é curta.

13. Receitas de fluxo

Tudo aqui é feito no Flow Builder. Sem Apex.

Percorrer as datas selecionadas em um loop

  1. Adicione uma Tela com o componente Date Time. Deixe em branco as configurações do salvamento com clique.
  2. Depois da tela, adicione a ação Parse Date Entries from JSON. Passe para ela o Dates With Times JSON (Output).
  3. Percorra em um loop a lista da ação. Cada item tem data inicial, data final, hora inicial e hora final.
  4. Dentro do loop, atribua os valores a uma variável de registro e adicione-a a uma coleção. Crie os registros uma única vez, depois do loop.

Levar a primeira e a última data para o registro pai

Quer que o registro pai mostre a data mais antiga e a mais recente dos filhos? Escolha o caminho sem código que combina com os seus dados.

Seu cenárioFaça isto
Relacionamento mestre-detalhesCrie dois campos de resumo de totalização no registro pai: MIN do campo de data e MAX do campo de data. Pronto.
Relacionamento de pesquisa (lookup)Um fluxo acionado por registro no filho (depois de salvar). Obter registros no objeto filho para o mesmo pai, ordenado por data crescente, só o primeiro registro. Faça o mesmo em ordem decrescente. Atualize a data inicial e a final do pai com as duas datas.

Mais modelos de fluxo: Guia de fluxo de tela.

14. Mapeamento de objetos e campos

Cada página de componente tem um diagrama completo de mapeamento de objetos e campos:

Os componentes funcionam com qualquer objeto. Os objetos de exemplo do pacote (Schedule, Event, Resource, Sub Block) são só o padrão. Aponte as configurações para os seus próprios objetos, personalizados ou padrão, com os campos certos.

15. Referência de todas as propriedades

Todas as configurações dos três componentes, pelo rótulo que você vê no Lightning App Builder, no Experience Builder e no Flow Builder. O nome de API fica embaixo de cada rótulo.

Todas as propriedades Mais de 100 propriedades Clique para expandir: com busca
Propriedade Date Date Time Booking Tipo Padrão Descrição
Configuração
Config NameconfigName✓✓✓Stringem brancoOpcional: DeveloperName de um registro Config__mdt criado pelo Assistente de Configuração. Quando definido, todas as configurações de campos e objetos dessa configuração são aplicadas como padrão. Propriedades de texto e número definidas aqui substituem a configuração. As caixas de seleção sempre vêm da configuração: uma caixa desmarcada não se distingue de uma que nunca foi definida.
Visualizações
Viewview✓✓✓StringcalendarQual renderizador usar. calendar é a grade mensal (padrão). timeline mostra os recursos como linhas e as datas como colunas. week é uma grade de dias por horas. utilization é um mapa de calor de capacidade, somente leitura. agenda é uma lista cronológica, somente leitura.
Available ViewsavailableViews✓✓✓Stringem brancoLista separada por vírgulas das visualizações oferecidas no seletor, por exemplo calendar,timeline,agenda. Deixe em branco para oferecer as cinco. A View padrão acima sempre entra.
Timeline Window (Days)timelineWindowDays✓✓✓Integer14Quantos dias a visualização Linha do tempo mostra de uma vez. Um mês inteiro deixa cada reserva com uns vinte pixels de largura e corta todos os rótulos, por isso o padrão é 14. Use 0 para mostrar o mês inteiro.
Timeline ZoomtimelineZoom✓✓✓StringweekZoom inicial da visualização Linha do tempo: day (as horas de um dia), week (a Timeline Window) ou month. Os usuários podem mudar o zoom enquanto visualizam.
Timeline Group By FieldtimelineGroupByField✓✓✓Stringem brancoNome de API de um campo do objeto de recurso (por exemplo Building__c) para agrupar as linhas da Linha do tempo sob cabeçalhos com uma faixa de capacidade. Deixe em branco para uma lista única, sem grupos.
Max View ResourcesmaxViewResources✓✓✓Integer0Máximo de linhas de recurso que as visualizações Linha do tempo e Ocupação desenham, começando pelos mais ocupados. Evita que uma lista grande de recursos transforme qualquer uma delas em um paredão ilegível.
Agenda FieldsagendaFields✓✓✓Stringem brancoCampos separados por vírgulas mostrados em cada linha da visualização Agenda, depois do nome do registro. Deixe em branco para reutilizar os campos ao passar o mouse. Os campos de data, hora e nome do registro são ignorados automaticamente, porque a linha já os mostra.
Resource RowsresourceViewFilter✓✓✓StringallQuais recursos ganham uma linha na Linha do tempo e na Ocupação. all desenha todos os recursos; booked desenha só os que têm reserva na janela atual, que é a melhor forma de encurtar uma lista longa de recursos, porque ocultar uma linha vazia não faz falta.
Exibição e layout
Button Labellabel✓✓✓StringDate: Selecionar Datas (Select Dates); Date Time: Selecionar Datas & Horários (Select Dates & Times); Booking: Reservar Recurso (Book Resource)Texto do botão que abre o seletor de datas. Exemplo: 'Escolher datas' ou 'Adicionar Datas'
Calendar TitlemodalTitle✓✓✓StringDate: Selecionar Datas (Select Dates); Date Time: Selecionar Datas & Horários (Select Dates & Times); Booking: Reservar Recurso (Book Resource)Título exibido no topo da janela do calendário.
Show Inline (Always Visible)Também aparece como Show Inline (No Button)showInline✓✓✓BooleantrueQuando ATIVADO, o calendário fica sempre visível, sem precisar clicar em um botão. Quando DESATIVADO, um botão abre o calendário em uma janela pop-up.
Two-Month ViewtwoMonthView✓✓✓BooleanfalseQuando ATIVADO, mostra dois meses lado a lado para facilitar a seleção de intervalos. Quando DESATIVADO, mostra um mês por vez.
Calendar SizecalendarSize✓✓✓StringmediumControla o tamanho geral do calendário. Valores válidos: tiny, xsmall (Muito pequeno), small, medium, large. O padrão é medium. Use tiny ou xsmall para barras de utilitários, barras laterais e blocos de painel, small para espaços apertados, medium para a maioria dos layouts e large para experiências pensadas para toque.
Day Header FormatdayHeaderFormat✓✓✓String3Tamanho dos cabeçalhos dos dias da semana. Valores válidos: 3, 2, 1. O padrão é 3. 3 = DOM SEG TER, 2 = DO SE TE, 1 = D S T.
Week Starts on MondayweekStartsOnMonday✓✓✓BooleanfalseQuando ATIVADO, a semana do calendário começa na segunda-feira (padrão ISO). Quando DESATIVADO, começa no domingo (padrão americano e brasileiro).
Show Recurring Pattern ButtonshowRecurringPattern✓✓✓BooleantrueQuando ATIVADO, mostra um botão que permite selecionar rapidamente todos os dias úteis, fins de semana ou dias específicos da semana até uma data final.
Show Selection SummaryshowSelectedSummary✓✓✓BooleantrueQuando ATIVADO, exibe um resumo com quantas datas estão selecionadas e quais são.
Show Done Button in Inline ModeshowDoneButtonInline✓✓✓BooleanfalseQuando ATIVADO e com Show Inline ligado, mostra um botão Concluído que recolhe o calendário em um resumo.
Show In-Component ToastshowSuccessToast✓✓✓BooleanfalseMostra uma notificação de sucesso ou erro dentro do componente (necessário em sites do Experience Cloud, onde a notificação padrão não aparece). Também funciona em páginas de registro.
Show Add to Calendar After SavingshowAddToCalendar✓✓✓BooleanfalseDepois de salvar com sucesso, um botão Adicionar ao calendário baixa um arquivo de calendário (.ics) com um evento para cada registro recém-salvo. Ele abre no Outlook, no Google Agenda e no Calendário da Apple, e funciona para convidados do Experience Cloud. Registros só de data viram eventos de dia inteiro; registros com horário mantêm os horários.
Calendar File Location FieldcalendarLocationField✓Stringem brancoNome de API de um campo do objeto de recurso cujo valor vira o Local de cada evento no arquivo Adicionar ao calendário, como o endereço de uma sala, ou Name para a própria sala. Deixe em branco quando os recursos forem pessoas, como consultores ou técnicos: eles já aparecem no título do evento, e uma pessoa não é um lugar. Requer Show Add to Calendar After Saving.
Success Toast Message (optional)successToastMessage✓✓✓Stringem brancoMensagem personalizada opcional ao salvar com sucesso. Em branco, usa a padrão.
Regras de seleção
Requiredrequired✓✓✓BooleanfalseQuando ATIVADO, o usuário precisa selecionar pelo menos uma data antes de o fluxo avançar para a próxima tela.
Max Dates AllowedTambém aparece como Max Dates Per BookingmaxSelections✓✓✓Integer0Número máximo de datas que um usuário pode selecionar. 0 = ilimitado.
Max Time SlotsmaxTimeSlotSelection✓✓Integer0Número máximo de horários que um usuário pode selecionar no total (somando todas as datas). 0 = ilimitado.
Allow Past DatesallowPastDates✓✓✓BooleanDate: true; Date Time: true; Booking: falseQuando ATIVADO, os usuários podem selecionar qualquer data passada. Quando DESATIVADO, só hoje e datas futuras podem ser selecionadas.
Earliest Selectable DateTambém aparece como Earliest Bookable DateminDate✓✓✓Dateem brancoA data mais cedo que os usuários podem selecionar. As datas anteriores ficam em cinza. Para impedir reservas no mesmo dia, use Minimum Notice: ela acompanha o relógio.
Latest Selectable DateTambém aparece como Latest Bookable DatemaxDate✓✓✓Dateem brancoA data mais tarde que os usuários podem selecionar. As datas posteriores ficam em cinza.
Book Up To (Days Ahead)maxDaysAhead✓✓✓Integer0Uma janela de reserva móvel: a última data selecionável é hoje mais este número de dias, e ela avança todo dia. 0 significa sem limite. Quando Latest Selectable Date também está definida, vale a mais próxima das duas.
Minimum Notice (Hours)minNoticeHours✓✓✓Integer0Nada que comece antes de agora mais este número de horas pode ser escolhido ou salvo. Os dias anteriores ficam em cinza e, no dia do limite, os horários mais cedo fecham. A regra é verificada de novo ao salvar, então uma página deixada aberta durante a noite não consegue reservar dentro do prazo de antecedência. 0 significa sem mínimo.
Pre-Selected DatesdefaultDates✓✓✓String[]em brancoDatas que já vêm selecionadas quando o calendário abre. Informe no formato ISO (YYYY-MM-DD).
Blocked DatesdisabledDates✓✓✓String[]em brancoDatas específicas que não podem ser selecionadas (aparecem em cinza). Use para feriados ou datas bloqueadas. Informe no formato ISO (YYYY-MM-DD).
Only These Dates Are SelectableavailableDates✓✓✓String[]em brancoQuando definida, SOMENTE estas datas podem ser selecionadas: todas as outras ficam em cinza. Informe no formato ISO (YYYY-MM-DD). Útil quando as datas válidas vêm de outra fonte no seu fluxo.
Auto-Jump to First Available DateautoJumpToFirstAvailable✓✓✓BooleanfalseQuando ATIVADO e com 'Only These Dates Are Selectable' definida, o calendário abre automaticamente no mês da primeira data disponível.
Allow Whole-Day (No Times)allowWholeDayNoTimes✓✓BooleanfalseQuando ativado, selecionar uma data sem horários salva um registro de dia inteiro (bloqueia ou reserva o dia todo). Datas com horários são salvas como registros com horário.
Registros e salvamento
Parent Record IdrecordId✓✓✓Stringem brancoQuando definido, o componente funciona no modo de salvamento com clique e grava registros filhos vinculados a este registro pai. Passe um Id de registro vindo de uma saída de Obter registros ou de recordCreate (ex.: {!recordVar.Id}). Deixe em branco para usar o modelo padrão parser + loop + criar.
Static Parent Record IdstaticRecordId✓✓✓Stringem brancoCaso especial: fixe um Id de registro para prender este calendário a um único registro pai. Funciona em página de registro, página de aplicativo (exige Id fixo), página inicial (exige Id fixo) e site do Experience Cloud (exige Id fixo). Em uma página de registro, deixe em branco: o registro da página é injetado automaticamente.
Parent Record Id FieldparentRecordIdField✓✓✓Stringem brancoSó é necessário quando este componente fica na página de registro de um objeto DIFERENTE do pai. Informe o nome de API do campo lookup que aponta para o pai real. Deixe em branco quando o componente estiver na página do objeto pai.
Child Object API NameTambém aparece como Related Booking Object API Name; Child Object API Name (for preload)relatedObjectApiName✓✓✓Stringem brancoNome de API do objeto em que cada data selecionada é salva como registro. Exemplo: Appointment__c, Schedule_Entry__c. Obrigatório para o salvamento com clique.
Date Field API NameTambém aparece como Date Field API Name (for preload)dateFieldApiName✓✓✓Stringem brancoNome de API do campo Date no objeto filho que guarda a data selecionada. Exemplo: Event_Date__c, Start_Date__c
End Date Field API NameTambém aparece como End Date FieldendDateField✓✓✓Stringem brancoNome de API de um campo de data final no objeto filho. Quando definido, datas selecionadas seguidas são consolidadas em um único registro com data inicial e final, em vez de um registro por data. Exemplo: End_Date__c
Relationship Field API NameTambém aparece como Parent Record Relationship FieldrelationshipFieldApiName✓✓✓Stringem brancoNome de API do campo lookup no objeto filho que liga de volta ao registro pai. Exemplo: Account__c, Contact__c, Order__c
Load Existing DatesTambém aparece como Load Existing BookingspreloadExistingDates✓✓✓BooleantrueQuando ATIVADO, consulta os registros filhos existentes e mostra as datas deles no calendário ao carregar. Requer Child Object, Date Field e Relationship Field.
Existing Dates ModeTambém aparece como Existing Bookings ModepreloadMode✓✓✓StringeditableControla como as datas carregadas aparecem. Só vale quando Load Existing Dates está ATIVADO. Valores válidos: editable, readonly. Padrão: editable. editable = as datas vêm selecionadas e podem ser alteradas. readonly = as datas aparecem em cinza e não podem ser removidas. No Flow Builder isso aparece como um campo de texto livre, então digite exatamente um desses valores.
Save Button LabelsaveButtonLabel✓✓✓StringSalvarTexto do botão Salvar no modo de salvamento com clique. Exemplo: 'Salvar datas', 'Confirmar seleção'
Record Name FieldrecordNameField✓✓✓Stringem brancoNome de API de um campo de texto no objeto filho em que um rótulo do registro é salvo. Quando definido, aparece um campo de texto para os usuários informarem um rótulo.
Default Record NamedefaultRecordName✓✓✓Stringem brancoPreenche previamente o nome do registro. Os usuários podem alterá-lo na hora. Exemplo: 'Dia de folga', 'Reunião de equipe'.
Append Date/Time to Record NameTambém aparece como Append Date to Record NameappendDateTimeToName✓✓✓BooleantrueQuando ATIVADO, acrescenta a data ao nome do registro.
Status e edição
Status FieldstatusField✓✓✓Stringem brancoNome de API de um campo de lista de opções/status no objeto filho. Quando configurado, aparece uma lista de status ao lado do nome do registro para que os usuários atribuam um status ao selecionar datas. Obrigatório para Status Colors, Ignored Statuses, Status Field Label e Enable Edit Mode. Exemplo: Status__c
Status ColorsstatusColors✓✓✓Stringem brancoMapeamento separado por vírgulas de valores de status para cores hex. Formato: Value:#hex. As cores de status aparecem nas células de data do calendário. Requer Status Field. Exemplo: Confirmed:#22C55E, Tentative:#fbbf24, Pending:#60a5fa, Cancelled:#a1a8b5
Status Color DisplaystatusColorDisplay✓✓✓StringDate: calendar; Date Time: both; Booking: bothOnde as cores de status aparecem. No componente Dates, só 'calendar' está disponível: as células de data do calendário recebem a cor do seu status.
Ignored StatusesTambém aparece como Ignored StatuseshideBookingsWithStatus✓✓✓Stringem brancoLista separada por vírgulas de valores de status cujos registros ficam ocultos no calendário. Os registros ocultos não são desenhados, mas continuam no Salesforce. Requer Status Field. Exemplo: Cancelled, Rejected
Selectable Statuses (Status Picker)selectableStatuses✓✓✓Stringem brancoValores de status separados por vírgulas que o seletor de status da reserva pode definir. Deixe em branco para permitir todos (uso interno). Ex.: 'Scheduled' para um site de clientes. Quando há exatamente um status selecionável, ele é escolhido automaticamente e o seletor fica oculto. Requer Status Field.
Second Picklist FieldsecondStatusField✓✓✓Stringem brancoNome de API opcional de uma segunda lista de opções que o usuário escolhe ao salvar (ex.: Reason__c). Não tem cores: as cores do calendário são do statusField. Inclua-a em Hover Popover Fields para exibi-la. Funciona em fluxos, no App Builder e em Communities.
Second Picklist LabelsecondStatusFieldLabel✓✓✓Stringem brancoRótulo de exibição opcional da segunda lista suspensa. Se ficar em branco, o componente gera um nome legível a partir do nome de API do campo.
Selectable Second-Picklist ValuesselectableSecondStatuses✓✓✓Stringem brancoLista opcional, separada por vírgulas, dos valores permitidos para a segunda lista de opções. Deixe em branco para permitir todos. Quando há exatamente um, ele é escolhido automaticamente e o seletor fica oculto.
Status Field LabelstatusFieldLabel✓✓✓Stringem brancoRótulo de exibição opcional da lista de status mostrada aos usuários finais. NÃO informe um nome de API de campo aqui: é apenas um rótulo de exibição. Se ficar em branco, o componente gera um nome legível a partir do nome de API do Status Field.
Hover Popover FieldshoverFields✓✓✓Stringem brancoLista separada por vírgulas de nomes de API de campos exibidos ao passar o mouse sobre uma data do calendário que tem registros. Os campos são consultados no Child Object. Aceita campos de relacionamento. Só mostra dados quando os registros existentes são carregados (via Load Existing Dates). Exemplo: Name, Status__c, Notes__c. Deixe em branco para desativar os cartões ao passar o mouse.
Enable Edit ModeenableEditMode✓✓✓BooleantrueQuando ATIVADO, os usuários podem clicar em datas existentes para editar a data ou o status, ou excluir o registro. Requer que Status Field E Status Colors estejam configurados.
Edit Button LabeleditButtonLabel✓✓✓Stringem brancoRótulo personalizado do botão que liga o modo de edição. Se ficar em branco, o padrão é 'Editar Datas' (Edit Dates).
Edit Record DisplayeditRecordDisplay✓✓✓Stringem brancoPalavras-chave separadas por vírgulas que definem quais campos aparecem na lista de registros do modo de edição e em que ordem. Palavras-chave: name, status, time, date, resource. Padrão quando em branco: name, status, time. Exemplo: name, date, status
Horários
Time Display ModetimeDisplayMode✓StringgridComo o horário é apresentado. Valores válidos: grid, dropdown. Padrão: grid. grid = grade visual de horários em que os usuários clicam ou arrastam para escolher blocos de horário. dropdown = seletores de hora lightning-input. Use Allow Different Times Per Date para escolher entre seletores compartilhados ou por data no modo dropdown. No Flow Builder isso aparece como texto livre, então digite exatamente um desses valores.
Time Interval (Minutes)Também aparece como Time Slot Interval (Minutes)timeInterval✓✓Integer30Minutos entre os horários. Qualquer número inteiro funciona; 15, 30 ou 60 minutos são os mais comuns. Exemplo: 30 mostra 9:00, 9:30, 10:00.
Earliest TimeminTime✓String09:00Hora mais cedo exibida no seletor de horário. Use o formato de 24 horas (HH:mm). Exemplos: 08:00 = 8h, 13:00 = 13h. Deixe em branco para começar à 0h.
Latest TimemaxTime✓String18:00Hora mais tarde exibida no seletor de horário. Use o formato de 24 horas (HH:mm). Exemplos: 17:00 = 17h, 20:00 = 20h. Deixe em branco para terminar às 23h30.
Start Time FieldTambém aparece como Start Time Field API NamestartTimeField✓Stringem brancoNome de API de um campo Time no objeto filho para a hora inicial do horário. Exemplo: Start_Time__c
End Time FieldTambém aparece como End Time Field API NameendTimeField✓Stringem brancoNome de API de um campo Time no objeto filho para a hora final do horário. Exemplo: End_Time__c
Allow Different Times Per DateallowDifferentTimes✓✓BooleanfalseQuando ATIVADO e com Time Display Mode em 'dropdown', cada data ganha seu próprio seletor de horário (agrupado por semana). Quando DESATIVADO, todas as datas compartilham um horário. Não tem efeito quando Time Display Mode é 'grid'.
Enable End TimeenableEndTime✓BooleantrueQuando ATIVADO, mostra uma lista separada de hora final ao lado da hora inicial. Gera startTime e endTime na saída JSON. Só vale no modo dropdown (Time Display Mode = 'dropdown'). Não tem efeito no modo grid.
Group Time Slots by PeriodgroupTimeSlotsByPeriod✓✓BooleanfalseQuando ATIVADO, os horários são agrupados nas seções Manhã, Tarde e Noite. Quando DESATIVADO (padrão), mostra uma grade simples. Só vale quando Time Display Mode é 'grid'.
Time Grid OnlytimeGridOnly✓✓BooleanfalseQuando ATIVADO, oculta totalmente o calendário e mostra SOMENTE a grade de horários para uma data implícita. O usuário escolhe os horários; os registros são salvos no registro hospedeiro pelo salvamento com clique (sem etapa de escolha de data). A data implícita vem de Time Grid Date; se não houver, de Time Grid Date Field; se não, é hoje.
Time Grid DatetimeGridDate✓✓Stringem brancoData ISO explícita opcional (YYYY-MM-DD) para a data implícita quando Time Grid Only está ATIVADO. Tem a maior prioridade. Deixe em branco para ler de Time Grid Date Field ou usar hoje.
Time Grid Date FieldtimeGridDateField✓✓Stringem brancoNome de API opcional de um campo Date no registro hospedeiro de onde ler a data implícita quando Time Grid Only está ATIVADO (contexto de página de registro). Só é usado quando Time Grid Date está em branco. Exemplo: Appointment_Date__c
Disable Time Slot Grid (Full-Day Mode)disableTimeSlotGrid✓BooleanfalseQuando ATIVADO, oculta a grade de horários em reservas de dia inteiro, em que só a data importa. Quando DESATIVADO (padrão), mostra a grade de horários para reservas detalhadas por horário.
Recursos e capacidade
Resource Object API NameresourceObjectApiName✓Stringem brancoNome de API do objeto que guarda os recursos reserváveis. Cada registro = um recurso reservável exibido na lista suspensa. Exemplo: Room__c, Equipment__c, Vehicle__c, Staff__c
Resource Name FieldresourceNameField✓StringNameNome de API do campo com o nome de exibição do recurso. Normalmente 'Name'.
Resource Filter Field (optional)resourceFilterField✓Stringem brancoNome de API de um campo do objeto de recurso usado para limitar quais recursos aparecem no seletor. Use junto com Resource Filter Value. Use ';' para combinar vários campos (E). Exemplos: 'Active__c' (um campo booleano), 'Type__c' (uma lista de opções), 'Type__c;Building__c' (DOIS campos combinados com E). Deixe em branco para mostrar todos os recursos.
Resource Filter Value (optional)resourceFilterValue✓Stringem brancoValor(es) a que o campo de filtro deve ser igual. ',' entre valores de UM campo = OU (cláusula IN). ';' entre valores = E entre vários campos (precisa ter a mesma quantidade de campos de Resource Filter Field). Exemplos: 'true': Active=true. 'Conference Room': Type=Conference Room. 'North,South': Building IN North ou South. 'Conference Room;North': Type=Conference Room E Building=North. 'Conference Room;North,South': Type=Conference Room E Building IN North ou South.
Business Hours Start FieldbusinessHoursStartField✓Stringem brancoNome de API do campo Time no objeto de recurso que define quando ele fica disponível a cada dia. Exemplo: Business_Hours_Start__c (definido como 08:00:00.000Z para 8h). Deixe em branco para usar horários em todo o intervalo configurado.
Business Hours End FieldbusinessHoursEndField✓Stringem brancoNome de API do campo Time no objeto de recurso que define o último horário disponível a cada dia. Exemplo: Business_Hours_End__c (definido como 18:00:00.000Z para 18h).
Allow Multiple ResourcesTambém aparece como Allow Booking Multiple ResourcesallowMultipleResources✓BooleanfalseQuando ATIVADO, os usuários podem selecionar vários recursos com caixas de seleção e reservar todos ao mesmo tempo. A grade mostra só os horários disponíveis em TODOS os recursos selecionados. Exemplo: reservar uma sala E um projetor ao mesmo tempo.
Allow No ResourceTambém aparece como Allow Save Without Picking a ResourceallowNoResource✓BooleanfalseQuando ATIVADO, os usuários podem salvar sem escolher um recurso: o lookup de recurso do registro salvo fica nulo. Pensado para quem registra fechamentos ou bloqueios, em que um recurso em branco significa 'vale para todos'. Os calendários que leem fechamentos com filtro por recurso (blockedDatesResourceField) tratam um recurso nulo como válido para a região inteira, então, junto com allowNoResource, isso entrega o modelo de 'consultor opcional'. Deixe DESATIVADO (padrão) nas reservas normais, em que sempre é preciso escolher um recurso.
Booking Object API NameresourceBookingObject✓Stringem brancoNome de API do objeto em que os registros de reserva são criados. Um registro por data por recurso. Exemplo: Room_Booking__c, Equipment_Reservation__c
Booking Date FieldbookingDateField✓Stringem brancoNome de API do campo Date no objeto de reserva. Precisa ser do tipo Date (não DateTime). Exemplo: Booking_Date__c
Booking Resource FieldbookingResourceField✓Stringem brancoNome de API do campo lookup no objeto de reserva que aponta para o recurso. Exemplo: Room__c (lookup de Room_Booking__c para Room__c)
Booking Start Time FieldbookingStartTimeField✓Stringem brancoNome de API do campo Time no objeto de reserva para a hora inicial. Exemplo: Start_Time__c. Deixe em branco para reservas por data, sem horários.
Booking End Time FieldbookingEndTimeField✓Stringem brancoNome de API do campo Time no objeto de reserva para a hora final. Exemplo: End_Time__c. O sistema calcula a hora final com base nos horários selecionados.
Book Button LabelresourceBookButtonLabel✓StringReservar (Book)Texto do botão que confirma a reserva. Exemplo: 'Reservar agora', 'Agendar', 'Confirmar reserva'
Capacity FieldcapacityField✓Stringem brancoNome de API de um campo Number no objeto de recurso que define o máximo de reservas simultâneas por horário. Quando definido, os horários mostram um selo X/Y e ficam disponíveis até lotar. Ideal para salas de treinamento, mesas compartilhadas ou inscrições em aulas. Deixe em branco para uma reserva por horário. Exemplo: Capacity__c
Capacity Aggregation (multi-resource)capacityAggregation✓StringCombinedSÓ NO MODO DE RESERVA COM CAPACIDADE (requer Capacity Field). Controla como a capacidade X/Y é calculada quando vários recursos são selecionados. COMBINED (padrão) soma reservas E capacidades: melhor quando cada recurso é um estoque independente (ex.: 4 registros em 4 salas com capacidade 5 cada = 4/20). DISTINCT conta eventos únicos (registros com a mesma data + hora inicial + hora final em recursos diferentes contam como UM) e usa a MAIOR capacidade individual: melhor quando um evento ocupa vários recursos ao mesmo tempo (4 registros em 4 salas = 1/5).
Show Availability CountshowAvailabilityCount✓BooleantrueQuando ATIVADO, mostra detalhes de disponibilidade no painel de recursos (ex.: '3/5 dias disponíveis'). Ajuda os usuários a escolher o melhor recurso antes de reservar. Requer Resource Object API Name configurado.
Conflitos
Conflict BehaviorconflictBehavior✓✓StringblockControla o que acontece quando as datas selecionadas têm conflito de horário com registros existentes. 'block' (padrão): o salvamento é bloqueado e as datas em conflito são destacadas. 'skip': o salvamento segue, mas as datas em conflito são puladas. 'allow': sem verificação de conflito. Só vale no modo de grade compartilhada (Time Display Mode='grid' + Allow Different Times Per Date=DESATIVADO).
Buffer Between Bookings (Minutes)bufferMinutes✓✓Integer0Minutos mantidos livres depois de cada reserva existente para limpeza ou preparação, por recurso no Booking. Um horário que começaria dentro desse intervalo conta como ocupado em todo lugar que mostra disponibilidade (grade de horários, contagem de capacidade, arrasto na Semana) e ao salvar, e o Conflict Behavior decide o que acontece. Exemplo: 15 deixa quinze minutos entre reuniões na mesma sala.
Conflict Look-Ahead DaysconflictLookAheadDays✓✓Integer360Quantos dias à frente verificar conflitos de horário e carregar disponibilidade. Padrão: 360. Reduza para ganhar desempenho em objetos com muitos registros.
Sub-blocos
Consolidate Time SpanconsolidateTimeSpan✓✓BooleanfalseQuando ATIVADO, os horários selecionados saem como um único intervalo, do início do primeiro ao fim do último. As lacunas entre eles ficam laranja automaticamente e são registradas como sub-blocos. Use em escalas em que você precisa do turno inteiro (ex.: 9h às 17h) e, separadamente, das pausas. Só vale no modo grid.
Sub-Block Button LabelsubBlockModeButtonLabel✓✓Stringem brancoQuando definido, adiciona um botão que permite marcar horários manualmente como sub-blocos (laranja). Útil para sub-blocos na borda do turno. Deixe em branco para usar só o laranja automático. Exemplo: 'Marcar como pausa', 'Marcar como almoço'. Requer Consolidate Time Span ATIVADO.
Show Sub-Block Toggle ButtonshowSubBlockButton✓✓BooleanfalseQuando ATIVADO, mostra o botão de sub-bloco no cabeçalho da grade de horários. Requer Consolidate Time Span ATIVADO e Sub-Block Button Label definido.
Sub-Block Object API NamesubBlockObjectApiName✓✓Stringem brancoNome de API do objeto filho para os registros de sub-bloco. Exemplo: Work_Break__c. Requer Consolidate Time Span ATIVADO e o modo de salvamento com clique (Parent Record Id definido).
Sub-Block Parent Lookup FieldsubBlockParentLookupField✓✓Stringem brancoCampo lookup no objeto de sub-bloco que liga ao registro pai. Exemplo: Shift__c. Obrigatório quando Sub-Block Object está definido.
Sub-Block Date FieldsubBlockDateField✓✓Stringem brancoCampo de data no objeto de sub-bloco. Exemplo: Break_Date__c. Obrigatório quando Sub-Block Object está definido.
Sub-Block Start Time FieldsubBlockStartTimeField✓✓Stringem brancoCampo de hora inicial no objeto de sub-bloco. Exemplo: Break_Start__c. Obrigatório quando Sub-Block Object está definido.
Sub-Block End Time FieldsubBlockEndTimeField✓✓Stringem brancoCampo de hora final no objeto de sub-bloco. Exemplo: Break_End__c. Obrigatório quando Sub-Block Object está definido.
Sub-Block Name FieldsubBlockNameField✓✓Stringem brancoCampo de texto no objeto de sub-bloco para guardar um rótulo. Exemplo: Break_Name__c. Obrigatório quando Sub-Block Object está definido.
Datas bloqueadas
Blocked Dates ObjectblockedDatesSourceObject✓✓✓Stringem brancoNome de API de um objeto a consultar para obter as datas que não podem ser selecionadas. Exemplo: Public_Holiday__c
Blocked Dates Date FieldblockedDatesDateField✓✓✓Stringem brancoNome de API do campo Date no objeto de datas bloqueadas. Requer Blocked Dates Object definido.
Blocked Dates Start Time FieldblockedDatesStartTimeField✓✓✓Stringem brancoOpcional: campo Time no objeto de bloqueio que marca o INÍCIO de um fechamento de parte do dia. Quando os campos de hora inicial e final estão definidos e o registro de bloqueio tem os dois preenchidos, só esse intervalo fica fechado na data (o resto continua disponível). Deixe em branco para bloquear o dia inteiro.
Blocked Dates End Time FieldblockedDatesEndTimeField✓✓✓Stringem brancoOpcional: campo Time no objeto de bloqueio que marca o FIM de um fechamento de parte do dia. Funciona junto com Blocked Dates Start Time Field.
Blocked Dates Resource FieldblockedDatesResourceField✓✓✓Stringem brancoOpcional: restringe um fechamento existente a um recurso. Informe o nome de API de um campo lookup/de recurso no objeto de bloqueio; quando o recurso do registro de bloqueio coincide com o recurso selecionado no calendário, só esse recurso fica fechado no intervalo. Em branco, cada fechamento vale para TODOS os recursos (a região inteira). Quem liga o bloqueio é o Blocked Dates Source Object, não este campo. Só faz sentido com reserva de recursos.
Blocked Dates Filter FieldblockedDatesFilterField✓✓✓Stringem brancoOpcional: campo de filtro no objeto de bloqueio. Dois modos: (a) modo valor: quando Blocked Dates Filter Value está definido, limita os registros de bloqueio por <campo> = <valor> (ex.: Status__c = Cancelled). (b) modo escopo do pai: quando Filter Value está em branco, trata este campo como um lookup para o registro atual e filtra por <campo> = recordId. Deixe em branco para bloquear globalmente.
Blocked Dates Filter ValueblockedDatesFilterValue✓✓✓Stringem brancoOpcional: valor para filtrar o Blocked Dates Filter Field. Quando definido, os registros de bloqueio precisam atender a <filterField> = <filterValue> (ex.: Status__c = Cancelled). Permite que várias categorias de bloqueio convivam na mesma tabela: cada calendário escolhe qual categoria se aplica.
Saídas do fluxo
Output Date Ranges as JSONoutputAsJson✓✓BooleanfalseQuando ATIVADO, preenche a saída Date Ranges JSON com datas seguidas agrupadas em intervalos. Necessário se você quiser usar a ação MultiDatePickParser para percorrer os intervalos em um loop.
Selected Dates (Output)selectedDates✓✓String[]em brancoSAÍDA: array com todas as datas selecionadas no formato ISO (YYYY-MM-DD). Use no seu fluxo para criar registros ou passar para a próxima tela.
Date Ranges JSON (Output)selectedDateRangesJson✓✓Stringem brancoSAÍDA: JSON de datas seguidas agrupadas em intervalos. Só é preenchida quando 'Output Date Ranges as JSON' está ATIVADO. Passe para a MultiDatePickParser para percorrer em um loop no fluxo.
Dates With Times JSON (Output)selectedDatesWithTimesJson✓Stringem brancoSAÍDA: string JSON com cada data e o horário selecionado. Passe para a MultiDatePickParser para percorrer em um loop no seu fluxo.
Sub-Blocks JSON (Output)subBlocksJson✓Stringem brancoSAÍDA: JSON das janelas de sub-bloco (lacuna/pausa) por data. Só é preenchida quando Consolidate Time Span está ATIVADO. Use em um loop do fluxo para criar registros filhos.
Successful Bookings Count (Output)bookingSuccessCount✓Integerem brancoSAÍDA: número de registros de reserva criados com sucesso. Use no seu fluxo para mostrar uma mensagem de confirmação.
Conflict Dates (Output)bookingConflictDates✓String[]em brancoSAÍDA: lista das datas em que não foi possível criar reservas por conflito com reservas existentes.

16. Segurança e acessibilidade

  • Aprovado no Security Review do Salesforce AppExchange.
  • 100% nativo. Seus dados ficam na sua organização Salesforce. Sem servidores externos, sem callouts. Veja Confiança e segurança.
  • Sempre com as suas permissões. Cada leitura e cada salvamento rodam com o acesso do próprio usuário, então permissões de objeto, segurança em nível de campo e compartilhamento valem em cada registro.
  • Acessível. WCAG 2.1 AA, testado com axe-core. VPAT 2.5 completo.
  • 9 idiomas: inglês, espanhol, francês, alemão, japonês, hindi, português (Brasil), italiano e chinês (simplificado).

17. Dúvidas ou bugs?

Encontrou uma lacuna neste guia ou algo quebrado? Escreva para support@multidatepick.com.

Pronto para ver na sua organização?

US$ 20 por usuário por mês, todos os recursos incluídos, teste grátis de 30 dias. Em breve no Salesforce AppExchange.