The client-side AfterRender event is fired every time the Calendar rendering/updating is completed.
It has access to custom data passed to Update method on the server side.
JavaScript
This event only fires during the initial load.
<div id="dp"></div>
<script type="text/javascript">
  var dp = new DayPilot.Calendar("dp");
  dp.onAfterRender = function (args) {
    console.log("Rendering finished.");
  };
  // ...
  dp.init();
</script>
See also:
  ASP.NET WebForms
 <daypilot:DayPilotCalendar 
  id="DayPilotCalendar1" 
  runat="server" 
  ...
  AfterRenderJavaScript="afterRender(data, isCallBack);"         
/>
<script type="text/javascript">
  function afterRender(data, isCallBack) {
    if (isCallBack) {
      console.log("Callback finished. Custom data received: " + data);
    }
  }
</script>
  ASP.NET MVC
 @Html.DayPilotCalendar("dpc", new DayPilotCalendarConfig {
  BackendUrl = ResolveUrl("~/Calendar/Backend"),
  ...
  AfterRenderJavaScript = "afterRender(data, isCallBack)"
})
<script type="text/javascript">
  function afterRender(data, isCallBack) {
    if (isCallBack) {
      console.log("Callback finished. Custom data received: " + data);
    }
  }
</script>
 DayPilot
DayPilot