jQuery UI Widgets Forums Scheduler Would appreciate some insights on: Scheduler.

This topic contains 1 reply, has 2 voices, and was last updated by  admin 9 months, 1 week ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author

  • jovanovic
    Participant

    Is it possible to configure jqxScheduler to allow recurring appointments with exceptions using jQuery?


    admin
    Keymaster

    Hi,

    Yes, this is possible. Please, take a look at the example below:

    <link rel="stylesheet" href="jqwidgets/styles/jqx.base.css" type="text/css" />
    <script src="jqwidgets/jqxcore.js"></script>
    <script src="jqwidgets/jqxdata.js"></script>
    <script src="jqwidgets/jqxbuttons.js"></script>
    <script src="jqwidgets/jqxscrollbar.js"></script>
    <script src="jqwidgets/jqxmenu.js"></script>
    <script src="jqwidgets/jqxcalendar.js"></script>
    <script src="jqwidgets/jqxscheduler.js"></script>
    <script src="jqwidgets/jqxscheduler.api.js"></script>
    <script src="jqwidgets/jqxscheduler.view.js"></script>
    <script src="jqwidgets/jqxscheduler.editdialog.js"></script>
    <script src="jqwidgets/jqxscheduler.recurrence.js"></script>
    <script src="jqwidgets/jqxscheduler.localization.js"></script>
    
    <div id="scheduler"></div>
    
    <script>
    $(document).ready(function () {
        // Define scheduler source
        var 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' },
                { name: 'recurrenceRule', type: 'string' },
                { name: 'recurrenceException', type: 'string' }
            ],
            id: 'id',
            localData: [
                {
                    id: "id1",
                    description: "Weekly Team Meeting",
                    subject: "Team Sync",
                    calendar: "Office",
                    start: new Date(2025, 7, 1, 10, 0, 0),
                    end: new Date(2025, 7, 1, 11, 0, 0),
                    // Repeat every week on Friday until end of August 2025
                    recurrenceRule: "FREQ=WEEKLY;BYDAY=FR;UNTIL=20250831T000000Z",
                    // Skip the meeting on August 15 and August 22
                    recurrenceException: "20250815T100000Z,20250822T100000Z"
                }
            ]
        };
    
        var adapter = new $.jqx.dataAdapter(source);
    
        $("#scheduler").jqxScheduler({
            date: new $.jqx.date(2025, 7, 1),
            width: '100%',
            height: 600,
            source: adapter,
            view: 'weekView',
            appointmentDataFields: {
                from: "start",
                to: "end",
                id: "id",
                description: "description",
                subject: "subject",
                recurrenceRule: "recurrenceRule",
                recurrenceException: "recurrenceException"
            },
            views: ['dayView', 'weekView', 'monthView'],
            ready: function () {
                console.log("Scheduler ready with recurring appointment and exceptions!");
            }
        });
    });
    </script>

    What Happens Here
    The appointment recurs every Friday (FREQ=WEEKLY;BYDAY=FR).

    Recurrence stops at August 31, 2025 (UNTIL=20250831T000000Z).

    The occurrences on August 15 and 22 are skipped using recurrenceException.

    Best regards,
    Peter Stoev

    jQWidgets Team
    https://www.jqwidgets.com/

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.