Source code of the tutorial is available for download.

scheduler.component.ts
import {Component, ViewChild, AfterViewInit} from "@angular/core";
import {DayPilot, DayPilotSchedulerComponent} from "daypilot-pro-angular";
import {DataService} from "./data.service";{}
@Component({
selector: 'scheduler-component',
template: `<daypilot-scheduler [config]="config" [events]="events" #scheduler></daypilot-scheduler>`,
styles: [``]
})
export class SchedulerComponent implements AfterViewInit {
@ViewChild("scheduler")
scheduler: DayPilotSchedulerComponent;
events: any[] = [];
config: any = {
// ...
resources: [
{ name: "Resource 1", id: "R1", holidays: [
{ start: "2017-09-05", end: "2017-09-10", backColor: "#f4cccc"}
]},
{ name: "Resource 2", id: "R2", holidays: [
{ start: "2017-09-04", end: "2017-09-06", backColor: "#d9ead3"}
]},
{ name: "Resource 3", id: "R3"},
{ name: "Resource 4", id: "R4"},
{ name: "Resource 5", id: "R5"},
{ name: "Resource 6", id: "R6"},
{ name: "Resource 7", id: "R7"},
{ name: "Resource 8", id: "R8"},
{ name: "Resource 9", id: "R9"},
{ name: "Resource 10", id: "R10"},
],
onBeforeCellRender: args => {
let dp = this.scheduler.control;
let component = this;
let row = dp.rows.find(args.cell.resource);
let holidays = row.data.holidays;
if (!holidays) {
return;
}
let item = holidays.find(function(range) {
let start = new DayPilot.Date(range.start);
let end = new DayPilot.Date(range.end).addDays(1);
return DayPilot.Util.overlaps(start, end, args.cell.start, args.cell.end);
});
if (item) {
args.cell.backColor = item.backColor;
}
},
};
// ...
}