The nylas-editor-tabs-group element provides the user interface for managing editor tabs within the Scheduler Editor. It’s primarily used to control the edit mode of the Scheduler Editor, and is rendered automatically by the parent component, nylas-scheduler-editor , during editing. There is no need to interact with this element directly or set any props manually, as its behavior is fully managed by the parent component.
Preview Code
import { NylasEditorTabsGroup } from '@nylas/react' ;
export default function NylasEditorTabsGroupExample () {
< div className = "inline-block border border-dashed border-gray-300 rounded-md p-4 justify-center" >
'--nylas-primary' : '#007bff' ,
'--nylas-base-100' : '#ffffff'
Name selectedEventTypeDescription The selected event type. Type CONFIGURATION_EVENT_TYPE.collective | CONFIGURATION_EVENT_TYPE.group |CONFIGURATION_EVENT_TYPE.max_availability | CONFIGURATION_EVENT_TYPE.max_fairness |CONFIGURATION_EVENT_TYPE.one_on_one | undefined
Name selectedGroupEventDescription The selected group event. Type GroupEventAPIData | 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
The following props are automatically configured when used within NylasSchedulerEditor . Set these props manually only if you’re using the component independently.
Name calendarsDescription The list of calendars to use in the editor when configuring availability. Type Calendar[] | undefined
Name configurationsDescription The list of Configurations. Type (Configuration | GroupConfiguration)[] | undefined
Name currentUserDescription The current logged in user. Type undefined | { id: string; email: string; name?: string | undefined; provider?: string |undefined; }
Name enableUserFeedbackDescription This prop is passed down by the parent component to enable or disable user feedback. Type boolean | undefinedDefault true
Name hideEditorTabsDescription This prop is passed down by the parent component. It’ i’s an optional prop is used to hide tabs in the editor. Available tabs are: eventInfo, availability, participants, bookingOptions, and bookingForm. Type TabGroup[] | undefinedDefault []
Name modeDescription The mode of the editor. app: The editor is used as a standalone app. composable: The editor is used as a composable element. Type "app" | "composable" | undefinedDefault 'app'
Name schedulerPreviewLinkDescription The Scheduler preview link to use when the user clicks on the preview button. You can use a placeholder {config.id} to replace the Configuration ID anywhere in the link. Type string Default ''
Name selectedConfigurationDescription The selected Configuration to use in the editor when editing an existing Configuration or creating a new one. Type Configuration | 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 cancelButtonClickEvent emitted when the user clicks the cancel button to exit the group Scheduler Editor. dismissNotificationEvent emitted when the user dismisses an error notification, allowing parent components to handle cleanup or additional actions. formSubmittedEvent emitted at the very beginning of form submission, before any validation occurs. This event is cancelable and can prevent the submission process if preventDefault() is called. groupEventCreateTriggeredEvent emitted when the user requests to create a new group event in the calendar view. This fires when the create button is clicked and validation passes. groupEventDeleteTriggeredEvent emitted when the user requests to delete a group event. This fires when the delete button is clicked and includes the recurrence delete option chosen by the user. groupEventImportTriggeredEvent emitted when the user requests to import group events from an external source. This fires when the import action is triggered in the calendar view. groupEventUpdateTriggeredEvent emitted when the user requests to save changes to an existing group event. This fires after validation passes and includes the recurrence update option chosen by the user. nylasSchedulerErrorEvent emitted when the element needs to display an error notification to the user. This includes validation errors, API errors, and other component-level errors. previewButtonClickedEvent emitted when the user clicks the preview button. This fires before the preview link is opened and can be used to override the default preview behavior. saveGroupEventChangesErrorEvent emitted when validation errors prevent saving changes to a group event. This provides error details for handling failed save attempts. schedulerConfigChangedEvent emitted when the group Scheduler Configuration form is submitted and ready to be processed (before the API request is made). This fires for both create and edit actions after client-side validation passes. schedulerConfigCreatedEvent emitted when a group Scheduler Configuration is successfully created via the API. This fires only for create actions after the API request completes successfully. schedulerEditorFormUpdatedEvent emitted whenever any form field value changes within the group Scheduler Editor. This provides real-time updates as users modify form inputs.
Resets the error state of the editor.
Type returned : Promise<void>
Event handler for the Scheduler Configuration created event.
Parameter Type dataSchedulerGroupEventDetail & { host: HTMLNylasEditorTabsGroupElement; }
Type returned : Promise<CustomEvent<SchedulerGroupEventDetail & { host: HTMLNylasEditorTabsGroupElement; }>>
Sets the error state of the editor.
Parameter Type error{ message: string; type: NotificationType; category: ErrorCategory; title: string; }
Type returned : Promise<void>
Part Description editor__footerThe footer container. editor__footer-buttonsThe buttons container. editor__footer-canceleditor__footer-ctaeditor__footer-previewThe preview button container. editor__form-contentsThe form contents container. editor__return-to-calendar-vieweditor__tabThe tabs container. editor__tab-contentThe tab content container. editor__tabseditortab__booking-formeditortab__booking-optionseditortab__communicationseditortab__page-stylesnset__header__back-button
Part Description nap__add-participantThe add participant button of the element. nap__add-time-rangeThe add time range button. nap__availabilityThe availability container. nap__contentThe content of the element. nap__dayThe day container. nap__headerThe header of the availability picker. nap__inputThe input of the element. nap__remove-participantThe remove participant button of the element. nap__select-timezoneThe time zone selection container. nap__select-timezone-buttonThe time zone selection button. nap__select-timezone-dropdown-contentThe time zone selection dropdown content. nap__subtitleThe subtitle of the element. nap__time-picker-containerThe time picker container. nap__time-picker-inputThe time picker input. nap__time-picker-timesThe time picker times. nap__time-rangeThe time range container. nap__time-rangesThe time ranges container. nap__titleThe title of the element.
Part Description nbcpThe booking calendar picker container. nbcp__dropdownThe dropdown container. nbcp__dropdown-buttonThe dropdown button. nbcp__dropdown-contentThe dropdown content. nbcp__headerThe header of the booking calendar picker. nbcp__input-labelThe input label of the booking calendar picker.
Part Description nbtThe buffer time container. nbt__bodyThe body of the buffer time. nbt__dropdown-afterThe after buffer dropdown container. nbt__dropdown-beforeThe before buffer dropdown container. nbt__dropdown-button-afterThe after buffer dropdown button. nbt__dropdown-button-beforeThe before buffer dropdown button. nbt__dropdown-content-afterThe after buffer dropdown content. nbt__dropdown-content-beforeThe before buffer dropdown content. nbt__headerThe header of the buffer time. nbt__previewThe buffer time preview.
Part Description ncbfThe custom booking flow container. ncbf__dropdownThe dropdown container. ncbf__dropdown-buttonThe dropdown button. ncbf__dropdown-contentThe dropdown content. ncbf__headerThe header of the custom booking flow.
Part Description ncbsThe booking calendar picker container. ncbs__additional_guestsThe additional guests setting. ncbs__cancellation_optionsThe cancellation options setting. ncbs__headerThe header of the booking calendar picker. ncbs__rescheduling_optionsThe rescheduling options setting. ncbs__settingsThe settings container. ncbs__settings-divThe div inside the settings container that contains the checkbox and tooltip for each setting.
Part Description ncpThe calendar picker container. ncp__dropdownThe dropdown container. ncp__dropdown-buttonThe dropdown button. ncp__dropdown-contentThe dropdown content. ncp__headerThe header of the calendar picker.
Part Description ncpolicyThe cancellation policy container. ncpolicy__textareaThe cancellation policy text area.
Part Description nedThe event duration container. ned__dropdownThe dropdown container for the duration increment. ned__dropdown-buttonThe dropdown button for the duration increment. ned__dropdown-contentThe dropdown content for the duration increment. ned__input_dropdownThe input dropdown container for the duration minutes. ned__input_dropdown-contentThe dropdown content for the input duration minutes. ned__input_dropdown-inputThe input for the duration minutes.
Part Description nedescThe event description container. nedesc__textareaThe event description text area.
Part Description nelThe event location container. nel__dropdownThe dropdown container. nel__dropdown-buttonThe dropdown button. nel__dropdown-contentThe dropdown content. nel__locationThe event location input.
Part Description netThe event title container. net__dropdown-contentThe token options container. net__footernet__footer-buttonsnet__footer-cancelnet__footer-ctanet__footer-previewnet__form-contentsnet__return-to-calendar-viewnet__tab-booking-formnet__tab-booking-optionsnet__tab-communicationsnet__tab-contentnet__tab-page-stylesnet__tabsnet__titleThe event title input.
Part Description nlfbThe limit future bookings container. nlfb__number-dropdownThe number dropdown container. nlfb__number-dropdown-buttonThe number dropdown button. nlfb__number-dropdown-contentThe number dropdown content. nlfb__period-dropdownThe period dropdown container. nlfb__period-dropdown-buttonThe period dropdown button. nlfb__period-dropdown-contentThe period dropdown content.
Part Description nmbnThe minimum booking notice container. nmbn__number-dropdownThe number dropdown container. nmbn__number-dropdown-buttonThe number dropdown button. nmbn__number-dropdown-contentThe number dropdown content. nmbn__period-dropdownThe period dropdown container. nmbn__period-dropdown-buttonThe period dropdown button. nmbn__period-dropdown-contentThe period dropdown content.
Part Description nmcnThe minimum cancellation notice container. nmcn__number-dropdownThe number dropdown container. nmcn__number-dropdown-buttonThe number dropdown button. nmcn__number-dropdown-contentThe number dropdown content. nmcn__period-dropdownThe period dropdown container. nmcn__period-dropdown-buttonThe period dropdown button. nmcn__period-dropdown-contentThe period dropdown content.
Part Description npcaThe participants custom availability container. npca__contentThe content of the participants custom availability. npca__headerThe header of the participants custom availability. npca__participant-containerThe participant container. npca__participant-titleThe participant title. npca__participant-toggle--containerThe participant toggle container. npca__toggle-inputThe toggle input. npca__toggle-labelThe toggle label. npca__toggle-sliderThe toggle slider.
Part Description npnThe nylas-page-name container. npn__bodyThe body of the event communication section. npn__drawer-toggle--containerThe card’s drawer toggle container. npn__headerThe header of the event communication section. npn__input-textfieldThe page name textfield.
Part Description nsmThe booking calendar picker container. nsm__dropdownThe dropdown container. nsm__dropdown-buttonThe dropdown button. nsm__dropdown-contentThe dropdown content. nsm__headerThe header of the booking calendar picker. nsm__input-labelThe input label of the booking calendar picker.
Part Description ntiThe time slot interval container. nti__dropdownThe dropdown container. nti__dropdown-buttonThe dropdown button. nti__dropdown-contentThe dropdown content. nti__headerThe header of the time slot interval picker. nti__input-labelThe input label of the time slot interval picker.
The nylas-editor-tabs-group 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
selected-configuration = "your-group-config"
calendars = "your-calendars" >
</ nylas-editor-tabs-group >
// Listen for group event creation
element. addEventListener ( 'groupEventCreateTriggered' , ( event ) => {
const { groupEvent , configId } = event.detail;
console. log ( 'Group event creation triggered:' , { groupEvent, configId });
// Handle group event creation
handleGroupEventCreation (groupEvent, configId);
// Listen for group event updates
element. addEventListener ( 'groupEventUpdateTriggered' , ( event ) => {
const { groupEvent , chosenOption , configId } = event.detail;
console. log ( 'Group event update triggered:' , { groupEvent, chosenOption, configId });
// Handle group event update
handleGroupEventUpdate (groupEvent, chosenOption, configId);
// Listen for configuration changes
element. addEventListener ( 'schedulerConfigChanged' , ( event ) => {
const configData = event.detail;
console. log ( 'Group scheduler config changed:' , configData);
// Handle configuration change
handleGroupConfigChange (configData);
selected-configuration = "your-group-config"
calendars = "your-calendars"
"--nylas-primary": "#007bff",
"--nylas-base-100": "#ffffff",
"--nylas-border-radius": "8px"
</ nylas-editor-tabs-group >