Creates a text input which, when clicked on, brings up a calendar that the user can click on to select dates.

  value = NULL,
  min = NULL,
  max = NULL,
  format = "yyyy-mm-dd",
  startview = "month",
  weekstart = 0,
  language = "en",
  width = NULL,
  autoclose = TRUE,
  datesdisabled = NULL,
  daysofweekdisabled = NULL



The input slot that will be used to access the value.


Display label for the control, or NULL for no label.


The starting date. Either a Date object, or a string in yyyy-mm-dd format. If NULL (the default), will use the current date in the client's time zone.


The minimum allowed date. Either a Date object, or a string in yyyy-mm-dd format.


The maximum allowed date. Either a Date object, or a string in yyyy-mm-dd format.


The format of the date to display in the browser. Defaults to "yyyy-mm-dd".


The date range shown when the input object is first clicked. Can be "month" (the default), "year", or "decade".


Which day is the start of the week. Should be an integer from 0 (Sunday) to 6 (Saturday).


The language used for month and day names. Default is "en". Other valid values include "ar", "az", "bg", "bs", "ca", "cs", "cy", "da", "de", "el", "en-AU", "en-GB", "eo", "es", "et", "eu", "fa", "fi", "fo", "fr-CH", "fr", "gl", "he", "hr", "hu", "hy", "id", "is", "it-CH", "it", "ja", "ka", "kh", "kk", "ko", "kr", "lt", "lv", "me", "mk", "mn", "ms", "nb", "nl-BE", "nl", "no", "pl", "pt-BR", "pt", "ro", "rs-latin", "rs", "ru", "sk", "sl", "sq", "sr-latin", "sr", "sv", "sw", "th", "tr", "uk", "vi", "zh-CN", and "zh-TW".


The width of the input, e.g. '400px', or '100%'; see validateCssUnit().


Whether or not to close the datepicker immediately when a date is selected.


Which dates should be disabled. Either a Date object, or a string in yyyy-mm-dd format.


Days of the week that should be disabled. Should be a integer vector with values from 0 (Sunday) to 6 (Saturday).


The date format string specifies how the date will be displayed in the browser. It allows the following values:

  • yy Year without century (12)

  • yyyy Year with century (2012)

  • mm Month number, with leading zero (01-12)

  • m Month number, without leading zero (1-12)

  • M Abbreviated month name

  • MM Full month name

  • dd Day of month with leading zero

  • d Day of month without leading zero

  • D Abbreviated weekday name

  • DD Full weekday name

Server value

A Date vector of length 1.


## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
  dateInput("date1", "Date:", value = "2012-02-29"),

  # Default value is the date in client's time zone
  dateInput("date2", "Date:"),

  # value is always yyyy-mm-dd, even if the display format is different
  dateInput("date3", "Date:", value = "2012-02-29", format = "mm/dd/yy"),

  # Pass in a Date object
  dateInput("date4", "Date:", value = Sys.Date()-10),

  # Use different language and different first day of week
  dateInput("date5", "Date:",
          language = "ru",
          weekstart = 1),

  # Start with decade view instead of default month view
  dateInput("date6", "Date:",
            startview = "decade"),

  # Disable Mondays and Tuesdays.
  dateInput("date7", "Date:", daysofweekdisabled = c(1,2)),

  # Disable specific dates.
  dateInput("date8", "Date:", value = "2012-02-29",
            datesdisabled = c("2012-03-01", "2012-03-02"))

shinyApp(ui, server = function(input, output) { })