Tour Kit — @tour-kit/scheduling Context File
Version: 0.1.0 | Generated: 2026-03-31
Paste this into your LLM to get accurate answers about @tour-kit/scheduling.
=========================================================================
OVERVIEW
--------
Time-based scheduling utilities for TourKit tours and announcements
INSTALLATION
------------
npm install @tour-kit/scheduling
# or
pnpm add @tour-kit/scheduling
Peer dependencies:
@tour-kit/license: >=0.1.0
react: ^18.0.0 || ^19.0.0
EXPORTS
-------
Types:
BlackoutPeriod
BusinessHours
BusinessHoursMap
BusinessHoursPreset
DateRange
DateString
DayHours
DayName
DayOfWeek
RecurringPattern
Schedule
ScheduleEvaluationOptions
ScheduleInactiveReason
ScheduleResult
ScheduleStatus
TimeRange
TimeString
UseScheduleOptions
UseScheduleReturn
UseScheduleStatusOptions
UseScheduleStatusReturn
Hooks:
useUserTimezone
useSchedule
useScheduleStatus
Components:
ScheduleGate
BUSINESS_HOURS_PRESETS
DAY_NAMES
Utilities:
// Main evaluation functions
checkSchedule
isScheduleActive
getScheduleStatus
// Timezone utilities
formatDateString
getDateInTimezone
getUserTimezone
isValidTimezone
parseDateString
parseTimeString
// Date range utilities
isWithinDateRange
// Time of day utilities
isWithinTimeRange
isWithinAnyTimeRange
// Day of week utilities
DAY_GROUPS
getDayOfWeek
isAllowedDay
dayNameToNumber
dayNumberToName
// Blackout utilities
isInBlackoutPeriod
isInAnyBlackout
getCurrentBlackout
getBlackoutEndTime
// Business hours utilities
isWithinBusinessHours
isHoliday
getDayBusinessHours
// Recurring pattern utilities
matchesRecurringPattern
HOOKS
-----
useUserTimezone(...)
useSchedule(...)
useScheduleStatus(...)
COMPONENTS
----------
EXAMPLES
--------
Example 1: Quick Start
import { useSchedule } from '@tour-kit/scheduling'
function OnboardingTour() {
const schedule = {
startAt: '2024-01-15',
endAt: '2024-03-31',
daysOfWeek: [1, 2, 3, 4, 5], // Weekdays only
timeOfDay: { start: '09:00', end: '17:00' },
useUserTimezone: true,
}
const { isActive, reason } = useSchedule(schedule)
if (!isActive) {
return null
}
return ...
}
Example 2: Schedule
interface Schedule {
enabled?: boolean
startAt?: DateString | Date
endAt?: DateString | Date
daysOfWeek?: DayOfWeek[]
timeOfDay?: TimeRange
useUserTimezone?: boolean
timezone?: string
blackouts?: BlackoutPeriod[]
recurring?: RecurringPattern
metadata?: Record
}
Example 3: Timezone Handling
// Use the user's browser timezone
const schedule = {
useUserTimezone: true,
timeOfDay: { start: '09:00', end: '17:00' },
}
// Or specify a fixed timezone
const schedule = {
timezone: 'America/New_York',
timeOfDay: { start: '09:00', end: '17:00' },
}