The nylas-specific-date-availability-picker element manages specific date availability overrides. This element allows users to set custom availability for specific dates that override the regular open hours.
Dynamic Date Management : Add and remove specific date entries.
Availability Toggle : Toggle between available hours and “entire day unavailable”.
Auto-incrementing Dates : New entries automatically initialize with incremental dates.
Empty State : User-friendly empty state when no dates are configured.
Form Validation : Comprehensive validation for dates and time ranges.
Internationalization : Full i18n support with localized error messages.
The element includes comprehensive validation:
Date validation : Ensures dates are provided and in valid format.
Time range validation : Validates that start time is before end time (for available slots).
Real-time validation : Errors are displayed immediately and cleared when corrected.
Form integration : Uses browser form validation APIs for integration with forms.
Error messages are localized and include:
Date is required
Invalid date format
Start and end times are required
Start time must be before end time
The following props are automatically configured when used within NylasSchedulerEditor . Set these props manually only if you’re using the component independently.
Name nameDescription The name of the specific date availability picker. Type string Default 'specific-date-availability'
Name selectedConfigurationDescription The selected Configuration. Type Configuration | undefined
Name selectedLanguageDescription The selected language. Type LANGUAGE_CODE.de | LANGUAGE_CODE.en | LANGUAGE_CODE.es | LANGUAGE_CODE.fr | LANGUAGE_CODE.ja |LANGUAGE_CODE.ko | LANGUAGE_CODE.nl | LANGUAGE_CODE.sv | LANGUAGE_CODE.zh | undefined
Name specificDateOpenHoursDescription The specific date open hours. Type SpecificDateOpenHours[] | undefined
Name themeConfigDescription The theme configuration. Type undefined | { '--nylas-primary'?: string | undefined; '--nylas-info'?: string | undefined;'--nylas-success'?: string | undefined; '--nylas-warning'?: string | undefined;'--nylas-error'?: string | undefined; '--nylas-error-pressed'?: string | undefined;'--nylas-base-0'?: string | undefined; '--nylas-base-25'?: string | undefined;'--nylas-base-50'?: string | undefined; '--nylas-base-100'?: string | undefined;'--nylas-base-200'?: string | undefined; '--nylas-base-300'?: string | undefined;'--nylas-base-400'?: string | undefined; '--nylas-base-500'?: string | undefined;'--nylas-base-600'?: string | undefined; '--nylas-base-700'?: string | undefined;'--nylas-base-800'?: string | undefined; '--nylas-base-900'?: string | undefined;'--nylas-base-950'?: string | undefined; '--nylas-color-blue-50'?: string | undefined;'--nylas-color-blue-100'?: string | undefined; '--nylas-color-blue-300'?: string | undefined;'--nylas-color-blue-500'?: string | undefined; '--nylas-color-blue-700'?: string | undefined;'--nylas-color-blue-900'?: string | undefined; '--nylas-color-red-50'?: string | undefined;'--nylas-color-red-100'?: string | undefined; '--nylas-color-red-300'?: string | undefined;'--nylas-color-red-500'?: string | undefined; '--nylas-color-red-700'?: string | undefined;'--nylas-color-red-900'?: string | undefined; '--nylas-color-green-50'?: string | undefined;'--nylas-color-green-100'?: string | undefined; '--nylas-color-green-300'?: string |undefined;'--nylas-color-green-500'?: string | undefined; '--nylas-color-green-700'?: string |undefined; '--nylas-color-green-900'?: string | undefined; '--nylas-color-yellow-50'?: string| undefined; '--nylas-color-yellow-100'?: string | undefined; '--nylas-color-yellow-300'?:string | undefined; '--nylas-color-yellow-500'?: string | undefined;'--nylas-color-yellow-700'?: string | undefined; '--nylas-color-yellow-900'?: string| undefined; '--nylas-color-purple-50'?: string | undefined; '--nylas-color-purple-100'?:string | undefined; '--nylas-color-purple-300'?: string | undefined;'--nylas-color-purple-500'?: string | undefined; '--nylas-color-purple-700'?: string |undefined; '--nylas-color-purple-900'?: string | undefined; '--nylas-color-sky-50'?: string |undefined; '--nylas-color-sky-100'?: string | undefined; '--nylas-color-sky-300'?: string |undefined; '--nylas-color-sky-500'?: string | undefined; '--nylas-color-sky-700'?: string |undefined; '--nylas-color-sky-900'?: string | undefined; '--nylas-color-black'?: string |undefined; '--nylas-color-grey-900'?: string | undefined; '--nylas-color-grey-800'?: string |undefined; '--nylas-color-grey-700'?: string | undefined; '--nylas-color-grey-600'?: string |undefined; '--nylas-color-grey-500'?: string | undefined; '--nylas-color-grey-400'?: string |undefined; '--nylas-color-grey-300'?: string | undefined; '--nylas-color-grey-200'?: string |undefined; '--nylas-color-grey-100'?: string | undefined; '--nylas-color-grey-50'?: string |undefined; '--nylas-color-white'?: string | undefined; '--nylas-font-family'?: string |undefined; '--nylas-font-size'?: string | undefined; '--nylas-border-radius'?: string |undefined; '--nylas-border-radius-2x'?: string | undefined; '--nylas-border-radius-3x'?:string | undefined; }
Event Description valueChangedFired when the specific date open hours change.
Part Description nsdapThe specific date availability picker container. nsdap__add-buttonThe add button. nsdap__add-button-containerThe add button container. nsdap__contentThe main content area. nsdap__date-inputThe date input field. nsdap__date-input-containerThe date input container. nsdap__empty-iconThe empty state icon. nsdap__empty-stateThe empty state container. nsdap__empty-subtitleThe empty state subtitle. nsdap__empty-titleThe empty state title. nsdap__entry-contentThe entry content area. nsdap__error-messageThe error message display. nsdap__headerThe header section. nsdap__header-descriptionThe header description. nsdap__remove-buttonThe remove button. nsdap__specific-date-entryThe specific date entry. nsdap__specific-datesThe specific dates container. nsdap__time-pickersThe time pickers section. nsdap__toggle-buttonThe toggle button. nsdap__unavailable-textThe unavailable text.
The nylas-specific-date-availability-picker element is automatically included in the main NylasSchedulerEditor component . The following code samples show how to use the element on its own.
Standalone Event handlers Custom theme
< nylas-specific-date-availability-picker
name = "specific-date-availability"
selected-configuration = "your-config"
specific-date-open-hours = "your-specific-dates" >
</ nylas-specific-date-availability-picker >
// Listen for value changes
element. addEventListener ( 'valueChanged' , ( event ) => {
const { value , name } = event.detail;
console. log ( 'Value changed:' , { value, name });
// Update your configuration
updateSpecificDateAvailability (value, name);
< nylas-specific-date-availability-picker
name = "specific-date-availability"
selected-configuration = "your-config"
specific-date-open-hours = "your-specific-dates"
"--nylas-primary": "#007bff",
"--nylas-base-100": "#ffffff",
"--nylas-border-radius": "8px"
</ nylas-specific-date-availability-picker >