Agent-readable demo data

Title
Monthly Event Calendar | DayPilot Pro for JavaScript Demo
Tree
DayPilot JavaScript Demo
Catalog root
Default
Description
Read more about the client-side SVG export.

Inline demo script 1

const dp = new DayPilot.Month("dp", {
            cellMarginBottom: 20,
            startDate: "2026-11-01",

            // event creating
            onTimeRangeSelected: async (args) => {
                const {result} = await DayPilot.Modal.prompt("New event name:", "Event");
                dp.clearSelection();
                if (!result) {
                    return;
                }
                const e = new DayPilot.Event({
                    start: args.start,
                    end: args.end,
                    id: DayPilot.guid(),
                    text: result
                });
                dp.events.add(e);
                dp.message("Created");
            },

        });
        dp.init();

        const app = {
            elements: {
                area: document.getElementById("area"),
                exportButton: document.getElementById("export-button"),
                downloadButton: document.getElementById("download-button"),
                preview: document.getElementById("export")
            },
            init() {
                this.addEventHandlers();
                this.loadEventData();
            },
            loadEventData() {
                const events = [];
                // generate and load events
                for (let i = 0; i < 10; i++) {
                    const duration = Math.floor(Math.random() * 1.2);
                    const start = Math.floor(Math.random() * 6) - 3; // -3 to 2

                    events.push({
                        start: new DayPilot.Date("2026-11-04T00:00:00").addDays(start),
                        end: new DayPilot.Date("2026-11-04T12:00:00").addDays(start).addDays(duration),
                        id: DayPilot.guid(),
                        text: "Event " + i
                    });
                }

                dp.update({events});
            },
            addEventHandlers() {
                this.elements.exportButton.addEventListener("click", ev => {
                    ev.preventDefault();
                    this.showExport();
                });
                this.elements.downloadButton.addEventListener("click", ev => {
                    ev.preventDefault();
                    this.download();
                });
            },
            createExport() {
                return dp.exportAs("svg", {
                    area: this.elements.area.value,
                    dateFrom: "2026-11-03",
                    dateTo: "2026-11-17"
                });
            },
            showExport() {
                const element = this.createExport().toElement();
                this.elements.preview.replaceChildren(element);
            },
            download() {
                this.createExport().download();
            }
        };
        app.init();