Ej1 api migration in EJ2 TypeScript Schedule control

27 Apr 202324 minutes to read

This topic shows the API equivalent of JS2 Scheduler component to be used, while migrating your project that uses JS1 Scheduler.

Scheduler

Properties

Behavior API in Essential JS 1 API in Essential JS 2
To change the display of days count in agenda view Property: daysInAgenda

var scheduleObj = new ej.Schedule($("#Schedule"), {
currentView: "Agenda",
daysInAgenda: 7
});
Property: agendaDaysCount

let scheduleObj: Schedule = new Schedule({
currentView: 'Agenda',
agendaDaysCount: 7
});
scheduleObj.appendTo('#Schedule');
Preventing deletion of appointment Property: allowDelete

var scheduleObj = new ej.Schedule($("#Schedule"), {
allowDelete: false
});
Not applicable
Allows dragging and dropping of appointments Property: allowDragAndDrop

var scheduleObj = new ej.Schedule($("#Schedule"), {
allowDragAndDrop: false
});
Property: allowDragAndDrop

let scheduleObj: Schedule = new Schedule({
allowDragAndDrop: false
});
scheduleObj.appendTo('#Schedule');
Enabling inline editing of appointments Property: allowInline

var scheduleObj = new ej.Schedule($("#Schedule"), {
allowInline: true
});
Not applicable
Allow keyboard interactions Property: allowKeyboardNavigation

var scheduleObj = new ej.Schedule($("#Schedule"), {
allowKeyboardNavigation: false
});
Property: allowKeyboardInteraction

let scheduleObj: Schedule = new Schedule({
allowKeyboardInteraction: false
});
scheduleObj.appendTo('#Schedule');
Enable resizing of appointments Property: enableAppointmentResize

var scheduleObj = new ej.Schedule($("#Schedule"), {
enableAppointmentResize: true
});
Property: allowResizing

let scheduleObj: Schedule = new Schedule({
allowResizing: true
});
scheduleObj.appendTo('#Schedule');
Blocking time intervals Property: blockoutSettings

var scheduleObj = new ej.Schedule($("#Schedule"), {
currentDate: new Date(2014, 4, 5),
blockoutSettings: {
enable: true,
dataSource: [{
BlockId: 101,
BlockStartTime: new Date(2014, 4, 5, 10, 00),
BlockEndTime: new Date(2014, 4, 5, 11, 00),
BlockSubject: "Service",
IsBlockAppointment: true
}],
id: "BlockId",
startTime: "BlockStartTime",
endTime: "BlockEndTime",
subject: "BlockSubject",
isBlockAppointment: "IsBlockAppointment"
}
});
Property: isBlock

let data: object[] = [{ Id: 1, Subject: 'Explosion of Betelgeuse Star', StartTime: new Date(2018, 1, 15, 9, 30), EndTime: new Date(2018, 1, 15, 11, 0), IsBlock: true }
let scheduleObj: Schedule = new Schedule({
eventSettings: { dataSource: data }
});
scheduleObj.appendTo('#Schedule');
Categorizing the appointments Property: categorizeSettings

var scheduleObj = new ej.Schedule($("#Schedule"), {
categorizeSettings: {
enable: false,
allowMultiple: false},
appointmentSettings: {
dataSource: [{
id: 100,
subject: "Testing",
StartTime: new Date(2014, 4, 2, 9, 00),
EndTime: new Date(2014, 4, 2, 10, 30),
EventCategorize: "6,4,3"}]
categorize: "EventCategorize"
}
});
Not applicable
Setting cell height Property: cellHeight

var scheduleObj = new ej.Schedule($("#Schedule"), {
cellHeight: "30px"
});
Not applicable
Cell template Property: workCellsTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
allDayCellsTemplate: "#allDayTemplate",
workCellsTemplateId: "#workTemplate"
});
Property: cellTemplate

let scheduleObj: Schedule = new Schedule({
cellTemplate: "#cellTemplate";
});
scheduleObj.appendTo('#Schedule');
Setting cell width Property: cellWidth

var scheduleObj = new ej.Schedule($("#Schedule"), {
cellWidth: "40px"
});
Not applicable
CSS class Property: cssClass

var scheduleObj = new ej.Schedule($("#Schedule"), {
cssClass: "customStyle"
});
Property: cssClass

let scheduleObj: Schedule = new Schedule({
cssClass: "customStyle"
});
scheduleObj.appendTo('#Schedule');
Enabling Context-menu option Property: contextMenuSettings

var scheduleObj = new ej.Schedule($("#Schedule"), {
contextMenuSettings: {
enable: true,
menuItems:{
appointment:[
{
id: "open",  text: "Open Appointment" },
{
id: "delete", text: "Delete Appointment" }
],
cells: [
{ id: "new", text: "New Appointment"},
{ id: "recurrence", text: "New Recurring Appointment" }
]
}
}
});
Not applicable
Current view Property: currentView

var scheduleObj = new ej.Schedule($("#Schedule"), {
currentView: ej.Schedule.CurrentView.Week
});
Property: currentView

let scheduleObj: Schedule = new Schedule({
currentView: 'Day'
});
scheduleObj.appendTo('#Schedule');
Date format Property: date-format

var scheduleObj = new ej.Schedule($("#Schedule"), {
dateFormat: "yyyy/MM/dd"
});
Property: dateFormat

let scheduleObj: Schedule = new Schedule({
dateFormat: "yyyy/MM/dd"
});
scheduleObj.appendTo('#Schedule');
Date header template Property: dateHeaderTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
dateHeaderTemplateId: "#dateHeaderTemplate"
});
Property: dateHeaderTemplate

let scheduleObj: Schedule = new Schedule({
dateHeaderTemplate: "#dateHeaderTemplate"
});
scheduleObj.appendTo('#Schedule');
Editor template Not Applicable Property: editorTemplate

let scheduleObj: Schedule = new Schedule({
editorTemplate: "#editorTemplate"
});
scheduleObj.appendTo('#Schedule');
Enable load on demand Property: enableLoadOnDemand

var scheduleObj = new ej.Schedule($("#Schedule"), {
enableLoadOnDemand: true
});
Not applicable
Enable persistence Property: enablePersistence

var scheduleObj = new ej.Schedule($("#Schedule"), {
enablePersistence: true
});
Property: enablePersistence

let scheduleObj: Schedule = new Schedule({
enablePersistence: true
});
scheduleObj.appendTo('#Schedule');
Enable RTL Property: enableRTL

var scheduleObj = new ej.Schedule($("#Schedule"), {
enableRTL: true
});
Property: enableRTL

let scheduleObj: Schedule = new Schedule({
enableRTL: true
});
scheduleObj.appendTo('#Schedule');
Setting end hour of the scheduler Property: endHour

var scheduleObj = new ej.Schedule($("#Schedule"), {
endHour: 18
});
Property: endHour

let scheduleObj: Schedule = new Schedule({
endHour: '20:00'
});
scheduleObj.appendTo('#Schedule');
Setting first day of the week Property: firstDayOfWeek

var scheduleObj = new ej.Schedule($("#Schedule"), {
firstDayOfWeek: "Monday"
});
Property: firstDayOfWeek

let scheduleObj: Schedule = new Schedule({
firstDayOfWeek: 1
});
scheduleObj.appendTo('#Schedule');
Height of the scheduler Property: height

var scheduleObj = new ej.Schedule($("#Schedule"), {
height: "550px"
});
Property: height

let scheduleObj: Schedule = new Schedule({
height: '550px'
});
scheduleObj.appendTo('#Schedule');
Locale Property: locale

var scheduleObj = new ej.Schedule($("#Schedule"), {
locale: "fr-FR"
});
Property: locale

let scheduleObj: Schedule = new Schedule({
locale: 'fr-FR'
});
scheduleObj.appendTo('#Schedule');
Priority settings for appointments Property: PrioritySettings

var scheduleObj = new ej.Schedule($("#Schedule"), {
PrioritySettings: {
enable: true,
dataSource: [
text: "text",
value: "value"
});
Not applicable
Read only Property: readOnly

var scheduleObj = new ej.Schedule($("#Schedule"), {
readOnly: true
});
Property: readonly

let scheduleObj: Schedule = new Schedule({
readonly: true
});
scheduleObj.appendTo('#Schedule');
Reminder settings Property: reminderSettings

var scheduleObj = new ej.Schedule($("#Schedule"), {
reminderSettings: {
enable: true,
alertBefore: 10
});
Not applicable
Resource header template Property: resourceHeaderTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
resourceHeaderTemplateId: "#resTemplate",
group: {
resources: ["Rooms"]
},
resources: [
{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "ROOM", id: 2, color: "#56ca85"}],
text: "text", id: "id", color: "color"}
}],
});
Property: resourceHeaderTemplate

let scheduleObj: Schedule = new Schedule({
resourceHeaderTemplate: '#resTemplate',
group: {
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Current date of the scheduler Property: currentDate

var scheduleObj = new ej.Schedule($("#Schedule"), {
currentDate: new Date(2014,4,5)
});
Property: selectedDate

let scheduleObj: Schedule = new Schedule({
selectedDate: new Date(2014,4,5)
});
scheduleObj.appendTo('#Schedule');
Show all day row Property: showAllDayRow

var scheduleObj = new ej.Schedule($("#Schedule"), {
showAllDayRow: false
});
Not applicable
Show appointment navigator Property: showAppointmentNavigator

var scheduleObj = new ej.Schedule($("#Schedule"), {
showAppointmentNavigator: false
});
Not applicable
Show delete confirmation dialog Property: showDeleteConfirmationDialog

var scheduleObj = new ej.Schedule($("#Schedule"), {
showDeleteConfirmationDialog: false
});
Not applicable
Show header bar Property: showHeaderBar

var scheduleObj = new ej.Schedule($("#Schedule"), {
showHeaderBar: false
});
Property: showHeaderBar

let scheduleObj: Schedule = new Schedule({
showHeaderBar: false
});
scheduleObj.appendTo('#Schedule');
Show location field in event window Property: showLocationField

var scheduleObj = new ej.Schedule($("#Schedule"), {
showLocationField: false
});
Not applicable
Show time zone fields in event window Property: showTimeZoneFields

var scheduleObj = new ej.Schedule($("#Schedule"), {
showTimeZoneFields: false
});
Not applicable
Show previous and next month dates in month view Property: showNextPrevMonth

var scheduleObj = new ej.Schedule($("#Schedule"), {
showNextPrevMonth: false
});
Not applicable
Show overflow button Property: showOverflowButton

var scheduleObj = new ej.Schedule($("#Schedule"), {
showOverflowButton: false
});
Property: rowAutoHeight

let scheduleObj: Schedule = new Schedule({
rowAutoHeight: true
});
scheduleObj.appendTo('#Schedule');
Show quick popup Property: showQuickWindow

var scheduleObj = new ej.Schedule($("#Schedule"), {
showQuickWindow: false
});
Property: showQuickInfo

let scheduleObj: Schedule = new Schedule({
showQuickInfo: false
});
scheduleObj.appendTo('#Schedule');
Show current time indicator Property: showCurrentTimeIndicator

var scheduleObj = new ej.Schedule($("#Schedule"), {
showCurrentTimeIndicator: false
});
Property: showTimeIndicator

let scheduleObj: Schedule = new Schedule({
showTimeIndicator: false
});
scheduleObj.appendTo('#Schedule');
Show week number Not Applicable Property: showWeekNumber

let scheduleObj: Schedule = new Schedule({
showWeekNumber: false
});
scheduleObj.appendTo('#Schedule');
Show weekend days Property: showWeekend

var scheduleObj = new ej.Schedule($("#Schedule"), {
showWeekend: false
});
Property: showWeekend

let scheduleObj: Schedule = new Schedule({
showWeekend: false
});
scheduleObj.appendTo('#Schedule');
Setting start hour of the scheduler Property: startHour

var scheduleObj = new ej.Schedule($("#Schedule"), {
startHour:9
});
Property: startHour

let scheduleObj: Schedule = new Schedule({
startHour:'09:00'
});
scheduleObj.appendTo('#Schedule');
Setting time mode on scheduler Property: timeMode

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeMode:ej.Schedule.TimeMode.Hour24
});
not applicable
Setting timezone for scheduler Property: timeZone

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeZone: "UTC -5:00"
});
Property: timezone

let scheduleObj: Schedule = new Schedule({
timezone:'UTC'
});
scheduleObj.appendTo('#Schedule');
Views in scheduler Property: views

var scheduleObj = new ej.Schedule($("#Schedule"), {
views: ["Day", "Week", "WorkWeek", "Month"]
});
Property: views

let scheduleObj: Schedule = new Schedule({
views: ['Day','Week','WorkWeek','Month']
});
scheduleObj.appendTo('#Schedule');
Width of the scheduler Property: width

var scheduleObj = new ej.Schedule($("#Schedule"), {
width: "100%"
});
Property: width

let scheduleObj: Schedule = new Schedule({
width:'100%'
});
scheduleObj.appendTo('#Schedule');
Working days Property: workWeek

var scheduleObj = new ej.Schedule($("#Schedule"), {
workWeek:["Tuesday", "Wednesday", "Thursday", "Friday","Saturday"]
});
Property: workDays

let scheduleObj: Schedule = new Schedule({
workDays:[1,3,5]
});
scheduleObj.appendTo('#Schedule');
Working hours Property: workHours

var scheduleObj = new ej.Schedule($("#Schedule"), {
workHours:{
highlight: true,
start: 8,
end: 18
}
});
Property: workHours

let scheduleObj: Schedule = new Schedule({
workHours: { highlight: true, start: '08:00', end: '18:00' }
});
scheduleObj.appendTo('#Schedule');

Resources

Behavior API in Essential JS 1 API in Essential JS 2
To group the resources in scheduler layout Property: resources

var scheduleObj = new ej.Schedule($("#Schedule"), {
resources: ["Rooms"]
},
resources: [
{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "ROOM", id: 2, color: "#56ca85"}],
text: "text", id: "id", color: "color"}
}],
});
Property: resources

let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Allowing multiple selection of resources in event window Property: allowMultiple

var scheduleObj = new ej.Schedule($("#Schedule"), {
group: {
resources: ["Rooms"]
},
resources: [
{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "Room3", id: 3, groupId: 2, color: "#56ac88", start: "10", end: "15", workWeek: ["sunday","saturday"] }],
text: "text", id: "id", color: "color", groupId: "groupId", start: "start", end: "end", workWeek: "workWeek"}
}],
});
Property: allowMultiple

let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Projects', 'Categories']
},
resources: [
{
field: 'ProjectId', title: 'Choose Project', name: 'Projects',
dataSource: [
{ text: 'PROJECT 1', id: 2, color: '#56ca85' }
],
textField: 'text', idField: 'id', colorField: 'color'}, {
field: 'CategoryId', title: 'Category',name: 'Categories', allowMultiple: true,
dataSource: [
{ text: 'Testing', id: 2, color: '#7fa900' }],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Setting different work hours for each resource

var scheduleObj = new ej.Schedule($("#Schedule"), {
group: {
resources: ["Rooms,Owners"]
},
resources: [{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "Room3", id: 3, groupId: 2, color: "#56ac88", start: "10", end: "15", workWeek: ["sunday","saturday"] }],
text: "text", id: "id", groupId: "groupId", color: "color", start: "WorkHourStart" end: "WorkHourEnd" workWeek: "CustomDays"
},
resources: [{
field: "ownerId",title: "Owner",name: "Owners", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "Margaret", id: 1, groupId: 1, color: '#1aaa55' }],
text: "text", id: "id", groupId: "groupId", color: "color"}
}]
});
let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Projects', 'Categories']
},
resources: [
{
field: 'ProjectId', title: 'Choose Project', name: 'Projects',
dataSource: [
{ text: "Project3", id: 3, groupId: 2, color: "#56ac88", start: "10", end: "15", workWeek: ["sunday","saturday"] }],
textField: 'text', idField: 'id', colorField: 'color'}, {
field: 'CategoryId', title: 'Category',name: 'Categories', allowMultiple: true,
dataSource: [
{ text: "Testing", id: 3, groupId: 2, color: "#56ac88", start: "10", end: "15", workWeek: ["sunday","saturday"] }],
textField: 'text', idField: 'id', colorField: 'color', workDaysField: 'workDays' startHourField: 'startHour', endHourField: 'endHour'}],
views: ['Week', 'Month']
});
scheduleObj.appendTo('#Schedule');

Group

Behavior API in Essential JS 1 API in Essential JS 2
Resources Property: resources

var scheduleObj = new ej.Schedule($("#Schedule"), {
group: {
resources: ["Rooms"]
},
resources: [
{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "ROOM", id: 2, color: "#56ca85"}],
text: "text", id: "id", color: "color"}
}],
});
Property: resources

let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Allow group editing Property: allowGroupEditing

var scheduleObj = new ej.Schedule($("#Schedule"), {
group: {
resources: ["Rooms"],
allowGroupEditing: true
},
resources: [
{
field: "roomId",title: "Room",name: "Rooms", allowMultiple: false,
resourceSettings: {
dataSource: [
{ text: "ROOM1", id: 1,color: "#f8a398" },
{ text: "ROOM2", id: 2, color: "#56ca85"}],
text: "text", id: "id", color: "color"}
}],
});
Property: allowGroupEdit

let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Owners'],
allowGroupEdit: true
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Grouping resources by date Not applicable Property: byDate

let scheduleObj: Schedule = new Schedule({
group: {
byDate: true,
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Grouping resources based on its group ID Not applicable Property: byGroupId

let scheduleObj: Schedule = new Schedule({
group: {
byGroupId: true,
resources: ['Rooms', 'Owners']
},
resources: [{
field: 'RoomId', title: 'Room',name: 'Rooms', allowMultiple: false,
dataSource: [
{ text: 'Room 1', id: 1, color: '#7fa900' },
{ text: 'Room 2', id: 2, color: '#56ca85' }
],
textField: 'text', idField: 'id', colorField: 'color'},{
byGroupId: true,
resources: ['Rooms', 'Owners']
},
resources: [{
field: 'OwnerId', title: 'Owner',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Nancy', id: 1, groupId: 1, color: '#7fa900' },
{ text: 'Steven', id: 2, groupId: 2, color: '#56ca85' },
{ text: 'Michael', id: 3, groupId: 2, color: '#7499e1' }
],
textField: 'text', idField: 'id',groupIDField: 'groupId', colorField: 'color'}]
});
scheduleObj.appendTo('#Schedule');
Enabling compact view on mobile mode Not applicable Property: enableCompactView

let scheduleObj: Schedule = new Schedule({
var scheduleObj = new ej.schedule.Schedule({
group: {
enableCompactView: false,
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');
Header tooltip template Not applicable Property: headerTooltipTemplate

let scheduleObj: Schedule = new Schedule({
group: {
headerTooltipTemplate: '#resourceHeader',
resources: ['Owners']
},
resources: [{
field: 'TaskId', title: 'Assignee',name: 'Owners', allowMultiple: true,
dataSource: [
{ text: 'Smith', id: 2, color: '#7fa900' }
],
textField: 'text', idField: 'id', colorField: 'color'}],
});
scheduleObj.appendTo('#Schedule');

Header Rows

Behavior API in Essential JS 1 API in Essential JS 2
Adding custom rows in the header in timeline views Not applicable Property: HeaderRows

let scheduleObj: Schedule = new Schedule({
headerRows: [
{ option: 'Month', template: '#month-template' },
{ option: 'Week', template: '#week-template' },
{ option: 'Date' }
],
views: [
{ option: 'TimelineMonth', interval: 12 }],
});
schedule.appendTo('#Schedule');

TimeScale

Behavior API in Essential JS 1 API in Essential JS 2
Enabling time scale Property: enable

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeScale:{
enable: true
}
});
Property: enable

let scheduleObj: Schedule = new Schedule({
timeScale:{
enable: true
}
});
scheduleObj.appendTo('#Schedule');
Setting major interval on time scale Property: majorSlot

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeScale:{
enable: true,
majorSlot: 60
}
});
Property: interval

let scheduleObj: Schedule = new Schedule({
timeScale:{
enable: true,
interval: 60
}
});
scheduleObj.appendTo('#Schedule');
Setting slot count on time scale Property: minorSlotCount

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeScale:{
enable: true,
majorSlot: 60,
minorSlotCount:3
}
});
Property: slotCount

let scheduleObj: Schedule = new Schedule({
timeScale:{
enable: true,
interval: 60,
slotCount: 6
}
});
scheduleObj.appendTo('#Schedule');
Defining major slot template Property: majorSlotTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeScale:{
enable: true,
majorSlot: 60,
minorSlotCount:6,
majorSlotTemplateId: "#majorSlotTemplate"
}
});
Property: majorSlotTemplate

let scheduleObj: Schedule = new Schedule({
timeScale:{
enable: true,
interval: 60,
slotCount: 6,
majorSlotTemplate: '#majorSlotTemplate'
}
});
scheduleObj.appendTo('#Schedule');
Defining minor slot template Property: minorSlotTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
timeScale:{
enable: true,
majorSlot: 60,
minorSlotCount:6,
minorSlotTemplateId: "#minorSlotTemplate"
}
});
Property: minorSlotTemplate

let scheduleObj: Schedule = new Schedule({
timeScale:{
enable: true,
interval: 60,
slotCount: 6,
minorSlotTemplate: '#minorSlotTemplate'
}
});
scheduleObj.appendTo('#Schedule');

Quick info templates

Behavior API in Essential JS 1 API in Essential JS 2
Template for quick popup Not applicable Property: quickInfoTemplates

let scheduleObj: Schedule = new Schedule({
quickInfoTemplates: {
header: '#headerTemplate',
content:'#contentTemplate',
footer: '#footerTemplate'
}
});
scheduleObj.appendTo('#Schedule');

Event settings

Behavior API in Essential JS 1 API in Essential JS 2
Datasource for events Property: dataSource

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentSettings: {
dataSource: Appoint,
id: "Id",
subject: "Subject",
startTime: "StartTime",
endTime: "EndTime",
description: "Description",
allDay: "AllDay",
recurrence: "Recurrence",
recurrenceRule: "RecurrenceRule"
}
});
Property: dataSource

let scheduleObj: Schedule = new Schedule({
eventSettings: { dataSource: data }
});
scheduleObj.appendTo('#Schedule');
Appointment fields var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentSettings: {
id: "Id",
subject: "Subject",
startTime: "StartTime",
endTime: "EndTime",
description: "Description",
allDay: "AllDay",
recurrence: "Recurrence",
recurrenceRule: "RecurrenceRule"
}
});
Property: eventsSettings

let scheduleObj: Schedule = new Schedule({
dataSource: data,
fields: {
id: 'id',
subject: { name: 'Subject', default: 'New title', title: 'New Event', validation: ValidationRules },
location: { name: 'Location' },
description: {name: 'Description' },
startTime: {name: 'StartTime' },
endTime: {name: 'EndTime' },
recurrenceID: {name: 'Recurrence' },
recurrenceRule : {name: 'Recurrence' },
recurrenceException: {name: 'EndTime' },
startTimezone: {name: 'StartTime' },
endTimezone: {name: 'EndTime' }
}
});
scheduleObj.appendTo('#Schedule');
Enabling tooltip for appointments Property: enable

var scheduleObj = new ej.Schedule($("#Schedule"), {
tooltipSettings: {
enable: true
}
});
Note: Here tooltip setting for events is maintained separately
Property: enableTooltip

let scheduleObj: Schedule = new Schedule({
eventSettings: {
dataSource: data,
enableTooltip: true
}
});
scheduleObj.appendTo('#Schedule');
Tooltip template for appointments Property: templateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
tooltipSettings: {
enable: true,
templateId:"#tooltip"
}
});
Note: Here tooltip setting for events is maintained separately
Property: tooltipTemplate

let scheduleObj: Schedule = new Schedule({
eventSettings: {
dataSource: data,
enableTooltip: true,
tooltipTemplate: '#template'
}
});
scheduleObj.appendTo('#Schedule');
Template for appointments Property: appointmentTemplateId

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentTemplateId:"#appTemplate",
appointmentSettings: {
dataSource: data
}
});
Note: Here appointment template is used as simple API
Property: template

let scheduleObj: Schedule = new Schedule({
eventSettings: {
dataSource: data,
template: '#eventTemplate'
}
});
scheduleObj.appendTo('#Schedule');
Query Property: query

var dataManager = ej.DataManager({
url: "http://mvc.syncfusion.com/OdataServices/Northwnd.svc",
crossDomain: true
});
var query = ej.Query().from("Events").take(10);
var scheduleObj = new ej.Schedule($("#Schedule"), {
var query = ej.Query().from("Events").take(10);
appointmentSettings: {
dataSource: dataManager,
query: query
}
});
Property: query

let dataManger: DataManager = new DataManager({
url:
'https://ej2services.syncfusion.com/production/web-services/api/Schedule',
adaptor: new ODataV4Adaptor,
crossDomain: true
});
let scheduleObj: Schedule = new Schedule({
eventSettings: { dataSource: dataManger, query: new Query().from('EventDatas') }
scheduleObj.appendTo('#Schedule');
Define which resource level color applied to events Not applicable Property: resourceColorField

let scheduleObj: Schedule = new Schedule({
group: {
resources: ['Projects', 'Categories']
},
resources: [
{
field: 'ProjectId', title: 'Choose Project', name: 'Projects',
dataSource: [
{ text: 'PROJECT 1', id: 2, color: '#56ca85' }
],
textField: 'text', idField: 'id', colorField: 'color'}, {
field: 'CategoryId', title: 'Category',name: 'Categories', allowMultiple: true,
dataSource: [
{ text: 'Testing', id: 2, color: '#7fa900' }],
textField: 'text', idField: 'id', colorField: 'color'}],
eventSettings: { resourceColorField: 'Projects' }
});
scheduleObj.appendTo('#Schedule');

Methods

Behavior API in Essential JS 1 API in Essential JS 2
To add appointments manually Method: saveAppointment()

$("#Schedule").ejSchedule();
var data = {
Id: 1,
Subject: "Testing",
StartTime: new Date(2014, 4, 5, 10, 00),
EndTime: new Date(2014, 4, 5, 12, 00)};
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.saveAppointment(data);
Method: addEvent()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleObj.addEvent({
Id: 1,
Subject: "New Event",
StartTime: new Date(2014, 4, 5, 10, 00),
EndTime: new Date(2014, 4, 5, 12, 00)
});
To add resources dynamically Method: addResource()

$("#Schedule").ejSchedule();
var data = { text: "Paul", id: 1, groupId: 3, color: "#cc99ff" };
var index = 0;
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.addResource(data, "Owners", index);
Method: addResource()

var data = { text: "Paul", id: 1, groupId: 3, color: "#cc99ff" };
var index = 0;
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.addResource(data, "Owners", index));
databind Not applicable Method: dataBind()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.currentView = 'Month';
scheduleobj.dataBind();
Delete appointment manually Method: deleteAppointment()

$("#Schedule").ejSchedule();
var data = {
Id: 1,
Subject: "Testing",
StartTime: new Date(2014, 4, 5, 10, 00),
EndTime: new Date(2014, 4, 5, 12, 00)};
var scheduleobj = $("#Schedule").data("ejSchedule");
schObj.deleteAppointment(data);
Method: deleteEvent()

var data = {
Id: 1,
Subject: "Testing",
StartTime: new Date(2014, 4, 5, 10, 00),
EndTime: new Date(2014, 4, 5, 12, 00)};
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.deleteEvent(data);
destroy scheduler Method: destroy()

var scheduleobj = $("#Schedule").data("ejSchedule");
schObj.destroy();
Method: destroy()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleObj.destroy();
Get cell details Method: getSlotByElement()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
var $td = $(".e-draggableworkarea table tr td").first();
var slotDetails = obj.getSlotByElement($td);
Method: getCellDetails()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var $td = document.querySelector(".e-content-table tbody tr td");
var cellDetail = scheduleobj.getCellDetails($td);
Get current view appointments Method: getCurrentViewAppointments()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
var currApp= scheduleobj.getCurrentViewAppointments();
Method: getCurrentViewEvents()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var currApp = scheduleobj.getCurrentViewEvents();
Get entire appointment collection Method: getAppointments()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
var AppDetails = scheduleobj.getAppointments();
Method: getEvents()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var AppDetails = scheduleobj.getEvents();
Get current view dates Not applicable Method: getCurrentViewDates()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var AppDetails = scheduleobj.getCurrentViewDates();
Get event details Not applicable Method: getEventDetails()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var AppDetails = scheduleobj.getEventDetails(appElement);
Get occurrences using event ID Not applicable Method: getOccurrencesByID()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var recCollection = scheduleobj.getOccurrencesByID(1);
Get occurrences in the provided date range Not applicable Method: getOccurrencesByRange()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var sDate = new Date(2018, 1, 12);
var eDate = new Date(2018, 1, 17);
var resCollection = scheduleobj.getOccurrencesByRange(sDate, eDate);
Get resource details using index Not applicable Method: getResourceByIndex()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var resCollection = scheduleobj.getResourceByIndex(2);
Show spinner Not applicable Method: showSpinner()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.showSpinner();
Hide spinner Not applicable Method: hideSpinner()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.hideSpinner();
Check whether the time slot is available Not applicable Method: isSlotAvailble()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var sTime = new Date(2018, 1, 14, 09, 30);
var etime = new Date(2018, 1, 14, 10, 30);
var resCollection = scheduleobj.isSlotAvailble(sTime, eTime);
Open the event window manually Not applicable Method: openEditor()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
var $td = document.querySelector(".e-content-table tbody tr td");
var cellDetail = scheduleobj.getCellDetails($td);
scheduleobj.openEditor(cellDetail);
Refresh the scheduler Method: refresh()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.refresh();
Method: refresh()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.refresh();
Refresh the events Method: refreshAppointments()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.refreshAppointments();
Method: refreshEvents()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.refreshEvents();
Refresh the scroller Method: refreshScroller()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.refreshScroller();
Not Applicable
To remove resources dynamically Method: removeResource()

$("#Schedule").ejSchedule();
var resID = 1;
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.removeResource(resID, "Owners");
Method: removeResource()

var obj = { text: "Paul", id: 3, groupId: 1, color: "#cc99ff" };
var index = 0;
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.removeResource(index, "Owners", );
Export schedule as PDF Method: exportSchedule()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.exportSchedule("ActionName","null", null);
Not Applicable
Export scheduler events to ICS Method: exportSchedule()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.exportSchedule("ActionName", "ExportToICS", null);
Method: exportToICalendar()
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleObj.exportToICalendar();
Import scheduler events from ICS Not Applicable Method: importICalendar()
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleObj.importICalendar();
Export scheduler appointments in Excel file Method: exportToExcel()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.exportToExcel("ActionName", null, true);
Method: exportToExcel()
var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleObj.exportToExcel();
Print the scheduler Method: print()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
scheduleobj.print();
Not Applicable
Filter appointments Method: filterAppointments()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
var filter = [{ field: "Subject", operator: "contains", value: "with", predicate: "or" }];
var filteredApp = scheduleobj.filterAppointments(filter);
Not Applicable
Search appointments Method: searchAppointments()

$("#Schedule").ejSchedule();
var scheduleobj = $("#Schedule").data("ejSchedule");
var searchApp = scheduleobj.searchAppointments("with");
Not Applicable
To edit appointments manually Not applicable Method: saveEvent()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.saveEvent({
Id: 1,
Subject: 'Event edited',
StartTime: new Date(2018, 7, 31, 10, 30),
EndTime: new Date(2018, 7, 31, 12, 0)});
Setting work hours Not applicable Method: setWorkHours()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.setWorkHours([new Date(2017, 9, 5)], '04:00', '08:00');
Scrolling to specific time Not applicable Method: scrollTo()

var scheduleobj= document.getElementById('schedule').ej2_instances[0];
scheduleobj.scrollTo('12:00');

Events

Behavior API in Essential JS 1 API in Essential JS 2
Fires on the beginning of each scheduler action Event: actionBegin

var scheduleObj = new ej.Schedule($("#Schedule"), {
actionBegin: function OnActionBegin (args){}
});
Event: actionBegin

let schedule: Schedule = new Schedule({
actionBegin: function onActionBegin(args) {}
});
Fires on the completion of each scheduler action Event: actionComplete

var scheduleObj = new ej.Schedule($("#Schedule"), {
actionComplete: function onActionComplete (args){}
});
Event: actionComplete

let schedule: Schedule = new Schedule({
actionComplete: function onActionComplete (args) {}
});
Fires when the scheduler action gets failed Not applicable Event: actionFailure

let schedule: Schedule = new Schedule({
actionFailure: function onActionFailure(args) {}
});
Fires on appointment hover Event: appointmentHover

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentHover: function onAppointmentHover (args) {}
});
Not applicable
Fires before an appointment gets created Event: beforeAppointmentCreate

var scheduleObj = new ej.Schedule($("#Schedule"), {
beforeAppointmentCreate: function OnBeforeAppointmentCreate (args){}
});
Event: actionBegin

let schedule: Schedule = new Schedule({
actionBegin: function onActionBegin(args) { if(args.requestType == 'eventCreate') {} }
});
Fires before an appointment gets edited Event: beforeAppointmentChange

var scheduleObj = new ej.Schedule($("#Schedule"), {
beforeAppointmentChange: function OnBeforeAppointmentChange (args){}
});
Event: actionBegin

let schedule: Schedule = new Schedule({
actionBegin: function onActionBegin(args) { if(args.requestType == 'eventChange') {} }
});
Fires before an appointment gets deleted Event: beforeAppointmentRemove

var scheduleObj = new ej.Schedule($("#Schedule"), {
beforeAppointmentRemove: function OnBeforeAppointmentRemove (args){}
});
Event: actionBegin

let schedule: Schedule = new Schedule({
actionBegin: function onActionBegin(args) { if(args.requestType == 'eventRemove') {} }
});
Fires before the context menu opens on scheduler Event: beforeContextMenuOpen

var scheduleObj = new ej.Schedule($("#Schedule"), {
beforeContextMenuOpen: function OnBeforeContextMenuOpen (args){}
});
Not applicable
Fires on cell click Event: cellClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
cellClick: function onCellClick (args){}
});
Event: cellClick

let schedule: Schedule = new Schedule({
cellClick: function onCellClick (args) {}
});
Fires on cell double click Event: cellDoubleClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
cellDoubleClick: function oncellDoubleClick (args){}
});
Event: cellDoubleClick

let schedule: Schedule = new Schedule({
cellDoubleClick: function oncellDoubleClick (args) {}
});
Fires on cell hover Event: CellHover

var scheduleObj = new ej.Schedule($("#Schedule"), {
CellHover: function onCellHover (args){}
});
Not applicable
Fires once the scheduler is created Event: create

var scheduleObj = new ej.Schedule($("#Schedule"), {
Create: function onCreate (args){}
});
Event: created

let schedule: Schedule = new Schedule({
created: function oncreated (args) {}
});
Fires on data binding action Not applicable Event: dataBinding

let schedule: Schedule = new Schedule({
dataBinding: function onDataBinding (args) {}
});
Fires after the data is bound to the control Not applicable Event: dataBound

let schedule: Schedule = new Schedule({
dataBinding: function onDataBound (args) {}
});
Fires once the scheduler is destroyed Event: destroy

var scheduleObj = new ej.Schedule($("#Schedule"), {
destroy: function onDestroy (args){}
});
Event: destroyed

let schedule: Schedule = new Schedule({
destroyed: function onDestroyed (args) {}
});
Fires on event click Event: appointmentClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentClick: function onAppointmentClick (args) {}
});
Event: eventClick

let schedule: Schedule = new Schedule({
eventClick: function onAppointmentClick(args) {}
});
Fires on event double click Event: appointmentDoubleClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentDoubleClick: function onappointmentDoubleClick (args) {}
});
Not applicable
Fires for keyboard actions Event: keyDown

var scheduleObj = new ej.Schedule($("#Schedule"), {
keyDown: function onKeyDown (args) {}
});
Not applicable
Fires on context menu item click Event: menuItemClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
menuItemClick: function onMenuItemClick (args) {}
});
Not applicable
Fires on navigation Event: navigation

var scheduleObj = new ej.Schedule($("#Schedule"), {
navigation: function onNavigation (args) {}
});
Event: navigating

let schedule: Schedule = new Schedule({
navigating: function onNavigating(args) {}
});
Fires on popup open Event: appointmentWindowOpen

var scheduleObj = new ej.Schedule($("#Schedule"), {
appointmentWindowOpen: function onAppointmentWindowOpen (args) {}
});
Event: popupOpen

let schedule: Schedule = new Schedule({
popupOpen: function onPopupOpen(args) {}
});
Fires on dragging event Event: drag

var scheduleObj = new ej.Schedule($("#Schedule"), {
drag: function onDrag(args) {}
});
Event: drag

let schedule: Schedule = new Schedule({
drag: function onDrag(args) {}
});
Fires on drag start Event: dragStart

var scheduleObj = new ej.Schedule($("#Schedule"), {
dragStart: function onDragStart(args) {}
});
Event: dragStart

let schedule: Schedule = new Schedule({
dragStart: function onDragStart(args) {}
});
Fires on drag stop Event: dragStop

var scheduleObj = new ej.Schedule($("#Schedule"), {
dragStop: function onDragStop(args) {}
});
Event: dragStop

let schedule: Schedule = new Schedule({
dragStop: function onDragStop(args) {}
});
Fires on overflow button click Event: overflowButtonClick

var scheduleObj = new ej.Schedule($("#Schedule"), {
overflowButtonClick: function onOverflowButtonClick(args) {}
});
Event: popupOpen

let schedule: Schedule = new Schedule({
popupOpen: function onPopupOpen(args) { if(args.requestType == 'EventContainer') {} }
});
Fires on overflow button hover Event: overflowButtonHover

var scheduleObj = new ej.Schedule($("#Schedule"), {
overflowButtonHover: function onOverflowButtonHover(args) {}
});
Not applicable
Fires when the reminder action takes place Event: reminder

var scheduleObj = new ej.Schedule($("#Schedule"), {
reminder: function onReminder(args) {}
});
Not applicable
Fires on resizing event Event: resize

var scheduleObj = new ej.Schedule($("#Schedule"), {
resize: function onResize(args) {}
});
Event: resize

let schedule: Schedule = new Schedule({
resize: function onResize(args) {}
});
Fires on resize start Event: resizeStart

var scheduleObj = new ej.Schedule($("#Schedule"), {
resizeStart: function onResizeStart(args) {}
});
Event: resizeStart

let schedule: Schedule = new Schedule({
resizeStart: function onResizeStart (args) {}
});
Fires on resize stop Event: resizeStop

var scheduleObj = new ej.Schedule($("#Schedule"), {
resizeStop: function onResizeStop(args) {}
});
Event: resizeStop

let schedule: Schedule = new Schedule({
resizeStop: function onResizeStop (args) {}
});
Fires on rendering of every scheduler elements Event: queryCellInfo

var scheduleObj = new ej.Schedule($("#Schedule"), {
queryCellInfo: function onQueryCellInfo (args) {}
Event: renderCell

let schedule: Schedule = new Schedule({
renderCell: function onRenderCell (args) {}
});
Fires before the event rendering on UI Not applicable Event: eventRendered

let schedule: Schedule = new Schedule({
eventRendered: function onEventRendered (args) {}
});

You can refer to our JavaScript Scheduler feature tour page for its groundbreaking feature representations. You can also explore our JavaScript Scheduler example to knows how to present and manipulate data.