Unplanned
Last Updated: 10 Jul 2019 08:00 by ADMIN
When the server's timezone is set to UTC-2 and timezones with bigger negative offset (e.g.  (UTC-08:00) Pacific Time (US & Canada) and (UTC-07:00) Mountain Time (US & Canada)) the appointments on July 1st at 1:30AM are not rendered.
Completed
Last Updated: 15 Oct 2020 18:18 by ADMIN
Hi,
Please suggest me how can we show only working hour in timeline view in rad scheduler and hide non working hour. 

Currently in timeline view all 24 hour time slot is showing , but I want to show only working hour in time slot and hide rest of non working hour for there.

Screen shot for current view and desired view is attached below .
Completed
Last Updated: 21 May 2020 13:19 by ADMIN
Release R2 2020
Unplanned
Last Updated: 08 May 2020 11:13 by ADMIN

Hi 
I would like an extended feature to the iCal button that you get with RadScheduler which just deliver the one ical file type,
however it is typical on many event sites to offer alternative formats such as "[Google Outlook iCal Yahoo Apple]" because a user might be on an iPhone and so the text format might have the header information changed to make it natral for an iOS user, where as on an Android device making it natral to a google calendar would be a better fit.

It would be useful in the UserAgent was sniffed to offer a selection that is a natral fit of that environment.
An optional cookie could be left behind on that device to inform the control of the users preference so that is the head of the list.

This means that if Zoom or EventBrite used such a control (which they do) it would mean that your UI offers calendar events that connect to you, and so your UI is a little more sticky. 
Sure we can say that the iCal control would do, as many calender's can cope, we could also show the button offering all the major brands and just render exactly the same content then its user error if the appointment not saved.  But because Telerik is a leading UX brand, we don't want to know its an ical file we just want it to be a friction-less perfect fit into the users' calendar - they don't need to think it just gets done.

Thanks.
Doug

RE:
https://pages.jetbrains.com/dotnet-days-2020/web 
https://splashthat.com/ 
https://support.google.com/calendar/thread/3231927?hl=en

Unplanned
Last Updated: 19 Apr 2023 12:17 by Chris
Created by: Chris
Comments: 0
Category: Scheduler
Type: Bug Report
1

We have noticed that when you choose 'Yearly' in the recurrence editor that the text 'Recur every' shows up twice in the editor. If you change it to 'Monthly' or any other type of recurrence, this does not happen, and the text only shows up once.

The issue can be replicated in Binding to Generic List live demo.

Unplanned
Last Updated: 27 Mar 2018 14:50 by ADMIN
ADMIN
Created by: Peter Milchev
Comments: 0
Category: Scheduler
Type: Bug Report
1
https://www.screencast.com/t/KlQtYDOxl

Workaround: 

var $ = $ || $telerik.$;
var $T = Telerik.Web.UI;
var $TS = $T.Scheduler,
$TSR = $TS.Rendering,
$DateTime = $TS.DateTime;
var $SB = Telerik.Web.StringBuilder,
timePerMinute = 60000,
timePerHour = timePerMinute * 60,
timePerDay = timePerHour * 24,
daysInWeek = 7,
roundedCornersHeight,
anchorDateFormat = "yyyy-MM-dd";

$TSVM = Telerik.Web.UI.Scheduler.Views.Month;
$TSVM.Model.prototype._createTimeSlot = function (rawIndex, startTime, element) {
    if (startTime.getHours() == 23) {
        startTime = $DateTime.add(startTime, 2 * timePerHour);
    }

    return new $TSVM.TimeSlot(rawIndex, startTime, element);
}

$TSVM.Model.prototype.getTimeSlotFromDomElement = function (domElement) {
    var rawIndex = this._getRawIndexFromDomElement(domElement),
                startTime = this._getTimeFromDomElement(domElement);
    if (startTime.getHours() == 23) {
        startTime = $DateTime.add(startTime, 2 * timePerHour);
    }

    return new $TSVM.TimeSlot(rawIndex, startTime, domElement);
}


Telerik.Web.UI.Scheduler.Rendering.MonthViewRenderer.prototype._updateColumnHeaders = function () {
    var renderer = this,
        dayHeaderDateFormat = this._model.get_dayHeaderDateFormat(),
        firstDayHeaderDateFormat = this._model.get_firstDayHeaderDateFormat(),
        currentMonth = renderer._owner.get_selectedDate().getMonth(),
        visibleRangeStart = renderer._model.get_visibleRangeStart();

    $.each(this._contentTables, function () {
        var dateLabels = $("td div.rsDateWrap div.rsDateBox a", this),
            dayStart = visibleRangeStart,
            weekDayIndex = 0,
            weekStart = new Date(dayStart.getTime());

        dateLabels.each(function () {
            var isFirstVisibleDateOfMonth =
                    $DateTime.subtract(dayStart, visibleRangeStart) == 0 &&
                    dayStart.getMonth() == currentMonth;
            var dateHeaderText;

            if (renderer._owner._renderMode == $T.RenderMode.Mobile) {
                dateHeaderText = dayStart.getDate().toString();
            }
            else if (dayStart.getDate() == 1 || isFirstVisibleDateOfMonth) {
                dateHeaderText = dayStart.localeFormat(firstDayHeaderDateFormat);
            } else {
                dateHeaderText = renderer._getFormattedDateText(dayStart, dayHeaderDateFormat);
            }

            this.href = "#" + dayStart.format(anchorDateFormat);
            this.innerHTML = dateHeaderText;
            this.title = dayStart.localeFormat(Sys.CultureInfo.CurrentCulture.dateTimeFormat.ShortDatePattern);

            var otherMonthCell = currentMonth != dayStart.getMonth(),
                dateWrapElement = this.parentNode.parentNode.parentNode;

            $(dateWrapElement).toggleClass('rsOtherMonth', otherMonthCell);

            if (weekDayIndex == renderer._weekLength - 1) {
                // Move to the next week, skipping invisible days.
                weekStart = $DateTime.add(weekStart, 7 * timePerDay);
                dayStart = new Date(weekStart.getTime());
                weekDayIndex = 0;
            } else {
                dayStart = $DateTime.add(dayStart, timePerDay);
                weekDayIndex++;
            }
            if (dayStart.getHours() == 23) {
                dayStart = $DateTime.add(dayStart, 2 * timePerHour);
            } else if (dayStart.getHours() == 1) {
                dayStart = $DateTime.add(dayStart, -timePerHour);
            }
            if (weekStart.getHours() == 23) {
                weekStart = $DateTime.add(weekStart, 2 * timePerHour);
            } else if (weekStart.getHours() == 1) {
                weekStart = $DateTime.add(dayStart, -timePerHour);
            }
            // Wrappers are cleared here to avoid second
            // traversal of the cells.
            renderer._clearExtraWraps(dateWrapElement);
        });
    });
}
Declined
Last Updated: 27 May 2021 08:53 by ADMIN
Created by: Mauro
Comments: 1
Category: Scheduler
Type: Feature Request
1
In a RadScheduler with a custom provider (inheriting from SchedulerProviderBase), there is no way to get "expanded" appointments (i.e. masters plus occurrences minus exceptions). 

I devised a solution (as suggested in http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments), using the Occurrences property of RecurrenceRule:

        public IEnumerable<Appointment> GetExpandedAppointments(RadScheduler owner, DateTime start, DateTime end)
        {
            var result = new List<Appointment>();

            foreach (Appointment a in this.GetAppointments(owner))
            {
                // see http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments
                if (a.RecurrenceState == RecurrenceState.Master)
                {
                    RecurrenceRule parsedRule;
                    RecurrenceRule.TryParse(a.RecurrenceRule, out parsedRule);
                    parsedRule.SetEffectiveRange(start, end);

                    int nc = 0;
                    foreach (DateTime occurrence in parsedRule.Occurrences)
                    {
                        Appointment app = a.Clone();
                        app.ID = a.ID + "_" + ++nc;
                        app.Start = occurrence;
                        app.End = occurrence.Add(a.Duration);
                        app.RecurrenceRule = null;
                        app.RecurrenceParentID = a.ID;
                        app.RecurrenceState = RecurrenceState.Occurrence;
                        result.Add(app);
                    }
                }
                else if (a.RecurrenceState != RecurrenceState.Occurrence)
                {
                    result.Add(a);
                }
            }

            return result;
        }
    }

I think this functionality can be part of SchedulerProviderBase, there is no custom logic.

Thanks

Regards

Mauro
Unplanned
Last Updated: 06 Mar 2017 12:24 by ADMIN
Unplanned
Last Updated: 11 Jan 2018 14:06 by IT Manager
Unplanned
Last Updated: 07 Jan 2021 15:27 by ADMIN
Created by: Andreas
Comments: 0
Category: Scheduler
Type: Feature Request
1
When working with All-day appointments, it would be really nice to be able to resize them in the week view.

In some cases when only working with All-day appointments, we were able to hide the time part of the Scheduler control entirely, but in this case the week view is almost pointless since our end users want to resize appointments a lot!
Unplanned
Last Updated: 31 Jul 2017 14:32 by ADMIN
There is a display issue when using the agenda view - if there are fewer than 4 events displayed then clicking on the date range in the header shows a calendar which is clipped at the bottom. Presumably this is due to it being constrained by the height of the events area. This occurs even though there is plenty of height available to the control. Please see the attached screenshot which is taken from your demo site:
http://demos.telerik.com/aspnet-ajax/scheduler/examples/overview/defaultcs.aspx
Unplanned
Last Updated: 10 Jan 2018 15:07 by ADMIN
ADMIN
Created by: Peter Milchev
Comments: 0
Category: Scheduler
Type: Bug Report
0

			
Declined
Last Updated: 06 Aug 2020 14:31 by ADMIN
Something prevents the timeslotcreated event from firing when the advanced form is shown and therefore all the customizations that are done within timeslotcreated event are not in effect until advanced form is closed.  For example you can see different background color/image on January 1st on the attached "Capture1.png" picture, but as soon as I open the advanced form, for create/edit, those css settings are gone (see attached "Capture2.png" picture) until I close the form.

You would think that this is a pretty big bug that needs to be resolved.

Thanks.
Completed
Last Updated: 17 Apr 2018 10:33 by ADMIN
When the timezone of the client is before UTC (e.g. UTC -1 or UTC -3) if you use the calendar for navigation, you will be navigated to the day before the selected one.
Unplanned
Last Updated: 16 Feb 2018 19:11 by Donny
ADMIN
Created by: Peter Milchev
Comments: 2
Category: Scheduler
Type: Bug Report
0
The Button text initially shows "Never", even though the appointment has a different recurrence. https://www.screencast.com/t/55Rl1CSa7F7y
Unplanned
Last Updated: 31 Jan 2019 09:13 by Tanu
The RecurrenceRule does not have the correct Exceptions when modifying the series. The behavior in Outlook is to clear all exceptions when modifying the series. The behavior in Google Calendar is to consider the exception and modify the recurrence rule accordingly.

Create a recurrence appointment (starts on 20th Feb at 8:00 am, recurring daily), whose recurrence rule will be stored in the database as (Picture 1):

DTSTART:20180220T080000Z
DTEND:20180220T083000Z
RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU

Further, I create an exception on 23rd Feb, which changes the start time to 8:15 am. This now, in Addition to inserting a new record for the exception, updates the master's recurrence rule to (Picture 2):

DTSTART:20180220T080000Z
DTEND:20180220T083000Z
RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU
EXDATE:20180223T080000Z

So far, so good. Now I edit the master and change its start date to 19th Feb. I expect, that the master keeps the exception for 23rd, but the result is another one. The exception record is kept unchanged as expected! BUT the EXDATE in the master is wrong (Picture 3):

DTSTART:20180219T080000Z
DTEND:20180219T083000Z
RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU
EXDATE:20180222T080000Z
Unplanned
Last Updated: 24 Nov 2016 11:38 by ADMIN
Completed
Last Updated: 15 Oct 2020 17:57 by ADMIN
Created by: Rohit
Comments: 1
Category: Scheduler
Type: Feature Request
0
Please provide option in scheduler to freeze rows in randomly