Em breve no Salesforce AppExchange

Como criar um seletor de horários no calendário do Salesforce

O Salesforce oferece um seletor de data e um campo de hora. Ele não oferece uma grade de horários selecionáveis. Veja o que um seletor de horários de verdade exige no Salesforce e como ter um sem precisar construí-lo.

Publicado em 27 de junho de 2026 · Atualizado em 21 de outubro de 2026 · MultiDatePick

Um seletor de horários é uma interface bem específica: um calendário em que você escolhe o dia e, embaixo, uma grade que divide esse dia em intervalos reserváveis, com os ocupados claramente indisponíveis. Todo mundo reconhece, porque todo site de agendamento da internet usa. O Salesforce não traz um pronto.

Demo de reserva de recursos no Salesforce: escolher um consultor, informar o cliente, escolher uma data e um horário livre de 30 minutos e salvar a solicitação
Escolha um consultor, um dia e um horário livre. Horários ocupados nunca são oferecidos.
Demo animada do componente DateTime do MultiDatePick no Salesforce: dar nome a uma agenda de onboarding de novos funcionários, arrastar de segunda a quinta, arrastar das 09:00 às 12:00 na grade de horários compartilhada e salvar um turno por dia
Arraste por quatro dias, arraste das 09:00 às 12:00 e salve um registro por dia.

O que o Salesforce oferece de fato

Um campo Data/Hora padrão aparece como uma entrada de data mais uma lista de horas. É um controle de formulário e não faz ideia do que mais está reservado. Nada impede o usuário de escolher um horário que já foi tomado, porque o campo não sabe que outros registros existem. Essa verificação acontece depois, numa regra de validação ou num fluxo, quando o usuário já fez a escolha.

Essa é a lacuna. Um seletor de horários consulta os registros existentes antes de o usuário escolher e só oferece o que está livre.

O que um seletor de horários de verdade precisa fazer

RequisitoCampos padrãoCom o MultiDatePick
Dividir o dia em intervalosNão existe o conceito de intervaloQualquer intervalo (o comum é 15, 30 ou 60 minutos)
Conhecer o expedienteQualquer horário é válidoHora mínima e máxima, ou o horário comercial de cada recurso
Mostrar o que está ocupadoNada é mostradoReservas existentes desenhadas na grade
Várias pessoas por horárioImpossível de expressarCapacidade com um indicador ao vivo de reservados sobre a capacidade
Horários diferentes em dias diferentesUm campo, um valorPermitir Horários Diferentes (Allow Different Times Per Date)
Impedir conflito ao salvarSó com lógica personalizadaComportamento de Conflito: bloquear, ignorar ou permitir

Por que construir sozinho dá mais trabalho do que parece

Desenhar a grade é a parte fácil. Estas são as partes que ninguém coloca no escopo:

Consultar as reservas

De forma eficiente, sem estourar os limites do governador quando alguém abre uma visualização de dois meses.

Cálculo de sobreposição

Fica complicado assim que as reservas podem ter durações diferentes.

Fusos horários

O fuso horário do usuário e o do registro nem sempre são o mesmo.

Condições de corrida

Duas pessoas olhando para o mesmo horário livre no mesmo instante.

Segurança em nível de campo

O componente precisa respeitar o que o usuário pode ver.

Acessibilidade

Uma grade de divs clicáveis não é navegável por teclado por padrão.

A acessibilidade é o que exige mais cuidado. Uma grade de horários precisa de semântica de grade ARIA correta, navegação com as setas e um estado transmitido por mais do que a cor. É a parte que a maioria das soluções internas pula, e a parte que uma revisão de compras pergunta.

Agrupar os horários para que dê para percorrê-los

Um dia das 9h às 17h em intervalos de 15 minutos tem 32 horários. Numa lista corrida, isso vira um paredão. Agrupar por período (manhã, tarde, noite) transforma tudo em três blocos curtos. Isso ajuda principalmente quando quem escolhe é um cliente no celular.

Grade de seletor de horários no calendário do Salesforce com horários disponíveis e indisponíveis agrupados por período
Uma grade de horários com os ocupados marcados, agrupada para a lista continuar fácil de ler.

Quando você nem precisa do calendário

Às vezes a data já está implícita. Na página de registro de um agendamento que já tem data, um calendário mensal é redundante. Somente grade de horários tira o calendário e mostra apenas a grade daquela data, vinda de um campo do registro da página ou definida diretamente.

As configurações que montam o seletor

Cada uma é um campo no Assistente de Configuração. Nada aqui exige código.

ConfiguraçãoO que fazNome da API
Intervalo de Horário (Time Slot Interval (Minutes))A duração de cada horário. Qualquer número de minutos.timeInterval
Hora Mínima / Hora Máxima (Earliest Time / Latest Time)A janela que a grade cobre no componente Dates & Times.minTime, maxTime
Campo de Início / Fim do Horário Comercial (Business Hours Start / End Field)O horário de trabalho de cada recurso no componente Booking.businessHoursStartField
Campo de Capacidade (Capacity Field)Quantas reservas um recurso comporta por horário.capacityField
Agrupar Horários por Período (Group Time Slots by Period)Seções Manhã, Tarde e Noite.groupTimeSlotsByPeriod
Comportamento de Conflito (Conflict Behavior)Bloquear, ignorar ou permitir um conflito ao salvar.conflictBehavior
Somente grade de horários (Time Grid Only)Só a grade de horários, para uma data implícita.timeGridOnly
Um seletor de horários que você configura. O componente Dates & Times e o componente Resource Booking trazem um. Eles funcionam em páginas de registro, páginas de aplicativo, sites do Experience Cloud e dentro de fluxos de tela.

Perguntas frequentes

O que é um seletor de horários em calendário?

Um calendário em que você escolhe o dia e, logo abaixo, uma grade divide esse dia em intervalos reserváveis. Os horários já ocupados aparecem como indisponíveis, então as pessoas só escolhem horários livres.

O Salesforce tem um seletor de horários?

Não para os seus próprios objetos. Um campo Data/Hora padrão é uma entrada de data mais uma lista de horas, e ele não enxerga outros registros. O MultiDatePick adiciona um seletor de horários que lê as reservas existentes quando o calendário carrega e só oferece o que está livre.

Os horários podem ter qualquer duração?

Sim. O intervalo pode ser qualquer número de minutos. O comum é 15, 30 ou 60 minutos, e um horário de entrevista de 45 minutos funciona do mesmo jeito.

Preciso de Apex ou de um desenvolvedor para adicionar um seletor de horários?

Não. O Assistente de Configuração grava a configuração, e o componente vai para uma página de registro, página de aplicativo, site do Experience Cloud ou fluxo de tela (Screen Flow) bastando definir o Config Name. Não há código para escrever.

Seu seletor de horários no Salesforce, pronto para configurar

Escolha um horário livre na demo ao vivo e depois siga os Primeiros passos para colocar um na sua organização.

  • US$ 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