Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).

import datetime as dt

import panel as pn


The DateRangePicker widget allows selecting a date range using a text box and the browser’s date-picking utility.

Discover more on using widgets to add interactivity to your applications in the how-to guides on interactivity. Alternatively, learn how to set up callbacks and (JS-)links between parameters or how to use them as part of declarative UIs with Param.


For details on other options for customizing the component see the layout and styling how-to guides.


  • end (date): The latest selectable date

  • start (date): The earliest selectable date

  • value (tuple): Tuple of upper and lower bounds of the selected range expressed as date types


  • disabled (boolean): Whether the widget is editable

  • name (str): The title of the widget

  • disabled_dates (list): dates to make unavailable for selection; others will be available

  • enabled_dates (list): dates to make available for selection; others will be unavailable

DateRangePicker uses a browser-dependent calendar widget to select the date range:

date_range_picker = pn.widgets.DateRangePicker(
    name='Date Range Picker', value=(, 1, 1),, 1, 10))

pn.Column(date_range_picker, height=400)

To ensure it is visible in a notebook we have placed it in a Column with a fixed height.

DateRangePicker.value returns a tuple of date values type that can be read out or set like other widgets:

(, 1, 1),, 1, 10))


The DateRangePicker widget exposes a number of options which can be changed from both Python and Javascript. Try out the effect of these parameters interactively:

pn.Row(date_range_picker.controls(jslink=True), date_range_picker)

Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).