The Calendar supports custom event sorting (inside columns). 

The default sorting rule corresponds to:

start asc, end desc

You can specify a custom sorting expression using EventSortExpression property.

JavaScript

JavaScript uses values of .sort array of DayPilot.Event.data and .sortDirections property to sort the events. 

It can be enabled by specifying the sort directions in .sortDirections.

<div id="dp"></div>
<script type="text/javascript">
  var dp = new DayPilot.Calendar("dp");
  dp.sortDirections = ["asc", "desc"];
  dp.events.list = [
    {
      start: "2013-03-25T00:00:00",
      end: "2013-03-25T12:00:00",
      id: "123",
      text: "Event 123",
      sort: [1, "Event 123"]
    },
    {
      start: "2013-03-25T00:00:00",
      end: "2013-03-25T12:00:00",
      id: "124",
      text: "Event 124",
      sort: [2, "Event 124"]
    }
  ];
  // ...
  dp.init();
</script>

ASP.NET WebForms

EventSortExpression="priority asc, name desc"

The "priority" and "name" fields must be available in the data source.

ASP.NET MVC

Use EventSortExpression to override the default sorting rule for concurrent events.

You can use custom database fields in the sort expression.

Example

EventSortExpression = "priority asc, name desc";