
The Scheduler component can display milestones. Milestones are special events displayed at a specific point in time. They have no duration and the position is centered around the start time.
JavaScript Scheduler
To define a milestone in the JavaScript Scheduler, add an event with type property set to "Milestone".
- Milestones are marked with *_task_milestone CSS class (e.g. scheduler_default_task_milestone for the default theme).
- Event resizing is disabled for milestones.
- The text property is ignored for milestones. You can display custom text next to the milestone icon using htmlRight or htmlLeft properties.
Example
dp.events.list = [
{
start: "2022-01-02T00:00:00",
resource: "A",
id: 1,
type: "Milestone",
htmlRight: "Milestone 1"
},
// ...
];
API: events.list, resources.
The examples place a milestone in Room A at the start of November 8, with equal start and end timestamps. Use htmlLeft or htmlRight as described above if it needs a visible label.
The framework examples use DayPilot Pro. For installation, see the Angular, React or Vue Scheduler guide.
Angular
import {Component} from "@angular/core";
import {DayPilot, DayPilotModule} from "daypilot-pro-angular";
@Component({
selector: "app-scheduler-example",
standalone: true,
imports: [DayPilotModule],
template: `
<daypilot-scheduler [config]="config"></daypilot-scheduler>
`
})
export class SchedulerExampleComponent {
config: DayPilot.SchedulerConfig = {
startDate: "2026-11-01",
days: 30,
scale: "Day",
timeHeaders: [{groupBy: "Month"}, {groupBy: "Day", format: "d"}],
resources: [{id: "A", name: "Room A"}, {id: "B", name: "Room B"}],
events: [{id: 1, text: "Release", resource: "A", start: "2026-11-08", end: "2026-11-08", type: "Milestone"}]
};
}
React
import React from "react";
import {DayPilot, DayPilotScheduler} from "daypilot-pro-react";
export default function SchedulerExample() {
return <div>
<DayPilotScheduler
startDate={"2026-11-01"}
days={30}
scale={"Day"}
timeHeaders={[{groupBy: "Month"}, {groupBy: "Day", format: "d"}]}
resources={[{id: "A", name: "Room A"}, {id: "B", name: "Room B"}]}
events={[{id: 1, text: "Release", resource: "A", start: "2026-11-08", end: "2026-11-08", type: "Milestone"}]}
/>
</div>;
}
Tutorial
Vue
<script setup>
import {DayPilot, DayPilotScheduler} from "daypilot-pro-vue";
const startDate = "2026-11-01";
const days = 30;
const scale = "Day";
const timeHeaders = [{groupBy: "Month"}, {groupBy: "Day", format: "d"}];
const resources = [{id: "A", name: "Room A"}, {id: "B", name: "Room B"}];
const events = [{id: 1, text: "Release", resource: "A", start: "2026-11-08", end: "2026-11-08", type: "Milestone"}];
</script>
<template>
<div>
<DayPilotScheduler
:startDate="startDate"
:days="days"
:scale="scale"
:timeHeaders="timeHeaders"
:resources="resources"
:events="events"
/>
</div>
</template>
Availability
Availability of this feature in DayPilot editions:
| Product | Lite | Pro |
|---|---|---|
| DayPilot for JavaScript | ||
| DayPilot for ASP.NET WebForms | ||
| DayPilot for ASP.NET MVC | ||
| DayPilot for Java |
DayPilot