JavaScript/jQuery Scheduler - Overview
The Scheduler is a UI component that represents scheduled data and allows a user to manage it. The following image is an element map. You can click the desired element to navigate to its dedicated article.
The following code adds the Scheduler UI component to your page. The simplest configuration requires only a dataSource to be specified. In addition, you can define a date that should be initially displayed in the date navigator using the currentDate property.
jQuery
$(function() { $("#schedulerContainer").dxScheduler({ dataSource: [{ text: "Website Re-Design Plan", startDate: new Date("2016-04-25T09:30:00.000Z"), endDate: new Date("2016-04-25T11:30:00.000Z") }, { text: "Book Flights to San Fran for Sales Trip", startDate: new Date("2016-04-25T12:00:00.000Z"), endDate: new Date("2016-04-25T13:00:00.000Z") }, // ... ], currentDate: new Date(2016, 4, 25) }); });
Angular
<dx-scheduler [dataSource]="appointments" [currentDate]="currentDate"> </dx-scheduler>
import { DxSchedulerModule } from "devextreme-angular"; // ... export class AppComponent { appointments = [{ text: "Website Re-Design Plan", startDate: new Date("2016-04-25T01:30:00.000Z"), endDate: new Date("2016-04-25T03:30:00.000Z") }, { text: "Book Flights to San Fran for Sales Trip", startDate: new Date("2016-04-25T09:00:00.000Z"), endDate: new Date("2016-04-25T10:00:00.000Z") }, // ... ]; currentDate = new Date(2016, 4, 25); } @NgModule({ imports: [ // ... DxSchedulerModule ], // ... })
Vue
<template> <DxScheduler :data-source="dataSource" :current-date="currentDate" /> </template> <script> import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import DxScheduler from 'devextreme-vue/scheduler'; export default { components: { DxScheduler }, data() { return { currentDate: new Date(2016, 4, 25), dataSource: [{ text: "Website Re-Design Plan", startDate: new Date("2016-04-25T09:30:00.000Z"), endDate: new Date("2016-04-25T11:30:00.000Z") }, { text: "Book Flights to San Fran for Sales Trip", startDate: new Date("2016-04-25T12:00:00.000Z"), endDate: new Date("2016-04-25T13:00:00.000Z") }, // ... ] } } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import Scheduler from 'devextreme-react/scheduler'; const data = [{ text: "Website Re-Design Plan", startDate: new Date("2016-04-25T09:30:00.000Z"), endDate: new Date("2016-04-25T11:30:00.000Z") }, { text: "Book Flights to San Fran for Sales Trip", startDate: new Date("2016-04-25T12:00:00.000Z"), endDate: new Date("2016-04-25T13:00:00.000Z") }, // ... ]; class App extends React.Component { render() { return ( <Scheduler dataSource={data} defaultCurrentDate={new Date(2016, 4, 25)} /> ); } } export default App;
Each data source object represents an appointment to be scheduled and has a special structure. This structure should be similar to that described in the dataSource property. The fields listed below should be present in every appointment.
text
The subject of an appointment.startDate
The start date of an appointment (includes time if needed).endDate
The end date of an appointment (includes time if needed).
If your appointments have a different structure, specify:
textExpr
The data field that provides subjects for appointments.startDateExpr
The data field that provides start dates for appointments.endDateExpr
The data field that provides end dates for appointments.
jQuery
$(function() { $("#schedulerContainer").dxScheduler({ dataSource: [{ subject: 'Meet with a customer', from: new Date("2016-04-10T11:00:00.000Z"), to: new Date("2016-04-10T13:00:00.000Z") }, { subject: 'Discuss results', from: new Date("2016-05-11T12:00:00.000Z"), to: new Date("2016-04-11T13:00:00.000Z") }, // ... ], textExpr: "subject", startDateExpr: "from", endDateExpr: "to" }); });
Angular
<dx-scheduler [dataSource]="appointments" textExpr="subject" startDateExpr="from" endDateExpr="to" [currentDate]="currentDate"> </dx-scheduler>
import { DxSchedulerModule } from "devextreme-angular"; // ... export class AppComponent { appointments = [{ subject: 'Meet with a customer', from: new Date("2016-04-25T01:00:00.000Z"), to: new Date("2016-04-25T03:00:00.000Z") }, { subject: 'Discuss results', from: new Date("2016-05-25T09:00:00.000Z"), to: new Date("2016-04-25T10:00:00.000Z") }, // ... ]; currentDate = new Date(2016, 4, 25); } @NgModule({ imports: [ // ... DxSchedulerModule ], // ... })
Vue
<template> <DxScheduler :data-source="dataSource" text-expr="subject" start-date-expr="from" end-date-expr="to" /> </template> <script> import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import DxScheduler from 'devextreme-vue/scheduler'; export default { components: { DxScheduler }, data() { return { currentDate: new Date(2016, 4, 25), dataSource: [{ subject: 'Meet with a customer', from: new Date("2016-04-10T11:00:00.000Z"), to: new Date("2016-04-10T13:00:00.000Z") }, { subject: 'Discuss results', from: new Date("2016-05-11T12:00:00.000Z"), to: new Date("2016-04-11T13:00:00.000Z") }, // ... ] } } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import Scheduler from 'devextreme-react/scheduler'; const data = [{ subject: 'Meet with a customer', from: new Date("2016-04-10T11:00:00.000Z"), to: new Date("2016-04-10T13:00:00.000Z") }, { subject: 'Discuss results', from: new Date("2016-05-11T12:00:00.000Z"), to: new Date("2016-04-11T13:00:00.000Z") }, // ... ]; class App extends React.Component { render() { return ( <Scheduler dataSource={data} textExpr="subject" startDateExpr="from" endDateExpr="to" /> ); } } export default App;
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.