Skip to content

Range Calendar

A calendar component that allows users to select a range of dates.

Examples

Default

Event Date, January 2026
January 2026
vue
<script setup>
import { ref } from 'vue'
import { RangeCalendar } from '@empathyds/vue'
import { getLocalTimeZone, today } from '@internationalized/date'

const start = today(getLocalTimeZone())
const end = start.add({ days: 7 })

const value = ref({
  start,
  end,
})
</script>

<template>
  <RangeCalendar v-model="value" class="rounded-md border" />
</template>

Installation

bash
pnpm add @internationalized/date
bash
npm install @internationalized/date
bash
yarn add @internationalized/date
bash
bun add @internationalized/date

Props

RangeCalendar

PropTypeDefaultDescription
model-valueDateRange-The verified date range
default-valueDateRange-The default date range
placeholderDateValue-The placeholder date
default-placeholderDateValue-The default placeholder date
paged-navigationbooleanfalseWhether to use paged navigation
prevent-deselectbooleanfalseWhether to prevent deselecting the date
week-starts-on0 | 1 | 2 | 3 | 4 | 5 | 60The day the week starts on
weekday-format'narrow' | 'short' | 'long''narrow'The format of the weekday
calendar-labelstring-The label for the calendar
fixed-weeksbooleanfalseWhether to show fixed weeks
max-valueDateValue-The maximum date value
min-valueDateValue-The minimum date value
localestring-The locale to use
number-of-monthsnumber1The number of months to display
disabledbooleanfalseWhether the calendar is disabled
readonlybooleanfalseWhether the calendar is readonly
initial-focusbooleanfalseWhether to focus the calendar initially

Slots

RangeCalendar

SlotDescription
defaultThe calendar content
headerThe calendar header
gridThe calendar grid