Completed
Last Updated: 07 Dec 2016 14:04 by ADMIN
Broken in version R3 2016 (2016.3.913)

How to reproduce:
SchedulerDayViewElement dayViewElement = (SchedulerDayViewElement)this.radScheduler1.ViewElement;
dayViewElement.SetColumnWidth(1, 2);

Workaround:
IDictionary cachedSum = (IDictionary)dayViewElement.GetType().GetField("cachedSum", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dayViewElement);
cachedSum.Clear();
IDictionary cachedColumnHorizontalOffset = (IDictionary)dayViewElement.GetType().GetField("cachedColumnHorizontalOffset", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dayViewElement);
cachedColumnHorizontalOffset.Clear();

SchedulerDayViewElement dayViewElement = (SchedulerDayViewElement)this.radScheduler1.ViewElement;
dayViewElement.SetColumnWidth(1, 2);
Completed
Last Updated: 09 Nov 2016 13:52 by Rodrigo Cesar
1. Add RadSchedulerNavigator and a RadScheduler. Change the view type to Week View.
2. Associate the RadSchedulerNavigator to RadScheduler. Change the PC's time zone to (UTC-03:00) Brasilia Time zone
3. Change the PC's date to 21 Oct 2016 and run the application.
4. When you change the time zone in RadSchedulerNavigator to (UTC-03:00) Brasilia Time zone, you will notice that the ruler starts from 23.

Workaround: 

public Form1()
{
    InitializeComponent();

    radSchedulerNavigator1.AssociatedScheduler = radScheduler1;

    this.radScheduler1.ActiveViewChanged += radScheduler1_ActiveViewChanged;
    this.radScheduler1.CellElementMouseDown += radScheduler1_CellElementMouseDown; 
    this.radScheduler1.AppointmentEditDialogShowing += radScheduler1_AppointmentEditDialogShowing;
    radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Week; 
}

DateTime? date = null;

private void radScheduler1_CellElementMouseDown(object sender, MouseEventArgs e)
{
    SchedulerCellElement cell = this.radScheduler1.ElementTree.GetElementAtPoint(e.Location) as SchedulerCellElement;
    if (cell != null)
    {
        date = cell.Date;
    }
}

CustomEditAppointmentDialog dialog = null;

private void radScheduler1_AppointmentEditDialogShowing(object sender, AppointmentEditDialogShowingEventArgs e)
{
    if (dialog == null)
    {
        dialog = new CustomEditAppointmentDialog();
    }
    e.AppointmentEditDialog = dialog;
    if (date != null && !e.Appointment.Start.Equals(date))
    {
        e.Appointment.Start = (DateTime)date;
    }
    date = null;
}

private void radScheduler1_ActiveViewChanged(object sender, Telerik.WinControls.UI.SchedulerViewChangedEventArgs e)
{
    SchedulerDayView dayView = e.NewView as SchedulerDayView;
    SchedulerWeekView weekView = e.NewView as SchedulerWeekView;
    if (dayView != null || weekView != null)
    {
        RulerPrimitive ruler = (this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement).DataAreaElement.Ruler;
        ruler.GetType().GetField("defaultOffset", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(ruler, 0.0f);
    }
}

public class CustomEditAppointmentDialog : EditAppointmentDialog
{
    protected override void LoadSettingsFromEvent(IEvent sourceEvent)
    {
        base.LoadSettingsFromEvent(sourceEvent);
        this.dateStart.Value = sourceEvent.Start;
        this.timeStart.Value  = sourceEvent.Start;
    }
}



Completed
Last Updated: 20 Oct 2016 09:30 by Ralf
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: Scheduler/Reminder
Type: Bug Report
3
Workaround:

Sub New()

    InitializeComponent()
     
    Me.RadScheduler1.ActiveViewType = UI.SchedulerViewType.Week
    AddHandler Me.RadSchedulerNavigator1.SchedulerNavigatorElement.ShowWeekendCheckBox.ToggleStateChanged, AddressOf ToggleStateChanged
End Sub

Private Sub ToggleStateChanged(sender As Object, args As UI.StateChangedEventArgs) 
    Me.RadScheduler1.SchedulerElement.RefreshViewElement()
End Sub
Completed
Last Updated: 19 Dec 2016 09:39 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    DailyRecurrenceRule rrule = new DailyRecurrenceRule(appointment.Start, 1, 10); 
    appointment.RecurrenceRule = rrule;
    this.radScheduler1.Appointments.Add(appointment);
    this.radScheduler1.EnableExactTimeRendering = true;
    
}

Click "This month" in RadSchedulerNavigator.

Workaround: In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Unplanned
Last Updated: 04 Oct 2016 08:13 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Week;
    SchedulerWeekView weekView = this.radScheduler1.GetWeekView();
    weekView.RangeFactor = ScaleRange.QuarterHour;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    DailyRecurrenceRule rrule = new DailyRecurrenceRule(appointment.Start, 1, 10); 
    appointment.RecurrenceRule = rrule;
    this.radScheduler1.Appointments.Add(appointment);
}

Workaround: In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Completed
Last Updated: 19 Dec 2016 09:48 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Week;
    SchedulerWeekView weekView = this.radScheduler1.GetWeekView();
    weekView.RangeFactor = ScaleRange.QuarterHour;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    this.radScheduler1.Appointments.Add(appointment);
}

private void radCheckBox1_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
    this.radScheduler1.EnableExactTimeRendering = this.radCheckBox1.Checked;
}

Please refer to the attached gif file.

Workaround:
In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Completed
Last Updated: 11 May 2017 05:43 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    this.radScheduler1.ActiveViewType = SchedulerViewType.Day;
    RulerPrimitive ruler = (this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement).DataAreaElement.Ruler;
    ruler.RangeFactor= ScaleRange.TenMinutes;
}

Workaround:

this.radScheduler1.GetDayView().RangeFactor = ScaleRange.TenMinutes;
Completed
Last Updated: 21 Oct 2016 05:42 by ADMIN
Unplanned
Last Updated: 04 Oct 2016 08:11 by ADMIN
Please refer to the attached screenshot.

Workaround:

public Form1()
{
    InitializeComponent(); 

    this.radScheduler1.ElementProvider = new MyElementProvider(this.radScheduler1);
}

public class MyElementProvider : SchedulerElementProvider
{
    public MyElementProvider(RadScheduler scheduler) : base(scheduler)
    {
    }

    protected override T CreateElement<T>(SchedulerView view, object context)
    {
        if (typeof(T) == typeof(AppointmentElement))
        {
            return new CustomAppointmentElement(this.Scheduler, view, (IEvent)context)as T;
        }

        return base.CreateElement<T>(view, context);
    }
}

public class CustomAppointmentElement : AppointmentElement
{
    protected override Type ThemeEffectiveType     
    { 
        get    
        { 
            return typeof(AppointmentElement);     
        }
    }

    public CustomAppointmentElement(RadScheduler scheduler,
        SchedulerView view, IEvent appointment) : base(scheduler, view, appointment)
    {
    }

    protected override SizeF ArrangeOverride(SizeF finalSize)
    {
        SizeF s = base.ArrangeOverride(finalSize);
        return new SizeF(s.Width - 5,s.Height);
    }
}
Unplanned
Last Updated: 04 Oct 2016 08:12 by ADMIN
To reproduce:

this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
for (int i = 0; i < 10; i++)
{
    this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddHours(i),TimeSpan.FromMinutes(30),"A"+i));
}
 
Scroll to the bottom and try to select an appointment. You will notice that selection is not possible. The attached gif file illustrates the incorrect behavior. 

Workaround: use the overflow button by setting the SchedulerMonthView.EnableCellOverflowButton property to true:
SchedulerMonthView monthView = this.radScheduler1.GetMonthView();
 monthView.EnableCellOverflowButton = true;
Completed
Last Updated: 04 Oct 2016 07:41 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Month;

    CultureInfo culture = new CultureInfo("en-US");
    culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
    this.radScheduler1.Culture = culture;
   
    Appointment a = new Appointment(new DateTime(2016, 8, 29, 0, 0, 0), new DateTime(2016, 9, 5, 0, 0, 0), "Meeting");

    this.radScheduler1.Appointments.Add(a);

    this.radScheduler1.FocusedDate = new DateTime(2016, 9, 1);

    this.radScheduler1.EnableExactTimeRendering = true;
}

When you run the application starting scrolling with the mouse wheel up/down.

Workaround: do not set the FirstDayOfWeek to Monday.
Unplanned
Last Updated: 16 Feb 2024 13:02 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    CultureInfo culture = new CultureInfo("en-US");
    culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
    this.radScheduler1.Culture = culture;
    this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Month;

    Appointment a = new Appointment(new DateTime(2016, 8, 29, 0, 0, 0), new DateTime(2016, 9, 5, 0, 0, 0), "Meeting");

    this.radScheduler1.Appointments.Add(a);

    this.radScheduler1.FocusedDate = new DateTime(2016, 9, 1);
}

Please refer to the attached gif file.
Completed
Last Updated: 07 Jun 2017 10:47 by ADMIN
To reproduce:
Sub New() 
    InitializeComponent()

    Dim colors() As Color = {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, _
        Color.Orange, Color.Pink, Color.Purple, Color.Peru, Color.PowderBlue}
    Dim names() As String = {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"}
    For i As Integer = 0 To names.Length - 1
        Dim resource As New Telerik.WinControls.UI.Resource()
        resource.Id = New EventId(i)
        resource.Name = names(i)
        resource.Color = colors(i)
        Me.RadScheduler1.Resources.Add(resource)
    Next i
    Me.RadScheduler1.GroupType = GroupType.Resource
    Me.RadScheduler1.ActiveView.ResourcesPerView = Me.RadScheduler1.Resources.Count

    Me.RadScheduler1.ActiveViewType = SchedulerViewType.Timeline

    Dim rand As New Random
    For index = 1 To 20
        Dim a As New Appointment(DateTime.Now.AddDays(index), TimeSpan.FromHours(2), "A" & index)
        a.ResourceId = Me.RadScheduler1.Resources(rand.Next(0, Me.RadScheduler1.Resources.Count)).Id
        Me.RadScheduler1.Appointments.Add(a) 
    Next
    
    Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView()
     
    Dim oneMinute As New OneMinuteTimescale()
    timelineView.SchedulerTimescales.Add(oneMinute)

    oneMinute.Visible = True 
End Sub

Public Class OneMinuteTimescale
Inherits MinutesTimescale
    Public Overrides ReadOnly Property Name As String
        Get
            Return "OneMinuteTimescale"
        End Get
    End Property
    Public Overrides ReadOnly Property ScalingFactor() As Integer
        Get
            Return 1
        End Get
    End Property
End Class

Workaround: decrease the range: 

 timelineView.RangeStartDate = DateTime.Today
 timelineView.RangeEndDate = timelineView.RangeStartDate.AddDays(1)
Unplanned
Last Updated: 05 Aug 2016 07:46 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce:

 public Form1()
 {
     InitializeComponent();

     this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
     this.radScheduler1.Appointments.Add(new Appointment(new DateTime(9999,12,22),TimeSpan.FromMinutes(30),"A1"));
 }
 
Declined
Last Updated: 05 Aug 2016 07:46 by ADMIN
In RadScheduler I have appointment with End set to new DateTime(9999, 12, 22) (or greater). When I switch to Month view the exception is thrown:

The added or subtracted value results in an un-representable DateTime.

Found in version: 2016.2.608.40
It was working in version:  2013.2.724.40
Unplanned
Last Updated: 05 Aug 2016 09:14 by ADMIN
To reproduce:

Public Class Form1
    Sub New()
         
        InitializeComponent()

        Me.RadScheduler1.EnableExactTimeRendering = True
        
        Dim dt = DateTime.Now
        Me.RadScheduler1.Appointments.Add(New Appointment(dt.AddMinutes(-10).AddSeconds(1), Now, "A1"))
        Me.RadScheduler1.Appointments.Add(New Appointment(dt.AddMinutes(-15), DateTime.Now.AddMinutes(-10), "A2"))
        Me.RadScheduler1.GetTimelineView().StartDate = DateAdd(DateInterval.Minute, -15, Now)

        Dim customScale As CustomTimescalePerMinute = New CustomTimescalePerMinute()
        Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView()
        timelineView.SchedulerTimescales.Add(customScale)

        timelineView.ShowTimescale(customScale)
        Dim currentScaling As SchedulerTimescale = timelineView.GetScaling()
        currentScaling.DisplayedCellsCount = 15
    End Sub
End Class

Public Class CustomTimescalePerMinute
Inherits MinutesTimescale
    Public Overrides ReadOnly Property ScalingFactor() As Integer
        Get
            Return 1
        End Get
    End Property
End Class

Note: the attached gif file illustrates the behavior. Initially, the first appointment's end is not rendered in the correct time slot. After scrolling, it is displayed correctly.

Workaround: force scrolling

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim t As SchedulerTimelineViewElement = TryCast(Me.RadScheduler1.SchedulerElement.ViewElement, SchedulerTimelineViewElement)
    Dim value = t.NavigationElement.Value
    t.NavigationElement.Value += 1
    Me.RadScheduler1.SchedulerElement.RefreshViewElement()
    t.NavigationElement.Value = value
End Sub
Completed
Last Updated: 29 Jul 2016 11:13 by Carl
To reproduce:
Resource lResource;
var LColors = new Color[5];
SchedulerMultiDayView multyDayView;
DateTime startDate;

int interval;

radScheduler1.Statuses.Add(new AppointmentStatusInfo(5, "New", Color.Green, Color.Green, AppointmentStatusFillType.Solid));
radScheduler1.Statuses.Add(new AppointmentStatusInfo(6, "ACCP", Color.DarkOrange, Color.DarkOrange, AppointmentStatusFillType.Solid));


lResource = new Resource();
lResource.Id = new EventId(1);
lResource.Name = "Bert";
lResource.Color = Color.Red;

radScheduler1.Resources.Add(lResource);

radScheduler1.ActiveView.ShowHeader = true;

this.radScheduler1.ActiveViewType = SchedulerViewType.MultiDay;
multyDayView = this.radScheduler1.GetMultiDayView();

startDate = DateTime.Today;
interval = 30;

radScheduler1.GroupType = GroupType.Resource;
multyDayView.Intervals.Add(startDate, interval);

multyDayView.RulerScaleSize = 4;
radScheduler1.EnableExactTimeRendering = true;

multyDayView.RangeFactor = ScaleRange.Hour;
Unplanned
Last Updated: 03 Nov 2020 05:39 by ADMIN
To reproduce:

Color[] colors = new Color[]
{
    Color.LightBlue, Color.LightGreen, Color.LightYellow,
    Color.Red, Color.Orange, Color.Pink, Color.Purple, Color.Peru, Color.PowderBlue
};
Random rand = new Random();
for (int i = 0; i < 25; i++)
{
    Resource resource = new Resource();
    resource.Id = new EventId(i);
    resource.Name = i + ".Resource";
    resource.Color = colors[rand.Next(0, colors.Length)];
    this.radScheduler1.Resources.Add(resource);
}

this.radScheduler1.GroupType = GroupType.Resource;
this.radScheduler1.ActiveView.ResourcesPerView = this.radScheduler1.Resources.Count;

for (int i = 0; i < 3; i++)
{
    Appointment a = new Appointment(DateTime.Now.AddHours(i), TimeSpan.FromMinutes(30), "A" + i);
    a.ResourceId = this.radScheduler1.Resources.Last().Id;
    this.radScheduler1.Appointments.Add(a);
}

NOTE: it is also valid for the horizontal scrollbar in Timeline view.

Workaround: use the SetResourceSize to increase the last resource's width a little bit: http://docs.telerik.com/devtools/winforms/scheduler/views/grouping-by-resources
Unplanned
Last Updated: 11 Jul 2016 08:31 by ADMIN
To reproduce:

RadScheduler radScheduler1 = new RadScheduler();

public Form1()
{
    InitializeComponent();
    this.Controls.Add(this.radScheduler1);
    this.radScheduler1.Dock = DockStyle.Fill;

    Timer timer = new Timer();
    timer.Interval = 1000;
    timer.Tick += timer_Tick;
    this.radScheduler1.ActiveViewType = SchedulerViewType.Timeline;
    SetupView(DateTime.Now.Date);
    timer.Start();
}

private void SetupView(DateTime currentDateTime)
{
    SchedulerTimelineView timelineView = radScheduler1.GetTimelineView();
   
    timelineView.RangeStartDate = currentDateTime;
    timelineView.RangeEndDate = currentDateTime.AddHours(23).AddMinutes(59).AddSeconds(59);
    timelineView.StartDate = currentDateTime;
    radScheduler1.FocusedDate = currentDateTime;
    var scale = Timescales.Hours;
    timelineView.ShowTimescale(scale);
    var currentScaling = timelineView.GetScaling();
    currentScaling.DisplayedCellsCount = 24;

    this.radScheduler1.SchedulerElement.RefreshViewElement();
}

int count = 1;
private void timer_Tick(object sender, EventArgs e)
{
    SetupView(DateTime.Now.AddDays(++count));
}

Workaround: SchedulerTimelineView .ShowNavigationElement = false;
Unplanned
Last Updated: 11 Jul 2016 08:29 by ADMIN
To reproduce:

public RadRibbonForm1() 
{
    InitializeComponent();

    this.radScheduler1.FocusedDate = new DateTime(2016, 1, 1);
    this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Timeline;
    SchedulerTimelineView timelineView = this.radScheduler1.GetTimelineView();       
    timelineView.RangeStartDate = new DateTime(2016, 1, 1, 00, 00, 00);
    timelineView.RangeEndDate = new DateTime(2016, 12, 31, 23, 59, 59);
    timelineView.StartDate = new DateTime(2016, 1, 1, 00, 00, 00);

    Appointment appointment = new Appointment(new DateTime(2016, 1, 1, 00, 00, 00), new DateTime(2016, 1, 10, 00, 00, 00), "Quarter 1");
    Appointment appointment2 = new Appointment(new DateTime(2016, 2, 1, 00, 00, 00), new DateTime(2016, 2, 10, 00, 00, 00), "Quarter 1");
    Appointment appointment3 = new Appointment(new DateTime(2016, 4, 1, 00, 00, 00), new DateTime(2016, 4, 10, 00, 00, 00), "Quarter 2");
    Appointment appointment4 = new Appointment(new DateTime(2016, 5, 1, 00, 00, 00), new DateTime(2016, 6, 10, 00, 00, 00), "Quarter 2");
    Appointment appointment5 = new Appointment(new DateTime(2016, 7, 1, 00, 00, 00), new DateTime(2016, 7, 10, 00, 00, 00), "Quarter 3");
    Appointment appointment6 = new Appointment(new DateTime(2016, 8, 1, 00, 00, 00), new DateTime(2016, 8, 10, 00, 00, 00), "Quarter 3");
    Appointment appointment7 = new Appointment(new DateTime(2016, 11, 1, 00, 00, 00), new DateTime(2016, 11, 10, 00, 00, 00), "Quarter 4");
    Appointment appointment8 = new Appointment(new DateTime(2016, 12, 1, 00, 00, 00), new DateTime(2016, 12, 10, 00, 00, 00), "Quarter 4");

    this.radScheduler1.Appointments.Add(appointment);
    this.radScheduler1.Appointments.Add(appointment2);
    this.radScheduler1.Appointments.Add(appointment3);
    this.radScheduler1.Appointments.Add(appointment4);
    this.radScheduler1.Appointments.Add(appointment5);
    this.radScheduler1.Appointments.Add(appointment6);
    this.radScheduler1.Appointments.Add(appointment7);
    this.radScheduler1.Appointments.Add(appointment8);

    QuarterTimescale qTimeScale = new QuarterTimescale(); 
    qTimeScale.DisplayedCellsCount = 4;
    timelineView.SchedulerTimescales.Add(qTimeScale);
    this.radScheduler1.GetTimelineView().ShowTimescale(qTimeScale); 
}

class QuarterTimescale : MonthTimescale
{
    public override int ScalingFactor
    {
        get
        {
            return 3;
        }
    }

    public override string Name
    {
        get
        {
            return "Quarter";
        }
    }
}