Agent-readable demo data

Title
Open-Source JavaScript Event Calendar | DayPilot Lite for JavaScript Demo
Tree
DayPilot JavaScript Demo
Catalog root
Lite
Description
Note: Customize the component using Calendar UI Builder and download a ready-to-run project. Read more about the JavaScript event calendar.

Inline demo script 1

const dp = new DayPilot.Calendar("dp", {
            viewType: "Week",
            startDate: "2022-03-21",
            headerDateFormat: "dddd",
            contextMenu: new DayPilot.Menu({
                items: [
                    {
                        text: "Show event ID",
                        onClick: (args) => {
                            const e = args.source;
                            DayPilot.Modal.alert("Event value: " + e.id());
                        }
                    },
                    {
                        text: "Show event text",
                        onClick: (args) => {
                            const e = args.source;
                            DayPilot.Modal.alert("Event text: " + e.text());
                        }
                    },
                    {
                        text: "Show event start",
                        onClick: (args) => {
                            const e = args.source;
                            DayPilot.Modal.alert("Event start: " + e.start());
                        }
                    },
                    {
                        text: "Delete",
                        onClick: (args) => {
                            dp.events.remove(args.source);
                        }
                    }
                ]
            }),
            onEventClick: async args => {

                const colors = [
                    {name: "Blue", id: "#3c78d8"},
                    {name: "Green", id: "#6aa84f"},
                    {name: "Yellow", id: "#f1c232"},
                    {name: "Red", id: "#cc0000"},
                ];

                const form = [
                    {name: "Text", id: "text"},
                    {name: "Start", id: "start", type: "datetime"},
                    {name: "End", id: "end", type: "datetime"},
                    {name: "Color", id: "barColor", type: "select", options: colors},
                ];

                const modal = await DayPilot.Modal.form(form, args.e.data);

                if (modal.canceled) {
                    return;
                }

                dp.events.update(modal.result);

            },
            onTimeRangeSelected: async args => {

                const form = [
                    {name: "Name", id: "text"}
                ];

                const data = {
                    text: "Event"
                };

                const modal = await DayPilot.Modal.form(form, data);

                dp.clearSelection();

                if (modal.canceled) {
                    return;
                }

                dp.events.add({
                    start: args.start,
                    end: args.end,
                    id: DayPilot.guid(),
                    text: modal.result.text,
                    barColor: "#3c78d8"
                });
            },
            onHeaderClick: args => {
                console.log("args", args);
            },
            onBeforeEventRender: args => {
                args.data.barBackColor = "transparent";
                if (!args.data.barColor) {
                    args.data.barColor = "#333";
                }
                args.data.areas = [
                    {
                        right: 6,
                        top: 6,
                        width: 18,
                        height: 18,
                        style: "cursor:pointer;",
                        backColor: "#cccccc66",
                        borderRadius: "50%",
                        padding: 2,
                        fontColor: "#333333",
                        verticalAlignment: "center",
                        horizontalAlignment: "center",
                        symbol: "../icons/daypilot.svg#threedots-h",
                        action: "ContextMenu",
                        toolTip: "Menu"
                    }
                ];
            },
        });
        dp.init();

        const app = {
            init() {
                this.loadEvents();
            },
            loadEvents() {
                const events = [
                    {
                        start: "2022-03-21T11:00:00",
                        end: "2022-03-21T14:00:00",
                        id: 1,
                        text: "Event 1",
                        barColor: "#3c78d8"
                    },
                    {
                        start: "2022-03-22T12:00:00",
                        end: "2022-03-22T15:00:00",
                        id: 2,
                        text: "Event 2",
                        barColor: "#6aa84f"
                    },
                    {
                        start: "2022-03-23T10:00:00",
                        end: "2022-03-23T15:00:00",
                        id: 3,
                        text: "Event 3",
                        barColor: "#f1c232"
                    },
                    {
                        start: "2022-03-24T12:00:00",
                        end: "2022-03-24T16:00:00",
                        id: 4,
                        text: "Event 4",
                        barColor: "#cc0000"
                    },
                ];
                dp.update({events});
            }
        };
        app.init();