How to reproduce: public partial class Form1 : Form { public Form1() { InitializeComponent(); new RadControlSpyForm().Show(); this.radGanttView.GanttViewElement.GraphicalViewElement.OnePixelTime = new TimeSpan(6, 0, 0); this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineRange = TimeRange.YearHalves; this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineStart = new DateTime(2016, 12, 25); this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineEnd = new DateTime(2017, 1, 27); this.AddTasks(); } private void AddTasks() { //Setup data items GanttViewDataItem item1 = new GanttViewDataItem(); item1.Start = new DateTime(2017, 1, 1); item1.End = new DateTime(2017, 1, 20); item1.Progress = 30m; item1.Title = "Summary task.1. title"; GanttViewDataItem subItem11 = new GanttViewDataItem(); subItem11.Start = new DateTime(2017, 1, 1); subItem11.End = new DateTime(2017, 1, 20); subItem11.Progress = 10m; subItem11.Title = "Sub-task.1.1 title"; GanttViewDataItem subItem12 = new GanttViewDataItem(); subItem12.Start = new DateTime(2017, 1, 1); subItem12.End = new DateTime(2017, 1, 20); subItem12.Progress = 20m; subItem12.Title = "Sub-task.1.2 title"; GanttViewDataItem subItem13 = new GanttViewDataItem(); subItem13.Start = new DateTime(2017, 1, 5); subItem13.End = new DateTime(2017, 1, 20); subItem13.Progress = 20m; subItem13.Title = "Sub-task.1.3 title"; //Add subitems item1.Items.Add(subItem11); item1.Items.Add(subItem12); item1.Items.Add(subItem13); this.radGanttView.Items.Add(item1); GanttViewTextViewColumn titleColumn = new GanttViewTextViewColumn("Title"); GanttViewTextViewColumn startColumn = new GanttViewTextViewColumn("Start"); GanttViewTextViewColumn endColumn = new GanttViewTextViewColumn("End"); this.radGanttView.GanttViewElement.Columns.Add(titleColumn); this.radGanttView.GanttViewElement.Columns.Add(startColumn); this.radGanttView.GanttViewElement.Columns.Add(endColumn); } } Workaround: public partial class Form1 : Form { public Form1() { InitializeComponent(); new RadControlSpyForm().Show(); this.radGanttView.GanttViewElement.GraphicalViewElement.OnePixelTime = new TimeSpan(6, 0, 0); this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineRange = TimeRange.YearHalves; this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineBehavior = new CustomTimelineBehavior(); this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineStart = new DateTime(2016, 12, 25); this.radGanttView.GanttViewElement.GraphicalViewElement.TimelineEnd = new DateTime(2017, 1, 27); this.AddTasks(); } private void AddTasks() { //Setup data items GanttViewDataItem item1 = new GanttViewDataItem(); item1.Start = new DateTime(2017, 1, 1); item1.End = new DateTime(2017, 1, 20); item1.Progress = 30m; item1.Title = "Summary task.1. title"; GanttViewDataItem subItem11 = new GanttViewDataItem(); subItem11.Start = new DateTime(2017, 1, 1); subItem11.End = new DateTime(2017, 1, 20); subItem11.Progress = 10m; subItem11.Title = "Sub-task.1.1 title"; GanttViewDataItem subItem12 = new GanttViewDataItem(); subItem12.Start = new DateTime(2017, 1, 1); subItem12.End = new DateTime(2017, 1, 20); subItem12.Progress = 20m; subItem12.Title = "Sub-task.1.2 title"; GanttViewDataItem subItem13 = new GanttViewDataItem(); subItem13.Start = new DateTime(2017, 1, 5); subItem13.End = new DateTime(2017, 1, 20); subItem13.Progress = 20m; subItem13.Title = "Sub-task.1.3 title"; //Add subitems item1.Items.Add(subItem11); item1.Items.Add(subItem12); item1.Items.Add(subItem13); this.radGanttView.Items.Add(item1); GanttViewTextViewColumn titleColumn = new GanttViewTextViewColumn("Title"); GanttViewTextViewColumn startColumn = new GanttViewTextViewColumn("Start"); GanttViewTextViewColumn endColumn = new GanttViewTextViewColumn("End"); this.radGanttView.GanttViewElement.Columns.Add(titleColumn); this.radGanttView.GanttViewElement.Columns.Add(startColumn); this.radGanttView.GanttViewElement.Columns.Add(endColumn); } } public class CustomTimelineBehavior : BaseGanttViewTimelineBehavior { public override DateTime AdjustedTimelineStart { get { if (this.GraphicalViewElement.TimelineRange == TimeRange.YearHalves) { DateTime result = this.GraphicalViewElement.TimelineStart; int halfYearDay = DateTime.IsLeapYear(result.Year) ? 366 / 2 : 365 / 2; if (result.DayOfYear < halfYearDay) { return new DateTime(result.Year, 1, 1); } else { return new DateTime(result.Year, 1, 1).AddDays(halfYearDay); } } return base.AdjustedTimelineStart; } } public override DateTime AdjustedTimelineEnd { get { if (this.GraphicalViewElement.TimelineRange == TimeRange.YearHalves) { DateTime result = this.GraphicalViewElement.TimelineEnd; int halfYearDay = DateTime.IsLeapYear(result.Year) ? 366 / 2 : 365 / 2; if (result.DayOfYear < halfYearDay) { return new DateTime(result.Year, 1, 1).AddDays(halfYearDay + 1); } else { return new DateTime(result.Year, 1, 1).AddYears(1); } } return base.AdjustedTimelineEnd; } } }