Individual event type
Below code snippet can be used to render the create event type atom, which is a form with all the required input fields needed to create an event type.Team event type
For creating an event type for a team, you need to provide the team id of your particular team as a prop to the create event type atom. Importantly, a team event type can only be created by a managed user who has an accepted admin or owner role within the team. That means you have to create a managed user and then add an accepted membership with an admin or owner role by making a request to the memberships endpoint. Example body:<CreateEventType />
component while passing teamId={teamId}
to it to create a team event type:
Below is a list of props that can be passed to the create event type atom
Name | Required | Description |
---|---|---|
teamId | No | Unique identifier of the team |
customClassNames | No | To pass in custom classnames from outside for styling the atom |
onSuccess | No | Callback function that handles successful creation of event type |
onError | No | Callback function to handles errors at the time of event type creation |
onCancel | No | Callback function that handles cancellation of event type form |
Name | Description |
---|---|
atomsWrapper | Adds styling to the whole create event type atom |
buttons | Object containing classnames for the submit and cancel buttons inside the create event type atom |
Individual and team event types take in the same props.
Event type settings
The event type settings contains various tabs that can be used to configure or make modifications to the event type that has just been created. Below code snippet can be used to render the event type settings atom.eventTypeId
is of a team event type id, then only the owner or admin of the team can update the event type settings. That means
you have to create a managed user and then add an accepted membership with an admin or owner role by making a request to the memberships endpoint. Example body:
<EventTypeSettings />
component while passing id of a team event type enabling admin or owner to edit team event types.
For a demonstration of the event type settings atom, please refer to the video below.
Below is a list of props that can be passed to the event type settings atom.
Name | Required | Description | |
---|---|---|---|
id | Yes | The event type id obtained at the time of event type creation | |
tabs | No | The tabs you want the event type settings to display | |
onSuccess | No | Callback function that triggers when the event type is successfully updated | |
onError | No | Callback function to handles errors at the time of event type update | |
onFormStateChange | No | Callback function that triggers when the form state changes, providing access to isDirty, dirtyFields, and current form values | |
onDeleteSuccess | No | Callback function that triggers when the event type is successfully deleted | |
onDeleteError | No | Callback function that handles errors at the time of event type deletion | |
allowDelete | No | Boolean value that determines whether the delete button is displayed or not | |
disableToasts | No | Boolean value that determines whether the toasts are displayed or not | |
customClassNames | No | To pass in custom classnames from outside for styling the atom |
Name | Description |
---|---|
atomsWrapper | Adds styling to the whole event type settings atom |
Please ensure all custom classnames are valid Tailwind CSS classnames.
Programmatic Form Validation and Submission
The EventTypeSettings component supports programmatic form validation and submission through a ref-based API. This allows you to validate form data and submit forms programmatically without user interaction.Ref Methods
Method | Description |
---|---|
validateForm | Validates the current event type form state and returns a promise with validation results. |
handleFormSubmit | Programmatically submits the event type form, triggering the same validation and submission flow as clicking the save button. Unlike validateForm , this method will check required fields and prevent submission unless all required fields are set |
Callbacks
ThehandleFormSubmit
method accepts an optional callbacks object with the following properties:
- onSuccess: Called when the form submission is successful. This allows you to execute additional logic after a successful update.
- onError: Called when an error occurs during form submission. The error parameter contains details about what went wrong, allowing you to handle specific error cases or display custom error messages.
validateForm
method returns an EventTypeFormValidationResult
object with:
isValid
: Boolean indicating if the form passed validationerrors
: Object containing any validation errors found
validateForm
method will not return any error. The validation focuses on the format and consistency of provided data rather than enforcing required field completion.
Following are the tabs that are available in the event type settings atom:
1. Event Setup
The event setup tab allows users to configure the fundamental aspects of their events. In this tab, users can define or update essential details such as the event title, description, duration, slug, location as well as the event URL.




5. Advanced
The advanced tab lets you customize your event type with a lot more options. For example, you can set a custom name for the event type that will appear in your calendar, or add questions that will appear on your booking page. Another option would be to add an email verification for the person who is booking the event.
Below video shows a demonstration of the all the options you get in the advanced tab.
6. Recurring
The recurring tab lets you set up a recurring event. You can set up recurring events such as weekly, monthly, yearly, etc for a maximum of events you want it to repeat.

Recurring events are currently experimental and causes some issues sometimes when checking for availability. We are working on fixing this.

