In the applications I’ve used the RadScheduler, I’ve never used the inline form.  This is because I’ve had to display a lot of criteria to the form, and made use of the resources and attributes built-in to the API.  The advanced form is a nice UI displayed to the user that allows the user to have full control over the appointment, selecting other attributes of the appointment or even making the appointment recurring.  In order to jump right into the advanced form, select the StartEditingInAdvancedForm and StartInsertingInAdvancedForm properties of the RadScheduler control, and the inline template will no longer be used.   Once in the advanced form, we can work with the form on the client.

The FormCreated client-side event (there is an equivalent server-side event too) fires when entering the advanced form.  The only way to figure out which form is available was to get the instances of the form using the following:

var editForm = sender._getAdvancedEditForm();
var insertForm = sender._getAdvancedInsertForm();
var isEditing = editForm._formElement.is(“:visible”);

As you can see, the form has a form element reference using the JQuery API, as JQuery has an is method to check for true/false conditions.

If you use the advanced template, either use two routes: use the in-built resources and custom attributes to store the data, or use the custom set of user controls Telerik provides to you on their web site.  Don’t attempt to customize it yourself; it can be a real pain to understand all of the scheduler processes, and it’s easier to leverage on the client-side if you use one or the other.  I chose the first route, which probably was a bit harder to use on the client.  The reason why is that it does not seem there is a direct reference to the set of resource elements or appointment controls; I ended up using FireFox + FireBug and using JQuery to target them myself.  A private variable helps with this: _templateId.  All controls use this template ID.  For instance, to get the controls, we can use:

Start Date: form._templateId + “_StartDate”
End Date: form._templateId + “_EndDate”
Resources: form._templateId + “_Res” + <resource type name> 
Recurrence Panel: form._templateId + “_RecurrencePanel”
Recurrence Checkbox: form._getRecurrentCheckBox(); 

These are the ones I accessed.  The subject is probably suffixed with _Subject, but I’m not 100% sure of that.  Anyway, I don’t know if there was an easier way, but this provided me the easiest way to access the controls that I could find (hard to find documentation on this on Telerik’s web site).  

Using each of these, I could manage the start/end date to add validations (ensure end date after the start), attach to resource combos by adding a selectedIndexChanged event handler to listen for the change and switch another resource to a null value.  I could also use web services to see if other key critical appointments were already scheduled on the day by listening for a start date changed (valueChanged event on the dateInput property of DatePicker) and call a web service to find if such an event exists and alert the user.

Again, FireBug comes in very, very handy to figure out what all is available with the advanced form.  This was written about the 2010 Q1 release, but Q2 does not seem to have changed much except for the new reminder feature.