Completed
Last Updated: 10 Apr 2014 11:06 by ADMIN
To reproduce:
Subscribe for the ContextMenuShowing event of RadScheduler and use the following code:
private void radScheduler1_ContextMenuShowing(object sender, SchedulerContextMenuShowingEventArgs e)
{
   e.ContextMenu.Items.Clear();
   e.ContextMenu.Items.Add(new RadMenuItem("Item"));
}

Right-Click on two appointments and you will notice the exception

Workaround:
Add three invisible items:
private void radScheduler1_ContextMenuShowing(object sender, SchedulerContextMenuShowingEventArgs e)
{
   e.ContextMenu.Items.Clear();
   e.ContextMenu.Items.Add(new RadMenuItem("Item"));
   for (int i = 0; i < 3; i++)
   {
       e.ContextMenu.Items.Add(new RadMenuItem() { Visibility = ElementVisibility.Collapsed });
   }
}
Completed
Last Updated: 17 Jun 2014 10:07 by ADMIN
To reproduce:
- add RadScheduler with several appointments and use the folllowing code:
SchedulerDayView dayView = this.radScheduler1.GetDayView();
dayView.RangeFactor = ScaleRange.QuarterHour;
dayView.RulerStartScale = 7;
dayView.RulerEndScale = 18;

Ensure that you have appointments with start before 7 AM and appointments with start after 18 PM. All appointments with start before 7 AM are displayed at the top of the view, but all appointments with start after 18 PM are not displayed.

Workaround:
public Form1()
{
    InitializeComponent();

    for (int i = 0; i < 20; i++)
    {
        Appointment appointment = new Appointment(DateTime.Now.AddHours(12 + i), TimeSpan.FromMinutes(30), "Summary", "Description");
        appointment.StatusId = 2;
        appointment.BackgroundId = 6;
        this.radScheduler1.Appointments.Add(appointment);
    }

    SchedulerDayView dayView = this.radScheduler1.GetDayView();
    dayView.RangeFactor = ScaleRange.QuarterHour;
    dayView.RulerStartScale = 7;
    dayView.RulerEndScale = 18;

    this.radScheduler1.AppointmentElementFactory = new CustomAppointmentElementFactory();
}

public class CustomAppointmentElementFactory : IAppointmentElementFactory
{
    AppointmentElement IAppointmentElementFactory.CreateAppointmentElement(RadScheduler scheduler, SchedulerView view, IEvent appointment)
    {
        return new CustomAppointmentElement(scheduler, view, appointment);
    }
}

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

    protected override void OnParentChanged(Telerik.WinControls.RadElement previousParent)
    {
        base.OnParentChanged(previousParent);

        if (this.Scheduler.ActiveViewType == SchedulerViewType.Day)
        {
            if (this.Start.Hour > this.Scheduler.GetDayView().RulerEndScale)
            {
                this.Start = this.Start.Date.AddHours(this.Scheduler.GetDayView().RulerEndScale).AddMinutes(-(int)this.Scheduler.GetDayView().RangeFactor);
            }
        }
    }
}
Completed
Last Updated: 17 Jun 2014 10:07 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
Description:
When the appointment is moved (dragged and dropped) from one resource to another resource in Timeline view only, the AppointmentDropped event is not fired. This results in NullReferenceException in Windows 8.

To reproduce:
- add RadScheduler in Timeline view and use the following code:

List<Appointment> appointmentlist = new List<Appointment>();

public Form1()
{
InitializeComponent();

this.radScheduler1.Resources.Add(new Resource { Id = new EventId("1"), Name = "Jack", Visible = true });
this.radScheduler1.Resources.Add(new Resource { Id = new EventId("2"), Name = "John", Visible = true });
this.radScheduler1.Resources.Add(new Resource { Id = new EventId("3"), Name = "John", Visible = true });

this.radScheduler1.GroupType = GroupType.Resource;
this.radScheduler1.GetDayView().DayCount = 1;

Random rand = new Random();
for (int i = 0; i < 20; i++)
{
Appointment appointment = new Appointment(DateTime.Now, TimeSpan.FromMinutes(30), "Summary", "Description");
appointment.StatusId = rand.Next(1, radScheduler1.Statuses.Count);
appointment.BackgroundId = rand.Next(1, radScheduler1.Backgrounds.Count);
appointment.ResourceId = radScheduler1.Resources[rand.Next(0, radScheduler1.Resources.Count)].Id;
appointmentlist.Add(appointment);
}

this.radScheduler1.Appointments.BeginUpdate();
this.radScheduler1.Appointments.AddRange(this.appointmentlist.ToArray());
this.radScheduler1.Appointments.EndUpdate();
this.radScheduler1.AppointmentDropped += radScheduler1_AppointmentDropped;
}

private void radScheduler1_AppointmentDropped(object sender, AppointmentMovedEventArgs e)
{
MessageBox.Show("Dropped");
}

Workaround: use custom DragDropBehavior as follows:
this.radScheduler1.SchedulerElement.DragDropBehavior = new CustomDragDrop(this.radScheduler1.SchedulerElement);


public class CustomDragDrop : AppointmentDraggingBehavior
{
public CustomDragDrop(SchedulerVisualElement activeOwner) : base(activeOwner)
{
}

public override void Drop()
{
DateTime start = this.ActiveFeedback.Scheduler.SystemTimeZone.OffsetTime(this.ActiveFeedback.Appointment.Start, this.ActiveFeedback.View.DefaultTimeZone);
DateTime end = this.ActiveFeedback.Scheduler.SystemTimeZone.OffsetTime(this.ActiveFeedback.Appointment.End, this.ActiveFeedback.View.DefaultTimeZone);

IEvent ev = this.ActiveFeedback.AssociatedAppointment;
bool changeResourceId = (this.Scheduler.GroupType == GroupType.Resource) &&
(this.ActiveFeedback.Appointment.ResourceId != this.ActiveFeedback.AssociatedAppointment.ResourceId ||
this.ActiveFeedback.Appointment.ResourceIds.Count != this.ActiveFeedback.AssociatedAppointment.ResourceIds.Count);

AppointmentMovingEventArgs cancelArgs = (this.Scheduler.GroupType != GroupType.Resource) ? new AppointmentMovingEventArgs(start, ev) :
new AppointmentMovingEventArgs(start, ev, this.ActiveFeedback.Appointment.ResourceId);

this.OnAppointmentDropping(cancelArgs);

this.ActiveOwner.Scheduler.GetType().GetMethod("OnAppointmentDropping", BindingFlags.NonPublic |
BindingFlags.Instance).Invoke(this.ActiveOwner.Scheduler, new object[] { cancelArgs });

if (cancelArgs.Cancel)
{
this.Stop(false);
return;
}

this.ActiveFeedback.Scheduler.Appointments.BeginUpdate();

if (this.ActiveOwner as DayViewAllDayHeader != null && this.ActiveFeedback.Appointment.Duration < new TimeSpan(1, 0, 0, 0))
{
start = this.ActiveFeedback.Appointment.Start.Date;
end = DateHelper.GetEndOfDay(this.ActiveFeedback.Appointment.End);

start = this.ActiveFeedback.Scheduler.SystemTimeZone.OffsetTime(start, this.ActiveFeedback.View.DefaultTimeZone);
end = this.ActiveFeedback.Scheduler.SystemTimeZone.OffsetTime(end, this.ActiveFeedback.View.DefaultTimeZone);
}

this.ActiveFeedback.AssociatedAppointment.Start = start;
this.ActiveFeedback.AssociatedAppointment.End = end;

if (changeResourceId)
{
this.ActiveFeedback.AssociatedAppointment.ResourceId = this.ActiveFeedback.Appointment.ResourceId;
}

RadScheduler scheduler = this.ActiveOwner.Scheduler;
if (scheduler.DataSource != null)
{
scheduler.DataSource.GetEventProvider().Update(this.ActiveFeedback.AssociatedAppointment, "Start");
scheduler.DataSource.GetEventProvider().Update(this.ActiveFeedback.AssociatedAppointment, "End");
scheduler.DataSource.GetEventProvider().Update(this.ActiveFeedback.AssociatedAppointment, "Duration");
if (changeResourceId)
{
scheduler.DataSource.GetEventProvider().Update(this.ActiveFeedback.AssociatedAppointment, "ResourceId");
scheduler.DataSource.GetEventProvider().Update(this.ActiveFeedback.AssociatedAppointment, "ResourceIds");
}
}

while (!this.ActiveFeedback.Scheduler.Appointments.IsUpdated)
this.ActiveFeedback.Scheduler.Appointments.EndUpdate(true);

AppointmentMovedEventArgs args = (this.Scheduler.GroupType != GroupType.Resource) ? new AppointmentMovedEventArgs(start, ev) :
new AppointmentMovedEventArgs(start, ev, this.ActiveFeedback.Appointment.ResourceId);

this.HideFeedbacks();
SchedulerUIHelper.SelectAppointment(this.Scheduler, ev, true, false);

this.OnAppointmentDropped(args);
this.ActiveOwner.Scheduler.GetType().GetMethod("OnAppointmentDropped", BindingFlags.NonPublic |
BindingFlags.Instance).Invoke(this.ActiveOwner.Scheduler, new object[] { args });
}
}
Completed
Last Updated: 14 May 2014 09:05 by ADMIN
Add the ability to change the width of the group headers when the scheduler is grouped by Resource.

Resolution: You can set the size using code snippet: 
((SchedulerViewGroupedByResourceElementBase)this.radScheduler1.ViewElement).SetResourceSize(0, 0.5f);
Completed
Last Updated: 04 Jul 2014 09:53 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce:
Add a RadScheduler with a database with appointments. In the recurrence rule of the appointments add the keyword FREQ with value MONTHLY- FREQ=MONTHLY;UNTIL=20140102T235959Z;BYDAY=TH;WKST=SU

You will notice that despite that the frequency of the recurrence is weekly.
Completed
Last Updated: 04 Jul 2014 10:15 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce:
Add a RadScheduler and a database with appointments. Set the recurrence rule to the following:
FREQ=WEEKLY;UNTIL=20140102;BYDAY=TH;WKST=SU

A first chance exception will be thrown and the appointments will not show correctly.

Workaround:
Before setting the recurrence rule make sure that the UNTIL keyword's value is in the following format: 20140102T235959Z or more specifically - yyyyMMdd\\THHmmss\\Z
Completed
Last Updated: 09 Jun 2014 13:04 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
2
To reproduce:
Create a SQL table as per this article - http://www.telerik.com/help/winforms/scheduler-data-binding-using-datasource-property.html . Add the following mappings using EntityFramework or OpenAccess - http://www.telerik.com/help/winforms/scheduler-data-binding-using-datasource-property.html. You will notice that the resources cannot be mapped.
Workaround:
Implement a One-to-Many relation by adding a ResourceId column in the database and removing the old table.

Resolution: Both EF and TDA mappings work. Due to the differences in the mechanisms of the two products there are some slight adjustments that need to be made. Below is how to set up the mappings with EF and in commented code for ORM.
SchedulerDataEntities1 entityContext = new SchedulerDataEntities1();
Completed
Last Updated: 26 Feb 2014 15:09 by ADMIN
Add an option for SchedulerMonthlyPrintStyle to show the text of the appointments, not only the dates.
Completed
Last Updated: 16 Oct 2013 03:50 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
1
Expose some of the printing methods to allow derived classes to override them for greater customization support.
Completed
Last Updated: 10 Jun 2014 18:49 by ADMIN
To reproduce:
Add an appointment with the text "<html><size=9>Erin Swardz</br><color=Red>PO 2315</html>" the appointment looks formatted in the scheduler, however when in PrintPreview/Print the html code is printed in raw format

Workaround:
Strip all html in order to print pure text - 
void scheduler_AppointmentPrintElementFormatting(object sender, PrintAppointmentEventArgs e)
{
    string replaceBr = e.AppointmentElement.Text.Replace("</br>", " ");
    string result = Regex.Replace(replaceBr, @"<[^>]*>", string.Empty);
    e.AppointmentElement.Text = result;
}
Completed
Last Updated: 13 May 2014 15:03 by Jesse Dyck
RadScheduler - Implement functionality that will allow clients to define which time intervals should be visible in TimeLine view.
Completed
Last Updated: 28 Dec 2015 15:21 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce: 
Add a RadScheduler to a form and try the following method : 
private void Scroll() 
 { 
     SchedulerDayView dayView = radScheduler1.GetDayView(); 
     SchedulerWeekView weekView = radScheduler1.GetWeekView(); 
     dayView.RulerStartScale = 7; dayView.RulerEndScale = 22; 
     if (radScheduler1.ActiveViewType == SchedulerViewType.Day) 
       { 
          if (dayView != null) 
             { 
                dayView.RangeFactor = ScaleRange.QuarterHour; 
             } 
       } 
       else  if (radScheduler1.ActiveViewType == SchedulerViewType.Week) 
       {
         if (weekView != null) 
             { weekView.RangeFactor = ScaleRange.QuarterHour; 
             } 
       } 

dayView.RulerTimeFormat = RulerTimeFormat.hours24; 
SchedulerDayViewElement dayViewElement = this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement; 
if (dayViewElement != null)
 { 
      dayViewElement.DataAreaElement.Table.ScrollToTime(new TimeSpan(DateTime.Now.Hour, 0, 0)); 
  } 
} 

As you can see the scroll is not correct.
Declined
Last Updated: 06 May 2014 11:20 by ADMIN
Add the NavigateBackwardsButton and NavigateForwardsButton's text to the localization provider.

DECLINE REASON:
The text in these buttons was visible due to an issue in the Aqua theme. The text of these buttons is not visible in any theme by design therefore this item will be declined as its implementation will be redundant.
Completed
Last Updated: 08 May 2014 10:48 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
1
When printing the timescale in the printed document should be the same as in the scheduler or with option for changing.
Completed
Last Updated: 10 Jun 2014 18:48 by ADMIN
Completed
Last Updated: 13 May 2014 08:39 by Jesse Dyck
ADMIN
Created by: Dimitar
Comments: 1
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:
- Handle the CellFormatting event.
- Set CellElement Text property to a very long text.

Workaround:
Set CellElement MaxSize property like this:

void radScheduler1_CellFormatting(object sender, Telerik.WinControls.UI.SchedulerCellEventArgs e)
{
    e.CellElement.MaxSize =  new Size(150,23);
}
Completed
Last Updated: 10 Apr 2014 10:25 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
1
Add the ability to have a scrollbar in the cell where AllDay appointments are stored. The scrollbar should show after a certain amount of AllDay appointments have been added.
Completed
Last Updated: 13 May 2014 15:25 by ADMIN
ADMIN
Created by: Anton
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
2
RadScheduler - there is no way change the style of drag item. Current embedded styling is hard to see in some themes.
Completed
Last Updated: 06 Apr 2016 10:30 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
0
Add the ability to display the text  in appointments vertically.
Completed
Last Updated: 10 Jul 2013 03:34 by ADMIN
Steps to reproduce:
1. Add a scheduler to a form.
2. Add some data and group it by resource.
3. Add a button and on click call the NavigateToNextResource method:
this.radSchedulerDemo.SchedulerElement.NavigateToNextResource();

You will see that nothing happens.

WORKAROUND:

RadScrollBarElement scrollBarElement = this.radScheduler1.SchedulerElement.ViewElement.Children[3] as RadScrollBarElement;
this.radScheduler1.SchedulerElement.NavigateToLastResource();
int numberOfBackSteps = scrollBarElement.Maximum - scrollBarElement.Value - (this.radSchedulerDemo.SchedulerElement.View.ResourcesPerView - 1);

for (int i = 0; i <= numberOfBackSteps; i++)
{
    this.radScheduler1.SchedulerElement.NavigateToPreviousResource();
}