GCS Studios

NWD Date/Time Picker (Multi-Mode) v1.35.0

NWD Date/Time Picker (Multi-Mode) was built to replace Bubble’s native Date/Time Picker and offers far more styling flexibility and control. It brings single, multiple, and range date selection together with a fully integrated time picker in one polished component. Fully customizable through 100+ properties, giving you complete control over every visual and behavioral detail.

No data collected

Why use this?

Built for what Bubble does not cover.

Bubble's native date/time input only allows a single date or a date and time, with no multiple or range selection, very limited customization and a dated look.

Key features 6

Flexible Selection

Pick a single date, several dates or a range, with an integrated time picker in the same element.

Locale & Timezone

Built in support for any BCP 47 locale and IANA timezone, with automatic fallbacks and correct handling across regions.

Smart Defaults & Restrictions

Preselect dates and times, block specific days, weekdays or time ranges, and set selection limits with clear visual feedback.

Complete Styling Control

Every visual state is yours to style, down to the animations and the glass effects.

Accessible Experience

Fully operable from the keyboard and announced to screen readers, with motion preferences respected.

Workflow Ready

Everything the input knows is available to your workflows, and every change is an event you can react to.

In detail

Flexible Selection

  • Single, multiple, and range date selection in one component
  • Integrated time picker with hour, minute, and second columns, shown below, beside, or in place of the calendar
  • Configurable step intervals for hours, minutes, and seconds
  • Disable specific dates, weekdays, and time ranges
  • Set minimum and maximum dates and time limits
  • Maximum selection limit for multiple and range modes

Locale & Timezone

  • Built-in locale support for dates, month names, weekday and time labels
  • System or custom IANA timezone with automatic fallback
  • 12h and 24h time formats with AM/PM tab control
  • Weekday labels with configurable capitalization

Fully Customizable

  • 100+ properties for complete visual and behavioral control
  • Circle or square selection shape for calendar days and time picker options
  • Glassmorphism effect with six intensity levels
  • Custom placeholder, icon placement, and display formats for date and time
  • Fully customizable item states: available, hovered, selected, and disabled
  • Seamless integration with native Bubble styles while preserving a consistent appearance across browsers and matching your app design
  • Advanced visual customization including custom scrollbars, modern glass effects, and a built in icon library

Smooth User Experience

  • Configurable tooltip on hover showing all selected dates
  • Smooth animation types with smart directional positioning that adapts beautifully to any screen
  • Keyboard ready with Tab, Enter, Space, Escape, and the arrow keys to move through dates and times
  • Screen reader ready with an accessible label and description, and reduced motion support
  • Handles required and invalid states with customizable styling that integrates with Bubble styles

Workflow Friendly

  • Exposed states for selected values in all selection modes, validity, focus, and active locale and timezone
  • Required field validation with touch-aware invalid state
  • Focus action that can be triggered from anywhere for full workflow control
  • Reset action with flexible behavior that integrates with native Bubble actions or custom workflows
  • Value changed event for seamless Bubble integration
  • Powered by Luxon for locale and timezone support

Reliable & Production-Ready

  • Built with lightweight CSS and JavaScript for fast, reliable performance
  • Designed around practical use cases and real Bubble development needs
  • Tested in real-world applications before being released publicly
  • Created to extend Bubble with functionality and customization beyond what native Bubble elements typically offer

How to use 3

  1. 01
    Insert the element on the page

    Place the plugin element wherever you need it.

  2. 02
    Configure the properties

    Choose the mode (date, time or datetime), the selection type (single, multiple or range), the locale and timezone, and the display format. Everything else starts with a working default.

  3. 03
    Connect to your workflows

    Use the value changed event to capture confirmed selections, and read the exposed states according to the selection type you chose.

INPUT 11

The properties below cover everything that is not natively available for Bubble inputs. For basic settings such as font, background, borders, padding, and box shadow, use Bubble's native properties.

General

Input placeholder

text

Text displayed in the input while it has no value.

Input placeholder color

color

Color of the placeholder text.

Input type

dropdown

Sets the selection mode to date only, time only, or both.

  • datedisplays only the calendar panel, no time picker.
  • timedisplays only the time picker, no calendar.
  • datetimedisplays both the calendar and the time picker.

Date selection mode

dropdown

Sets the date selection mode to single date, multiple dates, or date range.

  • singleonly one date can be selected at a time. Clicking the selected date again clears it.
  • multiplemultiple dates can be selected, each click toggles the selection.
  • rangea date range can be selected, the first click sets the start date and the second sets the end date.

Combining time input type with multiple or range is not supported and will block the component.

Locale

text

BCP 47 locale that defines the language of dates, month names, weekday labels and timepicker column labels (for example en-US or pt-BR). When empty or invalid, uses the browser locale.

Almost everything the calendar writes comes from the browser's own locale data, and follows whatever you set here: month names, weekday names, the order of day and month, and the way each format is rendered. That covers far more languages than the list below.

Two pieces of text are written by the plugin itself and exist only in these 43 languages: the Hours, Minutes, Seconds and Period column headers in the time picker, and the N dates selected label the input falls back to when several dates do not fit. In any other language those two appear in English, while the calendar around them stays fully translated. English, Portuguese, Spanish, French, German, Italian, Japanese, Chinese, Arabic, Russian, Korean, Dutch, Polish, Turkish, Swedish, Indonesian, Hindi, Danish, Finnish, Norwegian, Czech, Hungarian, Romanian, Ukrainian, Thai, Vietnamese, Greek, Hebrew, Slovak, Malay, Persian, Bengali, Urdu, Tamil, Swahili, Croatian, Bulgarian, Serbian, Lithuanian, Latvian, Estonian, Galician and Irish. Need one that is not here? Ask for it and it goes in.

Timezone

text

IANA timezone that defines the zone dates and times are read and written in (for example America/Sao_Paulo or Asia/Tokyo). When empty or invalid, uses the browser timezone.

Leave it empty and each visitor sees the calendar in their own timezone, which is what most apps want. Fill it only when the dates belong to one fixed place — a venue, a store, a broadcast — and must read the same for everyone.

Input icon

Display input icon?

yes/no

Controls whether the input icon is displayed.

Input icon class

dropdown

Icon displayed in the input. With auto, the icon follows the input type (date, datetime or time) and, for dates, the selection mode (single, multiple or range), in its outline version.

  • autofollows the input type and, for dates, the selection mode, using the outline icons.
  • calendar singleoutlined calendar with a marked day.
  • calendar single filledfilled calendar with a marked day.
  • calendar multipleoutlined calendar with a day grid.
  • calendar multiple filledfilled calendar with a day grid.
  • calendar rangeoutlined calendar with a row of days.
  • calendar range filledfilled calendar with a row of days.
  • calendar clockoutlined calendar with a clock.
  • calendar clock filledfilled calendar with a clock.
  • clockoutlined clock.
  • clock filledfilled clock.

Input icon size

number

Icon size in pixels. When empty, it is calculated from the input font size.

Input icon color

color

Color of the input icon.

Input icon placement

dropdown

Whether the icon appears to the left or right of the input text.

  • leftthe icon appears to the left of the input text.
  • rightthe icon appears to the right of the input text.

DISPLAY FORMAT 5

Date display format

dropdown

Sets the date format displayed in the input and tooltip.

  • 31/12/2020
  • 31/12/20
  • 12/31/2020
  • 12/31/20
  • 2020/12/31
  • 31-12-2020
  • 31-12-20
  • 12-31-2020
  • 12-31-20
  • 2020-12-31
  • 31.12.2020
  • 31.12.20
  • 12.31.2020
  • 12.31.20
  • 2020.12.31

Time display format

dropdown

Sets the time format displayed in the input, tooltip, and time picker. It also controls whether the time picker uses a 12-hour or 24-hour format and whether the AM/PM tabs are displayed.

  • 1:22 pm
  • 01:22 pm
  • 1:22:44 pm
  • 01:22:44 pm
  • 1:22 PM
  • 01:22 PM
  • 1:22:44 PM
  • 01:22:44 PM
  • 13:22
  • 13:22:44

Display time in range mode?

yes/no

Displays the time alongside dates in the input label when the mode is range + datetime.

Display tooltip on hover?

yes/no

Displays a tooltip on hover showing all selected dates.

Tooltip show delay (ms)

number

Time (in milliseconds) before the tooltip appears after hover.

DEFAULT DATA 7

Datepicker default date(s)

Default date (single)

date

Sets the default date for the single mode. Applied when the component loads or is reset, and updated when the source value changes. User-confirmed values are preserved. In datetime and time modes, the default time fields override its time.

Default dates (multiple)

list date

Sets the default list of dates for the multiple mode. Applied when the component loads or is reset, and updated when the source list changes. User-confirmed values are preserved. In datetime mode, the default time fields override the time of each date.

Default start date (range)

date

Sets the default start date for the range mode. Applied when the component loads or is reset, and updated when the source value changes. User-confirmed values are preserved. In datetime mode, the default time fields override the start and end time of the range.

Default end date (range)

date

Sets the default end date for the range mode. Applied when the component loads or is reset, and updated when the source value changes. User-confirmed values are preserved. In datetime mode, the default time fields override the start and end time of the range.

Timepicker default time(s)

Default hours (0-23)

number

Sets the default hour (0-23). When a default date is configured, overrides its hour in datetime and time modes. Without a default date, sets the input value in time mode, or only preselects it in the time picker in datetime mode. No effect in date mode.

Default minutes (0-59)

number

Sets the default minute (0-59). When a default date is configured, overrides its minute in datetime and time modes. Without a default date, sets the input value in time mode, or only preselects it in the time picker in datetime mode. No effect in date mode.

Default seconds (0-59)

number

Sets the default second (0-59). When a default date is configured, overrides its second in datetime and time modes. Without a default date, sets the input value in time mode, or only preselects it in the time picker in datetime mode. No effect in date mode.

SELECTION LIMIT 3

Max selections

number

Sets the maximum number of selections. Leave it empty for no limit. In multiple mode, it limits the number of dates that can be selected. In range mode, it limits the number of days in the selected range. This property has no effect in single mode.

Limit reached label

text

Message displayed inside the panel when the selection limit is reached.

Limit reached font color

color

Font color of the limit reached message.

SELECTION DISABLED 14

Datepicker disabled date(s)

Minimum date

date

Sets the minimum selectable date. Earlier dates are blocked.

Maximum date

date

Sets the maximum selectable date. Later dates are blocked.

Disabled dates

list date

Sets the list of specific dates blocked from selection.

Datepicker disabled weekday(s)

Disable monday?

yes/no

Disables all Mondays from selection. A disabled weekday inside a range rejects the entire interval.

Disable tuesday?

yes/no

Disables all Tuesdays from selection. A disabled weekday inside a range rejects the entire interval.

Disable wednesday?

yes/no

Disables all Wednesdays from selection. A disabled weekday inside a range rejects the entire interval.

Disable thursday?

yes/no

Disables all Thursdays from selection. A disabled weekday inside a range rejects the entire interval.

Disable friday?

yes/no

Disables all Fridays from selection. A disabled weekday inside a range rejects the entire interval.

Disable saturday?

yes/no

Disables Saturdays from selection. A disabled weekday inside a range rejects the entire interval.

Disable sunday?

yes/no

Disables all Sundays from selection. A disabled weekday inside a range rejects the entire interval.

Timepicker disabled time(s)

Minimum hours (0-23)

number

Sets the minimum selectable hour in the time picker columns (0–23). Options outside the limit are shown as disabled.

Maximum hours (0-23)

number

Sets the maximum selectable hour in the time picker columns (0–23). Options outside the limit are shown as disabled.

Minimum minutes (0-59)

number

Sets the minimum selectable minute in the time picker columns (0–59). Options outside the limit are shown as disabled.

Maximum minutes (0-59)

number

Sets the maximum selectable minute in the time picker columns (0–59). Options outside the limit are shown as disabled.Maximum selectable minute in the time picker columns (0–59). Options outside the limit are shown as disabled.aximum selectable minute in the time picker columns (0–59). Options outside the limit are shown as disabled.Maximum selectable minute in the time picker columns (0–59). Options outside the limit are shown as disabled.

FLOATING PANEL 10

General

Divider line color

color

Color of the divider lines inside the panel.

Navigation bg color (hovered)

color

Background color of navigation elements on hover.

Navigation font color

color

Color of navigation texts and icons in the panel.

Panel position

dropdown

Preferred or forced opening direction of the floating panel relative to the input.

  • auto-topopens upward if there is enough space above, downward otherwise. If neither side has enough space, opens toward the side with more space.
  • auto-bottomopens downward if there is enough space below, upward otherwise. If neither side has enough space, opens toward the side with more space.
  • topalways opens upward, regardless of available space.
  • bottomalways opens downward, regardless of available space.

Animation type

dropdown

Opening animation of the floating panel.

  • noneno animation.
  • dropslides in from above/below with a bounce.
  • elasticscales from the anchor edge with elasticity.
  • expandscales from the anchor edge without bounce.
  • fadefades in smoothly.
  • popscales up from the center with a bounce.
  • slideslides in from above/below.
  • zoomscales up slightly from center.

Appearance

Panel bg color

color

Background color of the floating panel.

Panel border color

color

Sets the border color of the floating panel.

Glass effect

dropdown

Intensity of the glassmorphism effect on the floating panel.

  • noneno glass effect.
  • subtleapplies a subtle glass effect.
  • lightapplies a light glass effect.
  • mediumapplies a medium glass effect.
  • strongapplies a strong glass effect.
  • intenseapplies a intense glass effect.

Scrollbar

Scrollbar style

dropdown

Look of the scrollbar in the time picker columns: hidden (the column still scrolls), minimal (a handle only) or arrows (a handle with an arrow at each end), each in thin or regular width. Firefox shows its own scrollbar for arrows.

  • hidden
  • minimal thin
  • minimal regular
  • arrows thin
  • arrows regular

Fade list edges?

yes/no

Fades the top and bottom edges of the time picker columns while there are more values to scroll to on that side.

DATE PICKER 7

General

Calendar default view

dropdown

Sets which view level is displayed when the calendar opens.

  • daysopens on the day selector.
  • monthsopens on the month selector.
  • yearsopens on the year selector.

Weekday label case

dropdown

Controls the capitalization style of the weekday labels in the calendar header.

  • capitalizefirst letter uppercase (e.g. Mon).
  • lowercaseall lowercase (e.g. mon).
  • uppercaseall uppercase (e.g. MON).

Weekday label font color

color

Color of the weekday labels in the calendar header.

Weekday first letter only?

yes/no

Displays only the first letter of the weekday.

First day of week

dropdown

Sets which day starts the calendar in days view mode.

  • sundaythe calendar grid starts on Sunday.
  • mondaythe calendar grid starts on Monday.

Other months

Display other months?

yes/no

Displays the days of the previous and next months in the calendar.

Other months interaction

dropdown

Controls the click behavior on adjacent month cells.

  • disable interactiondays are shown for reference only, no click and no hover.
  • enable selection onlyclicking selects the date without navigating to that month.
  • enable go to onlyclicking navigates to that month without selecting the date.
  • enable selection and go toclicking both selects the date and navigates to that month.

TIME PICKER 8

General

Time picker layout

text

Sets where the time columns open when Input type is datetime; the time button stays in place. stacked: below it. replace: in place of the calendar. side right or side left: in a strip beside the calendar. auto: below if the panel fits on the screen, otherwise to the right, then to the left, otherwise in place of the calendar.

  • stackedthe columns open below the time button, and the panel grows downward or moves up when there is no room below.
  • replacethe columns take the place of the calendar, at the same height, and closing the time brings the calendar back.
  • side rightthe columns open in a strip to the right of the calendar; the panel gets wider, not taller.
  • side leftthe same strip, to the left of the calendar; the calendar and the time button stay in place.
  • autobelow if the panel fits on the screen, otherwise to the right, then to the left, otherwise in place of the calendar.

Only for Input type datetime. The time button stays where it is in every layout; only the columns move, so the panel never jumps under the pointer.

Expand time picker on open?

yes/no

Opens the panel with the time picker already expanded when Input type is datetime. Ignored when Time picker layout is replace, or when auto picks replace: then the panel always opens with the calendar.

Pairs well with side right and side left: the panel opens with the calendar and the time side by side. With replace, or when auto picks it, the panel always opens on the calendar.

Display seconds column?

yes/no

Displays the seconds column in the time picker. Only takes effect when the configured time display format includes seconds (ss).

Column border color

color

Border color of the hour, minute, and second columns.

Column font color

color

Color of the column title labels (Hours, Minutes, Seconds).

Time steps

Hour step

number

Sets the interval between options in the hour column. The current value (default or selected) is always included even outside the step.

Minute step

number

Sets the interval between options in the minute column. The current value (default or selected) is always included even outside the step.

Second step

number

Sets the interval between options in the second column. The current value (default or selected) is always included even outside the step.

SELECTION ITEM APPEARANCE 19

General

Day selection shape

dropdown

Sets the shape of day cells in the calendar.

  • circleday cells use a circular shape.
  • squareday cells use a rounded square shape.

Time selection shape

dropdown

Sets the shape of options in the time picker columns.

  • circletime picker options use a circular shape.
  • squaretime picker options use a rounded square shape.

Current item (date and time)

Item bg color (current)

color

Background color of today's date and the current time option.

Item border color (current)

color

Border color of today's date cell.

Item font color (current)

color

Text color of today's date and the current month/year in their selectors.

Available items (date and time)

Item bg color (available)

color

Background color of available cells.

Item border color (available)

color

Border color of available cells.

Item font color (available)

color

Text color of available cells.

Hovered items (date and time)

Item bg color (hovered)

color

Background color of cells on hover.

Item border color (hovered)

color

Border color of cells on hover.

Item font color (hovered)

color

Text color of cells on hover.

Selected items (date and time)

Item bg color (selected)

color

Background color of selected cells.

Item border color (selected)

color

Border color of selected cells.

Item font color (selected)

color

Text color of selected cells.

Disabled items (date and time)

Item bg color (disabled)

color

Background color of blocked cells.

Item border color (disabled)

color

Border color of blocked cells.

Item font color (disabled)

color

Text color of blocked cells.

Item date font strike (disabled)?

yes/no

Applies strikethrough to blocked calendar day cells.

Item time font strike (disabled)?

yes/no

Applies strikethrough to blocked time picker options.

ACTION BUTTONS 12

General

Button vertical padding

number

Vertical padding of the action buttons, in pixels.

Button horizontal padding

number

Horizontal padding of the action buttons, in pixels.

Cancel button

Cancel button label

text

Text displayed on the cancel button.

Cancel button bg color

color

Background color of the cancel button.

Cancel button border color

color

Border color of the cancel button.

Cancel button font color

color

Font color of the cancel button.

Cancel button bg color (hovered)

color

Background color of the cancel button on hover.

Confirm button

Confirm button label

text

Text displayed on the confirm button.

Confirm button bg color

color

Background color of the confirm button.

Confirm button border color

color

Border color of the confirm button.

Confirm button font color

color

Font color of the confirm button.

Confirm button bg color (hovered)

color

Background color of the confirm button on hover.

INPUT BEHAVIOR 9

Disabled state

This input is disabled?

yes/no

Disables the component, preventing any interaction.

Disabling an input (native input or plugin input) makes it read-only in the UI, but it's not a secure way to prevent edits. Because it's handled client-side, users can still tamper with it. Use server-side protections like privacy rules, workflow conditions, or backend workflows to enforce security.

For styling, you can use the exposed is clickable state to apply conditionals at the element level, or use the properties below to define global styles for the disabled state.

Input bg color (disabled)

color

Input background color when disabled.

Input border color (disabled)

color

Input border color when disabled.

Input font color (disabled)

color

Input font color when disabled.

Required state

This input is required?

yes/no

Marks the field as required and enables input validation. When enabled, the element evaluates whether a value is selected and publishes the is validstate accordingly.

Unlike native Bubble inputs, this does not prevent workflows from running automatically. You should use the is valid state in your workflows to handle validation logic.

For styling, you can use the exposed is valid state to apply conditionals at the element level, or use the properties below to define global styles for the invalid state.

Input bg color (invalid)

color

Input background color when invalid.

Input border color (invalid)

color

Input border color when invalid.

For styling, you can use the exposed is focused state to apply conditionals at the element level, or use the properties below to define global styles for the focused state.

Focused state

Input bg color (focused)

color

Input background color when focused.

Input border color (focused)

color

Input border color when focused.

ACCESSIBILITY 2

Accessible label

text

Name read by screen readers. When empty, uses the placeholder or the visible label.

Accessible description

text

Hint read by screen readers after the name. Empty for none.

States 22

Values the element exposes for the rest of the page to read.

selected single date

date

The confirmed date when the selection mode is single. Empty if no date is confirmed or another selection mode is active. In time mode, the date portion is irrelevant, use the time portion or use the state 'selected time (total seconds)' to read only the confirmed time in seconds.

selected multiple dates

datelist

The list of confirmed dates when the selection mode is multiple. Empty if no date is confirmed or another selection mode is active.

selected date range

date range

The confirmed start and end dates as a date range when the selection mode is range. Empty until both dates are confirmed or another selection mode is active.

selected date range (as list)

datelist

All dates within the confirmed range interval, inclusive of start and end. Empty until both dates are confirmed or another selection mode is active.

selected month

number

The month of the confirmed value, from 1 (January) to 12 (December). In multiple mode, uses the first confirmed date; in range mode, the start date. Does not change when navigating the calendar. Empty if no value is confirmed.

selected year

number

The year of the confirmed value. In multiple mode, uses the first confirmed date; in range mode, the start date. Does not change when navigating the calendar. Empty if no value is confirmed.

current view (month)

number

The month currently displayed in the calendar, from 1 (January) to 12 (December). Updates when the user navigates, even without selecting a date.

current view (year)

number

The year currently displayed in the calendar. Updates when the user navigates, even without selecting a date.

current view (available dates)

datelist

All dates of the displayed month that can be selected under the current restrictions (minimum and maximum date, disabled dates and weekdays).

current view (disabled dates)

datelist

All dates of the displayed month that cannot be selected under the current restrictions.

selected time (total seconds)

number

The confirmed time as total seconds since midnight (e.g. 14:30 = 52200). In multiple mode, uses the first confirmed date; in range mode, the start date. Empty if no value is confirmed.

selected time (total minutes)

number

The confirmed time as total minutes since midnight (e.g. 14:30 = 870). May be decimal when the time has seconds. In multiple mode, uses the first confirmed date; in range mode, the start date. Empty if no value is confirmed.

selected time (total hours)

number

The confirmed time as total hours since midnight (e.g. 14:30 = 14.5). May be decimal. In multiple mode, uses the first confirmed date; in range mode, the start date. Empty if no value is confirmed.

selected time (second component)

number

The second part of the confirmed time, from 0 to 59 (e.g. 14:30:15 = 15). Empty if no value is confirmed.

selected time (minute component)

number

The minute part of the confirmed time, from 0 to 59 (e.g. 14:30 = 30). Empty if no value is confirmed.

selected time (hour component)

number

The hour part of the confirmed time, from 0 to 23 (e.g. 14:30 = 14). Empty if no value is confirmed.

active locale

text

The locale used to format dates and labels. Falls back to en-US when the configured locale is invalid, so it may differ from the configured value.

active timezone

text

The IANA timezone used by the component. In custom mode, it falls back to UTC when the configured timezone id is invalid.

is clickable

yes/no

True when the input is enabled and can be opened; false when it is disabled.

is required

yes/no

True when the input is configured as required.

is valid

yes/no

True when the value is accepted. False when it is required and has no confirmed value. It updates on every change, so a workflow can rely on it; the invalid style only shows after the person leaves the field or closes the panel, or when a workflow sets the value.

is focused

yes/no

True when the panel is open.

Events 1

Where a workflow can start.

value changed

event

Triggered when the confirmed selection changes: the user confirms a selection, the component is reset, or a change to the minimum or maximum date or time clears a date that was already chosen or set.

Actions 3

What a workflow can tell the element to do.

The actions can be triggered from any workflow event. The plugin also responds to Bubble's native reset actions (Reset a group/popup).

Reset no params

Resets the component to its initial state, reapplying default values if configured, or returning to an empty state, and updates the exposed states accordingly.

Focus no params

Focuses the input and opens its panel programmatically. Ignored if the component is disabled.

Set value 5 params

Sets the value from a workflow, using the field that matches the current selection mode.

Apply even when disabled?

Yes applies the value even while the element is disabled. No makes the action do nothing in that state.

Value (single)

Date to select when the element is in single selection mode. In time mode, the time of day is read from this same value. Dates blocked by the minimum, the maximum, a disabled weekday or the blocked list are ignored; empty clears the selection.

Value (multiple)

list

Dates to select when the element is in multiple selection mode. Blocked dates are dropped one by one and the rest is applied, respecting Max selections; empty clears the selection.

Range start

First date of the interval, when the element is in range selection mode. The pair is applied only when both ends are set and no blocked date falls between them.

Range end

Last date of the interval, when the element is in range selection mode. If it comes before the start, the two are swapped, the same way a default value is.

FAQ 11

What is Date/Time Picker?

Date/Time Picker is a fully customizable date and time input for Bubble. It supports single, multiple, and range date selection with an integrated time picker, locale and timezone support, and over 100 properties for complete visual and behavioral control.

Does it require any advanced knowledge to set up?

No. Place the element on the page, configure the properties in the editor, and connect it to your workflows. All properties have descriptions and most have sensible defaults, so you can get started quickly without deep technical knowledge.

Can I use it for date only, time only, or both?

Yes. The Input type property lets you choose between date only, time only, or date and time combined. Each mode shows only the relevant panels and exposes the appropriate value format.

Does it support multiple date selection and date ranges?

Yes. The Date selection mode property supports single, multiple, and range selection. In multiple mode each click toggles a date. In range mode the first click sets the start and the second sets the end.

Can I restrict which dates are selectable?

Yes. You can set a minimum and maximum date, disable specific dates via a list, disable entire weekdays, and set minimum and maximum hour and minute limits for the time picker. All restrictions are applied dynamically and revalidated whenever they change.

Does it support locales and timezones?

Yes. The plugin uses Luxon internally for all date operations. You can configure any BCP 47 locale code and any IANA timezone. Invalid values fall back to en-US and UTC respectively, without breaking the component.

What happens if I combine time only mode with multiple or range selection?

That combination is not supported and has no valid semantic meaning. The component will display a visual warning in the editor and block rendering until the configuration is corrected.

Can I focus or reset the component from a Bubble workflow?

Yes. The plugin exposes a Focus action, which focuses the input and opens its panel, and a Reset action. Both can be triggered from any workflow and respect the current state of the component, including the disabled state.

The panel is not opening, what should I check?

Make sure that:

  1. The component is not disabled via the This input is disabled? property
  2. The input type and selection mode combination is valid (time only does not support multiple or range)
  3. If triggering via workflow, confirm the Focus action is correctly connected
  4. Check that the element is visible on the page, hidden elements cannot open the panel
The selected value is not appearing in my workflow, what should I check?

Make sure that:

  1. You are reading the correct exposed state for the active selection mode (selected single date, selected multiple dates, or selected date range)
  2. The user has confirmed the selection by clicking the confirm button
  3. The workflow is triggered by the value changed event, not by a condition check before confirmation
Can I predefine styles and reuse them across multiple inputs?

Yes. The visual properties support Bubble's predefined styles, so a look can be saved once and applied to every input in the app. A few sizing fields are deliberately not dynamic, and that is what lets them travel inside the style instead of being set one input at a time.

Breaking changes 8

1.35.0 2026-11-09

The input icon options were renamed and reduced, so each icon says what the field picks. The element keeps working, but a specific icon chosen before this version may need one pass.

  • Most Input icon class options were renamed or removed. An option that no longer exists falls back to auto.If you picked a specific icon, open the element and choose it again. If you use auto, there is nothing to do.
  • calendar range, calendar clock and clock keep their names, but now draw the outline version.If you want the solid icon, choose the matching filled option.
  • With auto, dates in multiple or range mode now show their own calendar icon instead of the single date one.Nothing to do, unless you prefer a fixed icon: then choose it in Input icon class.
  • When Input icon size is empty, the icon now follows the size used across the NWD inputs, slightly smaller than before.To keep the previous size, set Input icon size to 20.

1.28.0 2026-10-30

Locale and timezone now follow the visitor's browser when left empty, which is what the rest of the Newed UI library already does. The element keeps rendering after the update, but two options were replaced and one was removed, so anything that relied on the old defaults needs one pass.

  • Timezone mode and Custom timezone id (IANA) became a single option, Timezone. The old pair said the same thing twice: the mode's local is exactly what an empty field now means.If you were on local, leave Timezone empty and nothing changes. If you were on custom, write the IANA identifier straight into Timezone, for example America/Sao_Paulo.
  • Timezone no longer falls back to UTC. An empty or unrecognised identifier now resolves to the visitor's own timezone.If your app relied on UTC, write UTC into the Timezone field. It was never a setting you chose before, so check the field on every element where the zone matters.
  • Locale no longer defaults to en-US, and is now optional. Empty means the visitor's browser language, and so does an invalid value.If you want English regardless of the visitor, write en-US into Locale. Leaving it empty makes dates, month names and weekday labels follow each visitor instead.
  • In the property panel, the Appearance group inside INPUT is gone. Input placeholder and Input placeholder color moved to the top of General, matching the other inputs in the library.Nothing to do. The options kept their names and their saved values; only where they sit in the panel changed.

NWD UI - Input

This plugin is maintained by GCS Studios and is part of the NWD UI - Input family, form controls built from scratch for Bubble, inspired by a personal component library originally built for React. Each one is carefully designed and tested in real applications before release, for the level of control, polish and reliability that native Bubble inputs often do not provide. See more plugins on the GCS Studios contributor page.

Each control here is drawn by the plugin instead of being restyled from a native one, so they match each other across the library and keep the same shape in every browser.