It is because Controls are not added to a control collection so it cannot catch up on the events (PreRender to be the main one). Even if you add it to a control collection at that stage of the life cycle, it still will not catch up at all! Instead, lets think early with the use of CreateChildControls method:
protected override void CreateChildControls() {
Calender calender = new Calender();
calender.ID = "Calender"; // essential for post backs
Controls.Add(calender);
}
-- Justin Lovell