I have not implemented it before, but you should be able to accomplish this using List View Webpart.
For Example:
private void LoadCalendar()
{
string listName = "YourList";
string viewName = "Your View";
SPWeb web = SPContext.Current.Web;
SPList list = web.Lists[listName];
SPView view = list.Views[viewName];
ListViewWebPart webPart = new ListViewWebPart();
webPart.ListName = list.ID.ToString("B").ToUpper();
webPart.ViewType = ViewType.Calendar;
webPart.ViewGuid = list.Views[view].ID.ToString("B").ToUpper();
webPart.GetDesignTimeHtml();
this.calendarDiv.Controls.Add(webPart);
}
And on your user control / application page:
<div id="calendarDiv" runat="server">
</div>