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: 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;
    }
}



Approved
Last Updated: 31 Aug 2017 08:09 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: Scheduler/Reminder
Type: Bug Report
7
Please refer to the attached sample project. When you start the application the form's text indicates how many times the AppointmentFormatting event is fired for only 30 appointments - more than 400 times. The more appointments you have , the more times the vent is initially fired,e.g. if you have 50 appointmens it is fired If you switch between the different views you will see how the counter increases its value.
Completed
Last Updated: 08 May 2014 08:39 by ADMIN
this.radScheduler1.Appointments.EndUpdate();

Does not refresh the Scheduler view element.
Completed
Last Updated: 14 Apr 2014 13:02 by Jesse Dyck
The occurrences and the navigation arrows are not displayed correctly when using YearlyRecurrence with the "First Monday of January" rule. The issue also appears with similar rule types.
Completed
Last Updated: 02 Jan 2012 18:35 by Jesse Dyck
When you subscribe to the AppointmentMoved or AppointmentDropped event of RadScheduler, the DataItem property of the appointment in the event args is always null.
Completed
Last Updated: 28 Mar 2013 11:12 by ADMIN
ADMIN
Created by: Jack
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
4
1. Create a new project with RadScheduler.
2. Handle the AppointmentFormatting event and change appointment border color.
3. Run the project and add an appointment.
Completed
Last Updated: 08 Aug 2012 03:05 by ADMIN
Steps to follow:
1. Select cells from 10:00pm (today) to 01:00am (next day).
2. Right click -> New Appointment
3. The Edit Appointment Dialog opens and the End Time is set to 23:59:59 instead of 01:00:00
Completed
Last Updated: 17 Dec 2018 16:35 by Dimitar
To reproduce:  

1.Change the first day of week to Monday:

            SchedulerMonthView view = new SchedulerMonthView();
            CultureInfo ci = new CultureInfo("en-US");
 
            ci.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
            view.CurrentCulture = ci;
            this.radScheduler1.ActiveView = view;
2. Create an appointment with a recurrence rule illustrated in the attached screenshot. Imagine that today is Wednesday and the recurrence rule starts on Monday from the same week.
As a result, you will notice that the WeeklyRecurrenceRule.FirstDayOfWeek is not set and the appointment occurs on the wrong Sundays. Refer to the attached screenshot. 

Workaround:

        private void radScheduler1_AppointmentAdded(object sender, AppointmentAddedEventArgs e)
        {
            if (e.Appointment.RecurrenceRule != null)
            {
                WeeklyRecurrenceRule r = e.Appointment.RecurrenceRule as WeeklyRecurrenceRule;
                r.FirstDayOfWeek = DayOfWeek.Monday;
            }
        }
Approved
Last Updated: 16 May 2019 05:11 by ADMIN
To reproduce:
        Me.RadScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Timeline
        Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView()
        Dim currentScaling As SchedulerTimescale = timelineView.GetScaling()
        currentScaling.DisplayedCellsCount = 100

Try to scroll horizontally. Then, change the currentScaling.DisplayedCellsCount  property to 50 and try to scroll again. You will notice a considerable difference.

Workaround: reduce the number of the displayed visual cell elements by the DisplayedCellsCount.
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
Approved
Last Updated: 22 Nov 2018 13:06 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
Completed
Last Updated: 20 Oct 2016 09:30 by Ralf
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
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: 20 Feb 2018 13:46 by ADMIN
Please refer to the attached gif file and sample project.

Workaround: remove the database restrictions and validate the data in the edit dialog before submitting the new appointment data.
Approved
Last Updated: 07 Jun 2018 10:01 by ADMIN
To reproduce:
 public Form1()
 {
     InitializeComponent();

     for (int i = 0; i < 7; i++)
     {
         this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddHours(i),TimeSpan.FromHours(3),"App" + i));
     }
     this.radScheduler1.AutoSizeAppointments = true;
     this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
     SchedulerMonthView monthView = this.radScheduler1.GetMonthView();
    
     monthView.EnableAppointmentsScrolling = true;
 }

Workaround: set the AutoSizeAppointments property to false.
Approved
Last Updated: 19 Feb 2018 13:46 by ADMIN
To reproduce:
this.radScheduler1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now, TimeSpan.FromHours(2), "آقای حقیقت"));

Please refer to the attached screenshot.

Workaround:

private void radScheduler1_AppointmentFormatting(object sender, SchedulerAppointmentEventArgs e)
{ 
    e.AppointmentElement.UseHtml = false; 
}
Completed
Last Updated: 03 Dec 2018 17:21 by Dimitar
How to reproduce: check the attached (video radscheduler-selection-incorrect.gif)
 public RadForm1()
 {
     InitializeComponent();

     Appointment appointment = new Appointment(DateTime.Today.AddHours(13), TimeSpan.FromHours(1), "Test Appointment");
     this.radScheduler1.Appointments.Add(appointment);

     for (int i = 0; i < 25; i++)
     {
         appointment = new Appointment(DateTime.Today.AddHours(24), TimeSpan.FromHours(1), "AllDay: " + i);
         appointment.AllDay = true;
         this.radScheduler1.Appointments.Add(appointment);
     }
     this.radScheduler1.AllowAppointmentsMultiSelect = true;
 }

Workaround: create a custom input behavior

this.radScheduler1.SchedulerInputBehavior = new CustomSchedulerInputBehavior(this.radScheduler1);

public class CustomSchedulerInputBehavior : SchedulerInputBehavior
{
    public CustomSchedulerInputBehavior(RadScheduler scheduler) 
        : base(scheduler)
    {
    }

    public override bool HandleMouseWheel(MouseEventArgs args)
    {
        if (!this.Scheduler.AllowMouseWheelSupport)
            return false;

        bool scrolled = false;

        if (this.Scheduler.SelectionBehavior.IsAllDayAreaSelection || this.IsLastSelectedAppointmentAllDay(this.Scheduler.SelectionBehavior.SelectedAppointments))
        {
            if (this.Scheduler.GroupType == GroupType.Resource)
            {
                SchedulerDayViewGroupedByResourceElement grouped = this.Scheduler.ViewElement as SchedulerDayViewGroupedByResourceElement;
                IList<SchedulerDayViewElement> childViews = grouped != null ? grouped.GetChildViewElements() : null;
                if (childViews != null && childViews.Count > 0)
                {
                    RadScrollBarElement scroll = childViews[childViews.Count - 1].AllDayHeaderElement.ScrollBar;
                    if (scroll.Visibility != ElementVisibility.Collapsed)
                    {
                        int newValue = scroll.Value - childViews[childViews.Count - 1].AllDayHeaderElement.HeaderHeight * Math.Sign(args.Delta);
                        newValue = Math.Max(Math.Min(newValue, scroll.Maximum - scroll.LargeChange + 1), scroll.Minimum);
                        scroll.Value = newValue;
                        scrolled = true;
                    }
                }
            }
            else
            {
                SchedulerDayViewElement dayView = this.Scheduler.ViewElement as SchedulerDayViewElement;
                RadScrollBarElement scroll = dayView != null ? dayView.AllDayHeaderElement.ScrollBar : null;

                if (scroll != null && scroll.Visibility != ElementVisibility.Collapsed)
                {
                    int newValue = scroll.Value - dayView.AllDayHeaderElement.HeaderHeight * Math.Sign(args.Delta);
                    newValue = Math.Max(Math.Min(newValue, scroll.Maximum - scroll.LargeChange + 1), scroll.Minimum);
                    scroll.Value = newValue;
                    scrolled = true;
                }
            }
        }

        if (scrolled)
        {
            return false;
        }

        if (args.Delta > 0)
        {
            this.Scheduler.ViewElement.Scroll(true);
        }
        else
        {
            this.Scheduler.ViewElement.Scroll(false);
        }
        return false;
    }

    private bool IsLastSelectedAppointmentAllDay(ReadOnlyCollection<IEvent> selectedAppointments)
    {
        if (selectedAppointments.Count > 0)
        {
            return selectedAppointments[selectedAppointments.Count - 1].AllDay;
        }

        return false;
    }

}

Completed
Last Updated: 09 Jan 2018 13:09 by ADMIN
Completed
Last Updated: 13 May 2014 13:09 by ADMIN
Use GetMultiDayView().Intervals.Add method to add intervals in multi day view. Set the time to be 0:00.
1 2 3 4 5 6