Schedule
Um calendário com visões de mês, semana, dia, agenda e linha do tempo por recurso, arrastar para mover e redimensionar, eventos recorrentes e qualquer fuso.
Importação
import { Schedule } from '@vitral/vue';Semana
O horário comercial fica sombreado; eventos sobrepostos dividem a coluna; a linha vermelha é o agora. A daily se repete em todo dia útil, a folha de pagamento no primeiro e no último dia do mês.
Mês
Os eventos atravessam os dias que ocupam; um dia cheio mostra “+N more”, que abre a lista completa.
Agenda
As próximas duas semanas como lista, dia a dia.
- sexta-feira, 25 de setembro de 2026
- sábado, 26 de setembro de 2026
- domingo, 27 de setembro de 2026
- segunda-feira, 28 de setembro de 2026
- terça-feira, 29 de setembro de 2026
- quarta-feira, 30 de setembro de 2026
- quinta-feira, 1 de outubro de 2026
- sexta-feira, 2 de outubro de 2026
- segunda-feira, 5 de outubro de 2026
- terça-feira, 6 de outubro de 2026
- quarta-feira, 7 de outubro de 2026
- quinta-feira, 8 de outubro de 2026
Linha do tempo por recurso
Salas nas linhas e o tempo na horizontal. Arraste uma reserva para outra sala, ou pressione Alt com Up e Down.
Os mesmos instantes, lidos em outro lugar
Três instantes fixos, desenhados no fuso que for escolhido. Nada nos eventos muda — só a hora e o dia em que a grade os coloca, então o build noturno passa para o dia anterior ou para o seguinte conforme o lugar de onde se olha. Clique num evento: o que volta é o instante que ele sempre foi.
Barra de ferramentas, conteúdo e reversão personalizados
A barra de ferramentas e o conteúdo dos eventos são slots. O horário vai das 08:00 às 18:00 em intervalos de 15 minutos, e uma mudança para o fim de semana é revertida.
API
Lido de packages/vue/src/components/Schedule/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| events | ScheduleEvent[] | — |
| resources | ScheduleResource[] | Linhas da visão de linha do tempo. |
| views | ScheduleViewName[] | As visões que o seletor oferece, em ordem. O padrão é mês, semana, dia e agenda, mais a linha do tempo quando há recursos. |
| toolbar | boolean | Mostrado depois do título; defina como false para ocultar a barra de ferramentas embutida. O padrão é true. |
| timeZone | string | O fuso em que o calendário é desenhado — um nome IANA como `'America/Sao_Paulo'`. Os eventos mantêm os instantes que receberam; só muda em que hora e em que dia são mostrados, e toda data que a agenda emite volta a ser um instante. Um evento de dia inteiro é uma data, não um instante, então fica onde foi posto. |
| slotDuration | number | — |
| timelineSlotDuration | number | Minutos que cada coluna da linha do tempo abrange. O padrão é 60. |
| snapDuration | number | Minutos que um arrasto ou uma tecla move. O padrão é 15. |
| minTime | string | O primeiro horário mostrado, `'HH:mm'`. O padrão é `'00:00'`. |
| maxTime | string | O último horário mostrado, `'HH:mm'`. O padrão é `'24:00'`. |
| scrollTime | string | Até onde as visões de semana e dia abrem roladas. O padrão é `'08:00'`. |
| businessHours | ScheduleBusinessHours | ScheduleBusinessHours[] | false | Sombreia o tempo fora dele; false não sombreia nada. O padrão é segunda a sexta, 09:00–17:00. |
| firstDayOfWeek | number | 0 = domingo; o padrão é o `firstDayOfWeek` do locale. |
| hour12 | boolean | Força um relógio de 12 ou 24 horas; o padrão vem do locale. |
| editable | boolean | Os eventos podem ser arrastados e redimensionados. O padrão é true. |
| selectable | boolean | É possível arrastar sobre horário vazio para escolher um intervalo (`select`). O padrão é true. |
| nowIndicator | boolean | Uma linha no horário atual. O padrão é true. |
| defaultDuration | number | Minutos que dura um evento com horário e sem fim. O padrão é 60. |
| agendaDays | number | Dias que a agenda lista. O padrão é 7. |
| timelineDays | number | Dias que a linha do tempo abrange. O padrão é 1. |
| maxEventsPerDay | number | Eventos mostrados numa célula do mês antes de "+N more". O padrão é 3. |
| scrollHeight | string | Altura da área rolável das visões de semana, dia e linha do tempo. O padrão é `'36rem'`. |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| range-change | range: { start: Date; end: Date; view: ScheduleViewName } | O intervalo visível mudou: o momento de buscar seus eventos. |
| event-click | payload: { event: ScheduleEvent; occurrence: ScheduleOccurrenceInfo; originalEvent: Event } | — |
| event-change | change: ScheduleEventChange | — |
| select | selection: ScheduleSelection | — |
| date-click | payload: { date: Date; allDay: boolean; resourceId?: string | number | null; originalEvent: Event } | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| default | — | As partes, escritas como filhos: `<Schedule.Toolbar>`, `<Schedule.Event>`… |
| toolbar | (props: ScheduleToolbarSlotProps) | Substitui a barra de ferramentas inteira. |
| event | (props: ScheduleEventSlotProps) | O conteúdo de um evento. |
| resource | (props: { resource: ScheduleResource }) | O cabeçalho da linha de um recurso na linha do tempo. |
| empty | — | A agenda sem nada nela. |