Criando Calendários

Como criar e configurar calendários na Unefesta.

O formulário de criação (Calendários → Criar Novo Calendário) é uma única tela com seções. Não há wizard de páginas — preencha na ordem abaixo e clique em Criar calendário.

Passo a passo (todas as seções)

1. Identificação

  • Nome — ex.: “Agenda Ana — Buffet”, “Encomendas confeitaria”
  • Cor — ajuda a identificar na lista
  • Fuso horário padrão — obrigatório (ex.: America/Sao_Paulo)

2. Antecedência mínima

  • Permitir reservar após X + Unidade (Horas / Dias)
  • Tempo mínimo entre “agora” e a primeira data/hora reservável
  • Em encomendas, combina com produção + frete — vale o maior prazo (produção usa dias de expediente do calendário; frete usa seg–sex)

3. Estilo do calendário

Escolha o modo (cards na tela):

Opção na tela Ideia
Carrinho exclusivo (padrão) 1 opção ocupa o período no carrinho; capacidade entre pedidos = máximo (padrão 1)
Carrinho compartilhado Itens do mesmo pedido = 1 vaga

Checkbox equivalente: Permitir vários itens do mesmo pedido no mesmo período.

⚠️ Só vale para produtos/serviços com calendário habilitado e sem estoque. Com estoque, a disponibilidade continua independente por produto. Kits não selecionam calendário — herdam o comportamento dos componentes.

Em ambos os estilos aparecem:

  • Quem define a data
    • Cliente escolhe a data na grade — grade após o frete (quando houver)
    • Sistema agenda a primeira data disponível (você pode alterar depois) — realoque em Pedidos
  • Máximo de pedidos diferentes por período
    • Exclusivo e compartilhado: vazio = ilimitado; padrão ao criar/desligar shared = 1
    • Exclusivo com vazio ou > 1: confirmação ao salvar
    • Compartilhado: valores > 1 permitem vários clientes no mesmo período

Há botão Como funciona? e Prévia (simulação) nesta seção — a demo de vagas por dia vale para exclusivo e compartilhado.

Detalhes: Encomendas e disponibilidade.

Ops do vendedor: as filas (Agenda de Encomendas, Agenda de Serviços, Separação, Despacho) seguem o tipo do item (sale / service / rent), não esta opção do calendário.

4. Geração de horários disponíveis

  • Início flexível — horários de hora em hora, com sobreposição
  • Início sequencial — um evento após o outro, sem sobreposição

A tela mostra exemplos com duração de 2 h. Detalhes: Flexível vs Sequencial.

5. Horários de funcionamento

  • Faixas de atendimento: Início / Fim + dias da semana (Dom…Sáb)
  • É obrigatório marcar ao menos um dia em alguma faixa (senão a grade não abre)
  • Dia inteiro: início 00:00 e fim 23:59
  • Resumo na tela: Aberto: / fechados
  • Evite faixas sobrepostas no mesmo dia (o formulário valida)
  • Fechamos em feriados — feriados nacionais e extras ficam indisponíveis (como fora do expediente) e não contam na produção

Com calendário no produto, esses dias também entram na conta do prazo de produção.

6. Reservas com duração em dias

  • Permitir reserva com dias bloqueados no meio
  • Só faz sentido com duração em dias: o período pode atravessar domingo/dia fechado no meio; o primeiro e o último dia precisam estar livres

7. Feriados extras

  • Datas adicionais fechadas (data + nome opcional)
  • Com Fechamos em feriados ativo, nacionais e estas datas ficam indisponíveis
  • Feriados nacionais são reconhecidos automaticamente — não precisa cadastrá-los aqui

Detalhes: Bloqueio semanal e feriados.

8. Produtos / Serviços vinculados (opcional)

Na criação/edição: seção Produtos / Serviços vinculados.

  • Lista produtos/serviços da loja; filtro Apenas com calendário habilitado
  • Vincular adiciona este calendário aos já ligados no item — não substitui
  • Itens sem calendário habilitado passam a ter calendário habilitado ao vincular
  • Mostra se controla estoque e quais calendários já estão ligados
  • Kits não se vinculam aqui: herdam os calendários dos componentes (texto na própria tela)

Ao criar calendário pelo modal dentro do formulário do produto, esta seção fica oculta (o produto já recebe o vínculo).

Clique em Criar calendário para salvar.

Depois de criar: ligar no produto/serviço

Duração, dias bloqueados e “Habilitar calendário” ficam no produto/serviço, não no calendário.

  1. Acesse o produto/serviço
  2. Marque Habilitar calendário
  3. Selecione o(s) calendário(s) (ou use Criar Novo Calendário no próprio formulário)
  4. Configure Duração (fixa ou mín/máx; horas ou dias)
  5. Opcional: Dias da semana bloqueados / Exceto feriados
  6. Defina se usa estoque (muda o impacto das reservas — ver Guia de configuração)
  7. Salve

Kits

Kits não têm seletor de calendário. calendarEnabled (e estoque) são derivados da composição: se algum componente tiver calendário habilitado, o kit também. A disponibilidade do kit exige que todos os componentes estejam disponíveis no mesmo período. Veja Estoque e disponibilidade.

Excluindo um calendário

Você pode excluir (soft delete) um calendário da listagem:

  1. Na tela de calendários, clique em Excluir no card do calendário desejado
  2. Confirme a ação no modal

O que acontece ao excluir

  • O calendário sai da listagem e não pode mais ser editado
  • Todos os produtos/serviços vinculados são desvinculados automaticamente
  • Kits não precisam “desvincular”: nunca tiveram calendário próprio
  • Os dados do calendário (eventos, histórico) são preservados internamente
  • A ação não apaga o calendário do banco de dados

Restrições

  • ⚠️ Calendários sincronizados com o Google Agenda não podem ser excluídos. Você precisa cancelar a sincronização antes de excluir.
  • Apenas o proprietário do calendário pode excluí-lo (calendários compartilhados não exibem o botão).

Depois de criar

  • Revise se o estilo (exclusivo vs pedido compartilhado) combina com o negócio (e com o tipo sale/service/rent)
  • Teste na vitrine: frete → data / "a partir de…"
  • Em encomenda "sistema agenda", confira a realocação em Pedidos
  • Em kits, configure calendário/duração nos componentes, não no kit