html5 javascript scheduler milestones

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

react milestone scheduler component

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:

ProductLitePro
DayPilot for JavaScript
DayPilot for ASP.NET WebForms
DayPilot for ASP.NET MVC
DayPilot for Java