Components

Time Slot Scheduler

Time Slot Scheduler component.

Client Only

Installation

pnpm dlx @docyrus/cli add @docyrus/ui-time-slot-scheduler
Required Packages(1 package)
pnpm add date-fns
UI Primitives(8 components)
npx shadcn@latest add avatar button popover scroll-area select separator toggle-group tooltip

Usage

import {
  TimeSlotScheduler
} from "@docyrus/ui/components/time-slot-scheduler";
import type {
  DaySlots,
  DisabledReason,
  SchedulerEvent,
  SchedulerUser,
  SlotSelectPayload,
  SlotStatus,
  TimeSlot,
  TimeSlotReservation,
  TimeSlotSchedulerMode,
  TimeSlotSchedulerProps,
  TimezoneOption,
  UnavailableRange
} from "@docyrus/ui/components/time-slot-scheduler";

<TimeSlotScheduler />

API Reference

PropTypeDefault
classNamestring—

Components

ComponentDescription
TimeSlotSchedulerPublic export
TimeSlotSchedulerProviderInternal — time-slot-scheduler-context.tsx

Type Exports

TypeDescription
DaySlots—
DisabledReason—
SchedulerEvent—
SchedulerUser—
SlotSelectPayload—
SlotStatus—
TimeSlot—
TimeSlotReservation—
TimeSlotSchedulerMode—
TimeSlotSchedulerProps—
TimezoneOption—
UnavailableRange—

Type Reference

DaySlots

FieldTypeDescription
dateDate—
dayLabelstring—
dateLabelstring—
fullLabelstring—
isTodayboolean—
isWeekendboolean—
slotsArray<TimeSlot>—
hasAvailabilityboolean—

DisabledReason

"past" | "full" | "unavailable" | "before-min-date" | "after-max-date"

SchedulerEvent

FieldTypeDescription
subjectstring—
durationstring—
locationstring—
descriptionstring—
iconReactNode—

SchedulerUser

FieldTypeDescription
fullNamestring—
emailstring—
avatarUrlstring—

SlotSelectPayload

FieldTypeDescription
dayDate—
startTimestring—
endTimestring—
startISOstring—
endISOstring—
capacitynumber—
reservationCountnumber—
remainingCapacitynumber—
reservationsArray<TimeSlotReservation>—

SlotStatus

"available" | "partial" | "full" | "unavailable" | "past" | "disabled"

TimeSlot

FieldTypeDescription
idstring—
namestring—
emailstring—
avatarUrlstring—
startTimestring—
endTimestring—

TimeSlotReservation

FieldTypeDescription
idstring—
namestring—
emailstring—
avatarUrlstring—
startTimestring—
endTimestring—

TimeSlotSchedulerMode

"columns" | "month"

TimeSlotSchedulerProps

FieldTypeDescription
startTimestring—
endTimestring—
slotSizenumber—
slotCapacitynumber—
reservationsArray<TimeSlotReservation>—
unavailableSlotsArray<UnavailableRange>—
userSchedulerUser—
eventSchedulerEvent—
modeTimeSlotSchedulerMode—
defaultModeTimeSlotSchedulerMode—
onModeChange(mode: TimeSlotSchedulerMode) => void—
defaultDateDate—
minDateDate—
maxDateDate—
showSaturdayboolean—
showSundayboolean—
timezonestring—
defaultTimezonestring—
timezonesArray<TimezoneOption>—
onTimezoneChange(tz: string) => void—
showReservationDetailboolean—
selectedSlotSlotSelectPayload | null—
defaultSelectedSlotSlotSelectPayload | null—
onSelect(payload: SlotSelectPayload) => void—
classNamestring—

TimezoneOption

FieldTypeDescription
valuestring—
labelstring—
offsetstring—

UnavailableRange

FieldTypeDescription
daystring—
startTimestring—
endTimestring—

On this page