Sections
Get Started
Components
- Accordion
- Alert
- Alert Dialog
- Aspect Ratio
- Avatar
- Badge
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Collapsible
- Combobox
- Command
- Context Menu
- Data Table
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Form
- Hover Card
- Input
- Input Group
- Input OTP
- Item
- Kbd
- Label
- Menubar
- Native Select
- Navigation Menu
- Pagination
- Pin Input
- Popover
- Progress
- Radio Group
- Range Calendar
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Stepper
- Switch
- Table
- Tabs
- Tags Input
- Textarea
- Toast
- Toggle
- Toggle Group
- Tooltip
- Typography
Forms
Event Date, November - December 2025
November - December 2025
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
<script setup lang="ts">
import type { DateRange } from 'reka-ui'
import { getLocalTimeZone, today } from '@internationalized/date'
import { RangeCalendar } from '@/components/ui/range-calendar'
const start = today(getLocalTimeZone())
const end = start.add({ days: 7 })
const dateRange = ref({
start,
end,
}) as Ref<DateRange>
</script>
<template>
<RangeCalendar
v-model="dateRange"
class="rounded-md border shadow-sm"
:number-of-months="2"
disable-days-outside-current-view
/>
</template>About
The <RangeCalendar /> component is built on top of the Reka UI Range Calendar component, which uses the @internationalized/date package to handle dates.
If you're looking for a normal calendar, check out the Calendar component.
Installation
pnpm dlx shadcn-vue@latest add range-calendar
Usage
<script setup lang="ts">
import { RangeCalendar } from "@/components/ui/range-calendar";
</script>
<template>
<RangeCalendar />
</template>