How to Customize C# .NET Scheduler Appointment Dialogs
Quick Start Guide | |
---|---|
What You Will Need |
Visual Studio 2022 |
Controls Referenced | |
Tutorial Concept | In this second C# .NET Scheduler tutorial, we show how to create a custom appointment dialog that is different from the standard Appointment object. |
Previously, we showed you how to build a C# .NET scheduling Windows app using the ComponentOne Scheduler for WinForms control.
In part two, we’ll go a step further by replacing the default appointment dialog in C1Schedule with a custom one. This new dialog will include fields that match our specific needs, making the app more useful and easier to work with.
Whether you're building an app for healthcare, education, or personal productivity, the ability to customize appointment details can make the scheduler more specific to address your unique business needs.
Ready to Get Started? Download ComponentOne Today!
Let's walk through the implementation in easy steps to create the custom appointment dialog:
Why Customize the Appointment Form
Below is the default appointment form that you get with C1Schedule.

It provides all supported features of the appointment object model in one dialog. The three main reasons you may want to customize the form include:
- Simplifying the form by removing elements you don’t need
- Adding additional form elements to support your unique requirements
- Customizing the style and appearance beyond ComponentOne themes
A common scheduling application scenario involves supporting appointments for multiple users. To accomplish this with C1Scheduler, you can use the Resources, Contacts, and Categories as custom data entities for each appointment (circled above). It’s pretty flexible, but the UI for managing these can be customized to better suit your requirements.
For instance, rather than having the user modify the “Contacts” list to schedule an appointment for a particular user (such as a doctor), we may simply want to display a drop-down with available doctors.
Next, let’s customize the appointment form to add a drop-down for available doctors in our fictional healthcare company.
How to Create a Custom Appointment Form
The first step is to create the custom form in your project by adding a new Windows Form and arranging all the UI controls. Let’s take a look at our custom appointment form below:

In this custom form, we incorporated a Ribbon to provide advanced options, such as setting the appointment importance and recurrence. These features make the dialog more interactive and user-friendly.
We also tailored it to our medical appointment data by displaying the “Doctor” field. This allows the end-user to set the doctor from any appointment dialog.
You can download the completed sample project for the full code to see how it’s created. Below are the key steps to implement the custom appointment dialog:
Initialize the Custom Appointment Form
When the custom appointment form is initialized, we can access the Scheduler and Appointment data in the constructor. From here, we can initialize the form by binding it to appointment data.
See the attached sample above for the complete implementation.
Bind Form Fields with the Appointment
With the custom appointment form in place, the next step is to bind its fields to the corresponding appointment properties. This ensures that when editing an existing appointment, its details are prefilled in the dialog, providing a seamless user experience.
For example, we initialize the text box that is bound to the appointment’s Subject in the code below:
Most importantly, for our custom form, we need to bind the “Doctor” combobox. To achieve this, we will use the scheduler’s Contacts storage. The name of the combobox in our example is “_cmbOwner.”
Additionally, we update the owner when the selected index changes, ensuring that all scheduled appointments are accurately stored and managed.
By implementing this binding, users can effortlessly create and modify appointments without manually re-entering details.
Show the Custom Appointment Form
With the custom appointment dialog successfully created and bound to the appointment properties, the final step is to ensure it is displayed in place of the default appointment dialog when interacting with C1Schedule.
To achieve this, we need to handle the BeforeAppointmentShow event. This event allows us to cancel the default dialog and display our custom appointment form instead.
Below is the code snippet demonstrating this implementation:
This approach ensures that whenever a user clicks on an appointment, our custom appointment dialog appears instead of the default one, providing a personalized scheduling experience. Note that some code is omitted from the snippet, so you should download the complete sample to see additional logic.
Below is a final look at how the custom appointment dialog works in C1Schedule:
Conclusion
In this blog, we have learned how to efficiently implement a custom appointment, from designing the UI to handling user interactions and ensuring smooth functionality. ComponentOne Scheduler for WinForms is a great solution to manage appointments, meetings, and events while offering various customization options. To learn more about the C1Scheduler control, you can check out the documentation.
Ready to check it out? Download ComponentOne Today!
We hope you found this guide easy and helpful. If you have any questions or suggestions, feel free to share them in the comments. Happy coding!