The onBeforeResHeaderRender event is fired once it for every row during init/update (when resources are loaded). See also onBeforeRowHeaderRender which is called on demand whenever the row header is rendered.
DayPilot.Scheduler.onBeforeResHeaderRender(args)
The args.resource.columns property is an array of column properties. Structure of the items (since build 8.1.2007):
The column index counting (args.resource.columns[]) depends on rowHeaderColumnsMode ("Tabular" or "Legacy") - see below.
Since version 2019.4.4063, the Scheduler uses Tabular mode for the row header columns by default.
Properties of the first (default) column are controlled using args.row. The HTML of the first column is always defined using args.row.html.
Additional columns (which area available only if columns are specified using rowHeaderColumns) are acessible using args.row.columns[] array. That means the second column is accessible as args.row.columns[0].
dp.onBeforeResHeaderRender = function(args) { if (args.resource.loaded === false) { args.resource.html += " (loaded dynamically)"; } };