Thank you for contacting Telerik Support.
I would like to clarify that when RadScheduler is populated using server-side binding only the appointment required fields could be set from the client-side: start time, end time and subject. Any additional fields such as description and custom attributes could be set from the client-side only with web service binding.
A valid workaround in this case would be to use hidden fields on the page for description and your custom attributes and store those values in them. Since the hidden fields have runat="server" set they are available on the server so you can read the appointment description and custom attribute values and assign to the appointment object on the server in AppointmentInsert event handler. This event is fired once a new appointment is about to be added to the RadScheduler control. In other words it will be fired just after calling the RadScheduler client-side object method insertAppointment
and pass the appointment object.
Please find attached a sample project that implements very similar scenario.
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.