Thank you for contacting Syncfusion support.
We can achieve your requirement by adding extra field in an appointment window and for the same we have prepared the sample which can be download from the below location.
In the sample, additional information regarding user type is saved with an appointment and based on that information CRUD operation is prevented for specific users on specific room. Kindly refer the below code example used in the sample.
<Code>
function onAppointmentWindowOpen(args) {
if ($(".customfields").length == 0) {
var customDesign = "<tr class='customfields'><td class='e-textlabel'>User Type</td><td><input name='UserType' class='usertype' type='text'/></td></tr>";
$("." + this._id + "parrow").after(customDesign);
}
if (!ej.isNullOrUndefined(args.appointment)) {
// if double clicked on the appointments, retrieve the custom field values from the appointment object and fills it in the appropriate fields.
$(".usertype").val(args.appointment.UserType);
}
else {
// if double clicked on the cells, clears the field values.
$(".usertype").val("");
}
}
function onBeforeAppointmentCreate(args) {
var app = (ej.isNullOrUndefined(args.appointment[0])) ? args.appointment : args.appointment[0];
if (app.UserType == "User2" && app.RoomId != 1)
args.cancel = true;
if(app.UserType == "User3" && app.RoomId != 2)
args.cancel = true;
if (app.UserType == "User4" && app.OwnerId != 12)
args.cancel = true;
}
</Code>
Regards,
Karthigeyan