Agent-readable demo data
- Title
- RTL (Monthly Event Calendar) | DayPilot Pro for JavaScript Sandbox
- Tree
- DayPilot JavaScript Sandbox
- Catalog root
- Default
- Description
- Read more about the monthly calendar right-to-left (RTL) mode.
Inline demo script 1
const dp = new DayPilot.Month("dp", {
rtl: true,
cellMarginBottom: 20,
startDate: DayPilot.Date.today(),
onEventMoved: (args) => {
dp.message("Moved: " + args.e.text());
},
onEventResized: (args) => {
dp.message("Resized: " + args.e.text());
},
onTimeRangeSelected: async (args) => {
const modal = await DayPilot.Modal.prompt("New event name:", "Event");
dp.clearSelection();
if (!modal.result) return;
dp.events.add({
start: args.start,
end: args.end,
id: DayPilot.guid(),
text: modal.result
});
dp.message("Created");
},
onEventClicked: (args) => {
DayPilot.Modal.alert(args.e.text());
},
onHeaderClicked: (args) => {
DayPilot.Modal.alert("day: " + args.header.dayOfWeek);
}
});
dp.init();
const app = {
loadData() {
const events = [];
let start = DayPilot.Date.today().firstDayOfMonth();
for (let i = 0; i < 15; i++) {
const add = Math.floor(Math.random() * 2);
// const add = 1;
start = start.addDays(add);
if (start.getDayOfWeek() === 6) {
start = start.addDays(2);
}
if (start.getDayOfWeek() === 0) {
start = start.addDays(1);
}
events.push({
start: start,
end: start.addDays(1),
id: DayPilot.guid(),
barColor: app.barColor(i),
text: "Event " + (i + 1)
});
}
dp.update({events});
},
barColor(i) {
const colors = ["#6FA8DC", "#93C47D", "#FFD966", "#E06666"];
return colors[i % 4];
}
};
app.loadData();