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";
        }
    }
}
Unplanned
Last Updated: 06 Jun 2016 13:47 by ADMIN
Please refer to the attached gif file illustrating how to reproduce the problem with the Demo application. When you define a new appointment with 24 months interval, it is expected to have this event every 2 years, not each year.

To reproduce: you can use the following code snippet as well:

MonthlyRecurrenceRule monthlyRecurrenceRule = new MonthlyRecurrenceRule(DateTime.Now, WeekDays.Monday, 2, 24);
Appointment a = new Appointment(DateTime.Now, TimeSpan.FromHours(3), "Test");
a.RecurrenceRule = monthlyRecurrenceRule;
this.radScheduler1.Appointments.Add(a);


Workaround:

 public Form1()
 {
     InitializeComponent();
     
     this.radScheduler1.AppointmentAdded += radScheduler1_AppointmentAdded;
 }

 private void radScheduler1_AppointmentAdded(object sender, AppointmentAddedEventArgs e)
 {
     MonthlyRecurrenceRule montlyRule = e.Appointment.RecurrenceRule as MonthlyRecurrenceRule;
     if (montlyRule != null)
     {
         CustomMonthlyRecurrenceRule rrule = new CustomMonthlyRecurrenceRule();
         rrule.Start = montlyRule.Start;
         rrule.End = montlyRule.End;
         rrule.Interval = montlyRule.Interval;
         rrule.Offset = montlyRule.Offset;
         rrule.WeekDays = montlyRule.WeekDays;
         rrule.WeekNumber = montlyRule.WeekNumber;
         rrule.FirstDayOfWeek = montlyRule.FirstDayOfWeek;
         rrule.Count = montlyRule.Count; 

         e.Appointment.RecurrenceRule = rrule;
     }
 }

 public class CustomMonthlyRecurrenceRule : MonthlyRecurrenceRule
 {
     public override bool MatchAdvancedPattern(DateTime date, DateTimeFormatInfo dateTimeFormat)
     {
         int monthIndex = this.Start.Value.Month - date.Month;
         DateTime calculatedNextDate = this.Start.Value.AddMonths(this.Interval);
         monthIndex = calculatedNextDate.Month - date.Month;
         if (calculatedNextDate.Year > date.Year)
         {
             return false;
         }
         if ((monthIndex % this.Interval) != 0)
         {
             return false;
         }

         if (0 != this.WeekNumber && !this.MatchWeekOfMonth(date, dateTimeFormat))
         {
             return false;
         }

         if (0 != this.DayNumber && !this.MatchDayOfMonth(date, dateTimeFormat))
         {
             return false;
         }

         if (this.WeekDays != WeekDays.None && !this.MatchDayOfWeekMask(date, dateTimeFormat.Calendar))
         {
             return false;
         }

         if (this.Offset != 0 && !this.MatchOffset(date, dateTimeFormat))
         {
             return false;
         }

         return true;
     }
 }

Completed
Last Updated: 26 May 2016 09:24 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
Please refer to the attached gif file.
Unplanned
Last Updated: 06 May 2016 06:11 by ADMIN
To reproduce:

this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Month;
SchedulerMonthView monthView = this.radScheduler1.GetMonthView();

monthView.WeekCount = 5;
monthView.EnableCellOverflowButton = false;
monthView.EnableAppointmentsScrolling = true;
monthView.ShowVerticalNavigator = false;

for (int i = 0; i < 5; i++)
{
    this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now, TimeSpan.FromDays(2), "Test" + i));
}
for (int i = 5; i < 10; i++)
{
    this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddDays(7), TimeSpan.FromDays(2), "Test" + i));
}
for (int i = 10; i < 15; i++)
{
    this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddDays(14), TimeSpan.FromDays(2), "Test" + i));
}
this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddMinutes(5),TimeSpan.FromDays(8),"Last"));
this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now, TimeSpan.FromDays(14), "A"));
this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddDays(7), TimeSpan.FromDays(20), "B"));

Workaround: use the cell overflow button: SchedulerMonthView.EnableCellOverflowButton=true.
Completed
Last Updated: 06 May 2016 14:05 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
public Form1()
{
    InitializeComponent();
    DateTime d = DateTime.Now.Date; 
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 1, 30, 0), new DateTime(d.Year, d.Month, d.Day, 1, 30, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 8, 30, 0), new DateTime(d.Year, d.Month, d.Day, 9, 0, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 11, 00, 0), new DateTime(d.Year, d.Month, d.Day, 11, 30, 0), "Appointment_Free_0", "", ""));

    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 11, 0, 0), new DateTime(d.Year, d.Month, d.Day, 11, 0, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 10, 30, 0), new DateTime(d.Year, d.Month, d.Day, 11, 0, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 11, 00, 0), new DateTime(d.Year, d.Month, d.Day, 11, 30, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 11, 30, 0), new DateTime(d.Year, d.Month, d.Day, 12, 0, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 14, 0, 0), new DateTime(d.Year, d.Month, d.Day, 14, 30, 0), "Appointment_Free_0", "", ""));
    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 15, 00, 0), new DateTime(d.Year, d.Month, d.Day, 15, 30, 0), "Appointment_Free_0", "", ""));

    radScheduler1.Appointments.Add(new Appointment(new DateTime(d.Year, d.Month, d.Day, 17, 30, 0), new DateTime(d.Year, d.Month, d.Day, 17, 30, 0), "Appointment_Free_0", "", ""));

    radScheduler1.ActiveViewType = SchedulerViewType.Day;

    radScheduler1.EnableExactTimeRendering = true;
}


Workaround: use a custom DayViewAppointmentsTable

 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(DayViewAppointmentsTable))
        {
            return new CustomDayViewAppointmentsTable(view.Scheduler, view, (DayViewAppointmentsArea)context)as T;
        }

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

public class CustomDayViewAppointmentsTable : DayViewAppointmentsTable
{
    public CustomDayViewAppointmentsTable(RadScheduler scheduler, SchedulerView view, DayViewAppointmentsArea area) : base(scheduler, view, area)
    {
    }
    
    protected override IEnumerable<AppointmentElement> CreateAppointmentElements()
    {
        if (this.View != null)
        {
            IList<IEvent> appointmentsInView = new List<IEvent>(this.View.Appointments);
            List<AppointmentElement> elements = DivideAppointmentToElements(appointmentsInView);
            elements.Sort(0, elements.Count, new DateTimeComparer(this.Scheduler));

            foreach (AppointmentElement currentAppointment in elements)
            {
                currentAppointment.RelatedAppointments.Clear();
                currentAppointment.DesiredBounds = new RectangleF();
            }

            foreach (AppointmentElement appointment in elements)
            {
                List<AppointmentElement> intersectingAppointments = this.GetAllAppointmentsInDay(appointment.Start.Day, elements);
                intersectingAppointments.Remove(appointment);
                appointment.RelatedAppointments = intersectingAppointments;
            }

            return elements;
        }
        else
        {
            return new List<AppointmentElement>();
        }
    }

    private List<AppointmentElement> GetAllAppointmentsInDay(int day, List<AppointmentElement> elements)
    {
        List<AppointmentElement> result = new List<AppointmentElement>();
        foreach (AppointmentElement appointment in elements)
        {
            if (appointment.Start.Day == day)
            {
                result.Add(appointment);
            }
        }

        return result;
    }

    private List<AppointmentElement> DivideAppointmentToElements(IList<IEvent> appointmentsInView)
    {
        List<AppointmentElement> childAppointments = new List<AppointmentElement>();
        TimeSpan startTime = TimeSpan.FromMinutes(this.GetDayViewBase().RulerStartScale * 60 + this.GetDayViewBase().RulerStartScaleMinutes);
        TimeSpan endTime = TimeSpan.FromMinutes(this.GetDayViewBase().RulerEndScale * 60 + this.GetDayViewBase().RulerEndScaleMinutes);

        foreach (IEvent app in appointmentsInView)
        {
            SchedulerDayViewBase dayView = this.GetDayViewBase();
            bool allDay = (dayView != null) ? dayView.IsAllDayEvent(app) : false;

            DateTime appStart = this.View.DefaultTimeZone.OffsetTime(app.Start, this.Scheduler.SystemTimeZone);
            DateTime appEnd = this.View.DefaultTimeZone.OffsetTime(app.End, this.Scheduler.SystemTimeZone);

            if (!allDay)
            {
                // Handle > 1 day appointments
                if (appStart.Day != appEnd.Day && !(appEnd.Day - appStart.Day == 1 && appEnd.TimeOfDay == TimeSpan.Zero))
                {
                    AppointmentElement appointment1 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                    appointment1.Start = appStart;
                    appointment1.End = DateHelper.GetEndOfDay(appStart);

                    if (appointment1.Start.TimeOfDay >= endTime)
                    {
                        appointment1.Start = new DateTime(appStart.Year, appStart.Month, 
                            appStart.Day, 0, 0, 0).Add(endTime).AddMinutes(-(int)this.GetDayViewBase().RangeFactor);
                    }

                    AppointmentElement appointment2 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                    appointment2.Start = appEnd.Date;
                    appointment2.End = appEnd;

                    if (appointment1.Start >= this.View.StartDate)
                    {
                        childAppointments.Add(appointment1);
                    }

                    if (appointment2.Start >= this.View.StartDate)
                    {
                        childAppointments.Add(appointment2);
                    }
                }
                else
                {
                    AppointmentElement appointment1 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                    appointment1.Start = appStart;
                    appointment1.End = appEnd;

                    if (appointment1.Start.TimeOfDay < startTime)
                    {
                        appointment1.Start = new DateTime(appStart.Year, appStart.Month, appStart.Day, 0, 0, 0).Add(startTime);
                    }

                    if (appointment1.Start.TimeOfDay >= endTime)
                    {
                        appointment1.Start = new DateTime(appStart.Year, appStart.Month, appStart.Day, 0,
                            0, 0).Add(endTime).AddMinutes(-(int)this.GetDayViewBase().RangeFactor);
                    }

                    if (appointment1.End.TimeOfDay > endTime)
                    {
                        appointment1.End = new DateTime(appEnd.Year, appEnd.Month, appEnd.Day, 0, 0, 0).Add(endTime);
                    }

                    if (appointment1.End.TimeOfDay <= startTime)
                    {
                        appointment1.End = new DateTime(appEnd.Year, appEnd.Month, appEnd.Day, 0, 0,
                            0).Add(startTime).AddMinutes((int)this.GetDayViewBase().RangeFactor);
                    }

                    childAppointments.Add(appointment1);
                }
            }
            else if (!dayView.ShowAllDayArea)
            {
                DateTimeInterval viewInterval = new DateTimeInterval(this.View.StartDate, DateHelper.GetEndOfDay(this.View.EndDate));

                AppointmentElement appointment1 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                appointment1.Start = appStart;
                appointment1.End = DateHelper.GetEndOfDay(appStart);

                DateTimeInterval interval = new DateTimeInterval(appStart, appointment1.End);
                if (interval.IntersectsWith(viewInterval))
                {
                    if (appointment1.Start.TimeOfDay < startTime)
                    {
                        appointment1.Start = new DateTime(appStart.Year, appStart.Month, appStart.Day, 0, 0, 0).Add(startTime);
                    }

                    if (appointment1.Start.TimeOfDay >= endTime)
                    {
                        appointment1.Start = new DateTime(appStart.Year, appStart.Month, appStart.Day, 0, 0,
                            0).Add(endTime).AddMinutes(-(int)this.GetDayViewBase().RangeFactor);
                    }

                    if (appointment1.End.TimeOfDay > endTime)
                    {
                        appointment1.End = new DateTime(appEnd.Year, appEnd.Month, appEnd.Day, 0, 0, 0).Add(endTime);
                    }

                    if (appointment1.End.TimeOfDay <= startTime)
                    {
                        appointment1.End = new DateTime(appEnd.Year, appEnd.Month, appEnd.Day, 0, 0,
                            0).Add(startTime).AddMinutes((int)this.GetDayViewBase().RangeFactor);
                    }

                    childAppointments.Add(appointment1);
                }

                DateTime startDate = appStart.AddDays(1).Date;
                AppointmentElement appointment2 = null;

                while (startDate <= appEnd.Date.AddDays(-1))
                {
                    appointment2 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                    appointment2.Start = startDate;
                    appointment2.End = DateHelper.GetEndOfDay(startDate);
                    interval = new DateTimeInterval(appointment2.Start, appointment2.End);
                    if (interval.IntersectsWith(viewInterval))
                    {
                        childAppointments.Add(appointment2);
                    }
                    startDate = startDate.AddDays(1);
                }

                DateTime endDate = appEnd.Date;
                DateTime endAppointmentDate = appEnd;
                appointment2 = this.CreateAppointmentElement(this.Scheduler, this.View, app);
                appointment2.Start = endDate;
                appointment2.End = endAppointmentDate;

                interval = new DateTimeInterval(endDate, endAppointmentDate);
                if (interval.IntersectsWith(viewInterval) && interval.Start != appStart)
                {
                    childAppointments.Add(appointment2);
                }
            }
        }

        return childAppointments;
    }

    private AppointmentElement CreateAppointmentElement(RadScheduler scheduler, SchedulerView view, IEvent appointment)
    {
        AppointmentElement appointmentElement = null;
        if (scheduler.AppointmentElementFactory != null)
        {
            appointmentElement = scheduler.AppointmentElementFactory.CreateAppointmentElement(scheduler, view, appointment);
        }
        else
        {
            appointmentElement = scheduler.ElementProvider.GetElement<AppointmentElement>(view, appointment);
        }
        return appointmentElement;
    }
}
Unplanned
Last Updated: 15 Aug 2017 10:08 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
1
In Outlook, when the appontment height should be smaller than the height needed to accommodate 1 line of text, the appointment status size is being changed instead.
Completed
Last Updated: 09 Jun 2016 07:26 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
2
To reproduce: follow the steps from the attached gif file.

Workaround:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.RecurrenceEditDialogShowing += radScheduler1_RecurrenceEditDialogShowing;
}

CustomEditRecurrenceDialog dialog = null;

private void radScheduler1_RecurrenceEditDialogShowing(object sender, Telerik.WinControls.UI.RecurrenceEditDialogShowingEventArgs e)
{
    if (dialog == null)
    {
        dialog = new CustomEditRecurrenceDialog(e.Appointment);
    }
    e.RecurrenceEditDialog = dialog;
}

public class CustomEditRecurrenceDialog : EditRecurrenceDialog
{
    public CustomEditRecurrenceDialog(IEvent appointment) : base(appointment)
    {
    }

    protected override void ApplyAppointmentDates()
    {
        DateTime end = this.appointment.End;
        base.ApplyAppointmentDates();
        this.appointment.End = new DateTime(end.Year, end.Month, end.Day,
            this.timeEnd.Value.Hour, this.timeEnd.Value.Minute, this.timeEnd.Value.Second);
    }
}
Completed
Last Updated: 07 Mar 2016 07:59 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0

			
Completed
Last Updated: 12 Apr 2016 12:20 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
Workaround: use your own icon: 

public Form1()
{
    InitializeComponent();
    this.radScheduler1.RecurrenceEditDialogShowing+=radScheduler1_RecurrenceEditDialogShowing;
}

private void radScheduler1_RecurrenceEditDialogShowing(object sender, Telerik.WinControls.UI.RecurrenceEditDialogShowingEventArgs e)
{
    ((RadForm)e.RecurrenceEditDialog).Icon = Properties.Resources.WinFormsIcon;
}
Completed
Last Updated: 29 Feb 2016 10:15 by ADMIN
Please refer to the attached screenshots. A sample project is attached.

There is a known issue in the .NET Framework considering the "fa-IR" culture. Please refer to the following MSDN resource for a solution which is included in the sample project: https://code.msdn.microsoft.com/Fixing-Persian-Locale-for-6e66e044#content

Workaround:

 private void radScheduler1_CellFormatting(object sender, SchedulerCellEventArgs e)
        {
            MonthCellElement monthCellElement = e.CellElement as MonthCellElement;
            if (monthCellElement != null)
            {
                monthCellElement.Header.Text = monthCellElement.Date.ToString("dd", this.radScheduler1.Culture);
            }
        }
Completed
Last Updated: 22 Feb 2016 14:37 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce: please refer to the attached gif file

Dim a1 As New Appointment(DateTime.Today.AddDays(-1), TimeSpan.FromDays(3), "Termin1")
a1.AllDay = True
Dim a2 As New Appointment(DateTime.Today.AddDays(-1), TimeSpan.FromDays(1), "Termin2")
a2.AllDay = True
Me.RadScheduler1.Appointments.Add(a1)
Me.RadScheduler1.Appointments.Add(a2)

Workaround: specify precisely the end date including the time part as well

Dim a1 As New Appointment(DateTime.Today.AddDays(-1), TimeSpan.FromDays(3).Add(TimeSpan.FromMinutes(1)), "Termin1")
a1.AllDay = False
Dim a2 As New Appointment(DateTime.Today.AddDays(-1), TimeSpan.FromDays(2).Add(TimeSpan.FromMinutes(1)), "Termin2")
a2.AllDay = False
 
Me.RadScheduler1.Appointments.Add(a1)
Me.RadScheduler1.Appointments.Add(a2)
Unplanned
Last Updated: 30 Mar 2016 13:04 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 = Telerik.WinControls.UI.SchedulerViewType.Timeline;
    this.radScheduler1.EnableGesture(Telerik.WinControls.GestureType.Pan);
    this.radScheduler1.DisableGesture(Telerik.WinControls.GestureType.Zoom);
    this.radScheduler1.ZoomGesture+=radScheduler1_ZoomGesture;
    this.radScheduler1.PanGesture+=radScheduler1_PanGesture;
}

private void radScheduler1_PanGesture(object sender, Telerik.WinControls.PanGestureEventArgs e)
{
    Console.WriteLine("Pan should fire");
}

private void radScheduler1_ZoomGesture(object sender, Telerik.WinControls.ZoomGestureEventArgs e)
{
    Console.WriteLine("Zoom should NOT fire");
}

Workaround:
public class CustomScheduler : RadScheduler
{
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadScheduler).FullName;
        }
    }

    protected override void OnZoomGesture(Telerik.WinControls.ZoomGestureEventArgs args)
    {
        //stop the basic logic
        //base.OnZoomGesture(args);
    }
}