jQWidgets
  • Documentation
  • License and Pricing
  • Services
  • Community
    • Forums
    • Blogs
    • Follow Us
    • Client Login
  • About
    • About Us
    • Contact Us
    • FAQ
  • Demo
  • Download

React UI Components

  • Javascript/jQuery
  • Angular
  • Vue
  • React
  • Custom Elements
  • ASP .NET MVC
  • Showcase Demos
  • Responsive Design
  • Theme Builder
Show Demo List

React UI Components

  • jqxGrid
  • jqxTabs
  • jqxTextArea
  • jqxWindow
  • jqxKnob
  • jqxResponsivePanel
  • jqxChart
  • jqxMenu
  • jqxInput
  • jqxDocking
  • jqxGauge
  • jqxNavBar
  • jqxPivotGrid
  • jqxTree
  • jqxPasswordInput
  • jqxNotification
  • jqxBarGauge
  • jqxSortable
  • jqxScheduler
  • jqxNavigationBar
  • jqxMaskedInput
  • jqxPopOver
  • jqxExpander
  • jqxLoader
  • jqxTreeGrid
  • jqxListMenu
  • jqxComplexInput
  • jqxTooltip
  • jqxRating
  • jqxDraw
  • jqxDataTable
  • jqxToolBar
  • jqxFormattedInput
  • jqxColorPicker
  • jqxRangeSelector
  • jqxDragDrop
  • jqxTreeMap
  • jqxComboBox
  • jqxNumberInput
  • jqxScrollView
  • jqxSlider
  • jqxPanel
  • jqxEditor
  • jqxDropDownList
  • jqxDateTimeInput
  • jqxProgressBar
  • jqxScrollBar
  • jqxValidator
  • jqxRibbon
  • jqxListBox
  • jqxCalendar
  • jqxFileUpload
  • jqxSplitter
  • jqxValidator
  • jqxLayout
  • jqxButtons
  • jqxKanban
  • jqxBulletChart
  • jqxDockingLayout

jqxScheduler

  • Default Functionality
  • Timeline Views
  • Agenda View
  • Binding to JSON
  • Binding to ICalendar
  • Appointment Statuses
  • Appointment Restrictions
  • Appointment Customization
  • Appointments Exact Time Rendering
  • Recurring Appointments
  • Time Zones
  • Time Scales Zooming
  • Time Scales Configuration
  • Timeline Views with custom Slot Width
  • Row Height
  • Hide Time Ruler
  • Hide Weekends
  • Context Menu
  • Edit Dialog
  • Work Time
  • Row Height Configuration
  • Month View with Auto Row Height
  • Month View Week Numbers
  • Resources
  • Events
  • Keyboard Navigation
  • Resources with custom column widths
  • Vertical Resources
  • Timeline Views with Resources
  • Data Export
  • Data Printing
  • Localization
  • Fluid Size
  • Right to Left
Theme:
  • Demo
  • App.htm
  • App.js
ReactJS Scheduler. jqxScheduler allows you to restrict appointments features such as dragging, resizing, editing. You can change any appointment property through the Scheduler's API
Loading...
30 October 2016 - 10 December 2016
DayWeekMonth
Room 1
Room 2
Room 3
Room 4
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
30
31
Nov 01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dec 01
02
03
04
05
06
07
08
09
10
Resize is disabled
Edit with Dialog is disabled
Drag is disabled
Drag and Resize are disabled
30
31
Nov 01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dec 01
02
03
04
05
06
07
08
09
10
Room 1
Room 2
Room 3
Room 4

Show Hidden Appointments
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title id='Description'>
        ReactJS Scheduler. jqxScheduler allows you to restrict appointments features such as dragging, resizing, editing. You can change any appointment property through the Scheduler's API
    </title>
    <link rel="stylesheet" href="../jqwidgets/styles/jqx.base.css" type="text/css" />
    <script type="text/javascript" src="../jqwidgets/jqxcore.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxbuttons.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxscrollbar.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdata.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdate.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxscheduler.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxscheduler.api.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdatetimeinput.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxmenu.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxcalendar.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxtooltip.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxwindow.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxcheckbox.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxlistbox.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdropdownlist.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxnumberinput.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxradiobutton.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxinput.js"></script>
    <script type="text/javascript" src="../jqwidgets/globalization/globalize.js"></script>
    <script type="text/javascript" src="../jqwidgets/globalization/globalize.culture.de-DE.js"></script>
    <script type="text/javascript" src="../scripts/demos.js"></script>
</head>
<body>
    <div class="example-description" style="margin-bottom: 3em">
        ReactJS Scheduler. jqxScheduler allows you to restrict appointments features such as dragging, resizing, editing. You can change any appointment property through the Scheduler's API
    </div>
    <div id="app"></div>
    <script src="../build/scheduler_appointmentrestrictions.bundle.js"></script>
</body>
</html>

import React from 'react';
import ReactDOM from 'react-dom';

import JqxScheduler from '../../../jqwidgets-react/react_jqxscheduler.js';
import JqxButton from '../../../jqwidgets-react/react_jqxbuttons.js';

class App extends React.Component {
    componentDidMount() {
        this.refs.myScheduler.ensureAppointmentVisible('id1');
        this.refs.myScheduler.beginAppointmentsUpdate();
        this.refs.myScheduler.setAppointmentProperty('id1', 'resizable', false);
        this.refs.myScheduler.setAppointmentProperty('id2', 'draggable', false);
        this.refs.myScheduler.setAppointmentProperty('id3', 'resizable', false);
        this.refs.myScheduler.setAppointmentProperty('id3', 'draggable', false);
        this.refs.myScheduler.setAppointmentProperty('id4', 'readOnly', true);
        this.refs.myScheduler.setAppointmentProperty('id5', 'hidden', true);
        this.refs.myScheduler.setAppointmentProperty('id6', 'hidden', true);
        this.refs.myScheduler.endAppointmentsUpdate();

        this.refs.showAppointmentsButton.on('click', () => {
            this.refs.myScheduler.beginAppointmentsUpdate();
            this.refs.myScheduler.setAppointmentProperty('id5', 'hidden', false);
            this.refs.myScheduler.setAppointmentProperty('id6', 'hidden', false);
            this.refs.myScheduler.endAppointmentsUpdate();
        });
    }
    render() {
        let appointments = new Array();
        let appointment1 = {
            id: 'id1',
            description: 'George brings projector for presentations.',
            location: '',
            subject: 'Resize is disabled',
            calendar: 'Room 1',
            start: new Date(2016, 10, 23, 9, 0, 0),
            end: new Date(2016, 10, 23, 16, 0, 0)
        }
        let appointment2 = {
            id: 'id2',
            description: '',
            location: '',
            subject: 'Drag is disabled',
            calendar: 'Room 2',
            start: new Date(2016, 10, 24, 10, 0, 0),
            end: new Date(2016, 10, 24, 15, 0, 0)
        }
        let appointment3 = {
            id: 'id3',
            description: '',
            location: '',
            subject: 'Drag and Resize are disabled',
            calendar: 'Room 3',
            start: new Date(2016, 10, 27, 11, 0, 0),
            end: new Date(2016, 10, 27, 13, 0, 0)
        }
        let appointment4 = {
            id: 'id4',
            description: '',
            location: '',
            subject: 'Edit with Dialog is disabled',
            calendar: 'Room 2',
            start: new Date(2016, 10, 23, 16, 0, 0),
            end: new Date(2016, 10, 23, 18, 0, 0)
        }
        let appointment5 = {
            id: 'id5',
            description: '',
            location: '',
            subject: 'Peter',
            calendar: 'Room 1',
            start: new Date(2016, 10, 25, 15, 0, 0),
            end: new Date(2016, 10, 25, 17, 0, 0)
        }
        let appointment6 = {
            id: 'id6',
            description: '',
            location: '',
            subject: 'Nancy',
            calendar: 'Room 4',
            start: new Date(2016, 10, 26, 14, 0, 0),
            end: new Date(2016, 10, 26, 16, 0, 0)
        }
        appointments.push(appointment1);
        appointments.push(appointment2);
        appointments.push(appointment3);
        appointments.push(appointment4);
        appointments.push(appointment5);
        appointments.push(appointment6);
        // prepare the data
        let source =
            {
                dataType: 'array',
                dataFields: [
                    { name: 'id', type: 'string' },
                    { name: 'description', type: 'string' },
                    { name: 'location', type: 'string' },
                    { name: 'subject', type: 'string' },
                    { name: 'calendar', type: 'string' },
                    { name: 'start', type: 'date' },
                    { name: 'end', type: 'date' }
                ],
                id: 'id',
                localData: appointments
            };
        let adapter = new $.jqx.dataAdapter(source);

        let resources =
            {
                colorScheme: 'scheme05',
                dataField: 'calendar',
                source: new $.jqx.dataAdapter(source)
            };

        let appointmentDataFields =
            {
                from: 'start',
                to: 'end',
                id: 'id',
                description: 'description',
                location: 'place',
                subject: 'subject',
                resourceId: 'calendar'
            };

        let views =
            [
                'dayView',
                'weekView',
                'monthView'
            ];
        return (
            <div>
                <JqxScheduler ref='myScheduler'
                    width={850} height={600} source={adapter}
                    date={new $.jqx.date(2016, 11, 23)} showLegend={true}
                    view={'monthView'} resources={resources} views={views}
                    appointmentDataFields={appointmentDataFields}
                />
                <br />
                <JqxButton ref='showAppointmentsButton' value='Show Hidden Appointments' />
            </div>
        )
    }
}

ReactDOM.render(<App />, document.getElementById('app'));

Edit Recurring Appointment
Do you want to edit only this occurrence or the series?
jQWidgets
  • Facebook
  • Youtube
  • Google +
  • Demo
  • Download
  • Documentation
  • License and Pricing
  • Services
  • Forums
  • About
  • Terms of Use
  • Privacy Policy
  • Contact Us

jQWidgets © 2011-2019. All Rights Reserved.