These have been around for awhile and no official fix in sight so I thought I would share my fixes  to correct some pretty egregious errors.
  1. Using Prev/Next arrows changes the view to Day. To maintain the correct view revert the code in file XTPCalendarThemePrevNextEventButton.cpp function  BOOL CTOPrevNextEventButton::OnLButtonDown(CCmdTarget* /*pObject*/, UINT /*nFlags*/, CPoint point, CTOPrevNextEventButtons *pButtons)
  From:
              CXTPCalendarView* pNewView = GetTheme()->GetCalendarControl()->GetActiveView();             pView = GetTheme()->GetCalendarControl()->GetActiveView();             if (pView != pNewView)             {                 pView = pNewView;                 if (pView && pView->GetViewType() != nViewType)                     GetTheme()->GetCalendarControl()->SwitchActiveView(nViewType);             }
  To:
              pView = GetTheme()->GetCalendarControl()->GetActiveView();
              if (pView && pView->GetViewType() != nViewType)                 GetTheme()->GetCalendarControl()->SwitchActiveView(nViewType);
  2. Toggle from timeline mode to standard sets calendar display to "Today".
  Change the following code in file XTPCalendarControl.cpp function void CXTPCalendarControl::OnCalendarTimeline()
  From:         COleDateTime dtNow(COleDateTime::GetCurrentTime());
          m_eViewType = viewtype; //prev view type         if (viewtype == xtpCalendarDayView)         {             m_nTimelineScale = xtpTSPID_Day;             dtNow -= COleDateTimeSpan(1,3,0,0);         }         else if (viewtype == xtpCalendarWorkWeekView)         {             m_nTimelineScale = xtpTSPID_WorkWeek;             dtNow -= COleDateTimeSpan(5.0);         }         else if (viewtype == xtpCalendarWeekView)         {             m_nTimelineScale = xtpTSPID_Week;             dtNow -= COleDateTimeSpan(7.0);         }         else if (viewtype == xtpCalendarMonthView)         {             m_nTimelineScale = xtpTSPID_Month;             dtNow -= COleDateTimeSpan(11.0);         }
  To:         COleDateTime dtNow(COleDateTime::GetCurrentTime());         COleDateTime dtCurrent(dtNow);
          m_eViewType = viewtype; //prev view type         if (viewtype == xtpCalendarDayView)         {             dtNow = ((CXTPCalendarDayView*)GetActiveView())->GetViewDayDate(0);             m_nTimelineScale = xtpTSPID_Day;             if (dtNow == dtCurrent)                 dtNow -= COleDateTimeSpan(1,3,0,0);         }         else if (viewtype == xtpCalendarWorkWeekView)         {             dtNow = ((CXTPCalendarWeekView*)GetActiveView())->GetViewDayDate(0);             m_nTimelineScale = xtpTSPID_WorkWeek;             if (dtNow == dtCurrent)                 dtNow -= COleDateTimeSpan(5.0);         }         else if (viewtype == xtpCalendarWeekView)         {             dtNow = ((CXTPCalendarWeekView*)GetActiveView())->GetViewDayDate(0);             m_nTimelineScale = xtpTSPID_Week;             if (dtNow == dtCurrent)                 dtNow -= COleDateTimeSpan(7.0);         }         else if (viewtype == xtpCalendarMonthView)         {             dtNow = ((CXTPCalendarMonthView*)GetActiveView())->GetViewDayDate(0);             m_nTimelineScale = xtpTSPID_Month;             if (dtNow == dtCurrent)                 dtNow -= COleDateTimeSpan(11.0);         }
  I hope this helps folks out and hopefully CJ will see fit to incorporate or improve upon these fixes in upcoming releases.
  
          |