---
url: "https://vueda.dev/v3/reference/api/vue/DateRangeField.md"
title: "DateRangeField"
---

# DateRangeField

## Overview

A segment-based date range input built on Reka UI's DateRangeFieldRoot.
Renders start and end date segments that users tab through individually.
Supports granularity for date-only or datetime range input.

Theme entry: [DateRangeField](/v3/reference/theming/keys/DateRangeField.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-class">class</span> | `import('vue').HTMLAttributes['class']` |  | `undefined` | Additional CSS classes to apply to the root element. |
| <span id="prop-modelValue">modelValue</span> | `object` |  | `undefined` | The controlled date range value. Can be bound as v-model. |
| <span id="prop-defaultValue">defaultValue</span> | `object` |  | `undefined` | The default value when uncontrolled. |
| <span id="prop-placeholder">placeholder</span> | `object` |  | `undefined` | The placeholder date used to determine initial display when no value is set. |
| <span id="prop-defaultPlaceholder">defaultPlaceholder</span> | `object` |  | `undefined` | The default placeholder date. |
| <span id="prop-granularity">granularity</span> | `string` |  | `undefined` | The granularity of the date field (e.g. "day", "hour", "minute", "second"). |
| <span id="prop-hourCycle">hourCycle</span> | `number` |  | `undefined` | The hour cycle for time formatting (12 or 24). |
| <span id="prop-step">step</span> | `object` |  | `undefined` | The stepping interval for time fields. |
| <span id="prop-hideTimeZone">hideTimeZone</span> | `boolean` |  | `undefined` | Whether to hide the time zone segment. |
| <span id="prop-maxValue">maxValue</span> | `object` |  | `undefined` | The maximum selectable date. |
| <span id="prop-minValue">minValue</span> | `object` |  | `undefined` | The minimum selectable date. |
| <span id="prop-locale">locale</span> | `string` |  | `undefined` | The locale used for formatting dates. |
| <span id="prop-disabled">disabled</span> | `boolean` |  | `undefined` | When true, prevents interaction with the date field. |
| <span id="prop-readonly">readonly</span> | `boolean` |  | `undefined` | When true, the field is read-only. |
| <span id="prop-isDateUnavailable">isDateUnavailable</span> | `func` |  | `undefined` | A function that returns whether a date is unavailable. |
| <span id="prop-id">id</span> | `string` |  | `undefined` | The id of the underlying element. |
| <span id="prop-name">name</span> | `string` |  | `undefined` | The name submitted with form data. |
| <span id="prop-required">required</span> | `boolean` |  | `false` | When true, the field is required. |
| <span id="prop-size">size</span> | `string` |  | `"default"` | Size variant of the segment field shell. |
| <span id="prop-as">as</span> | `string\|object` |  | `undefined` | The element or component to render as. |
| <span id="prop-asChild">asChild</span> | `boolean` |  | `false` | When true, merges props onto the child element instead of rendering a wrapper. |

## Slots

### `default` {#slot-default}

Scoped slot.

## Events

| Name | Description |
| --- | --- |
| `update:modelValue` | Emitted when the value changes. |
| `update:placeholder` | Emitted when the placeholder date changes. |

[Full event reference](/v3/reference/api/vue/DateRangeField/events.md)

## Source

`client/lib/controls/date-range-field/DateRangeField.vue`
