Download DayPilot Lite (open-source).
See also the advanced features of DayPilot Pro (commercial).

ArrayListBinding.aspx

    <daypilot:daypilotcalendar 
          id="DayPilotCalendar1"
          runat="server"
          DataStartField="Start"
          dataendfield="End"
          datatextfield="Name"
          datavaluefield="Id">
        </daypilot:daypilotcalendar>

ArrayListBindix.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DayPilotCalendar1.DataSource = getData();
            DataBind();
        }
    }

    ArrayList getData()
    {
        ArrayList al = new ArrayList();

        CustomEvent ce = new CustomEvent();
        ce.Start = Convert.ToDateTime("15:30");
        ce.End = Convert.ToDateTime("16:30");
        ce.Name = "My event";
        ce.Id = "1";

        al.Add(ce);

        return al;

    }

    public class CustomEvent
    {
        private string name;
        private DateTime start;
        private DateTime end;
        private string id;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public DateTime Start
        {
            get { return start; }
            set { start = value; }
        }

        public DateTime End
        {
            get { return end; }
            set { end = value; }
        }

        public string Id
        {
            get { return id; }
            set { id = value; }
        }
    }