How to make recurrence exceptions work with multiple timezones

2 Answers 23 Views
Scheduler
Keith
Top achievements
Rank 1
Keith asked on 16 Jun 2025, 11:15 PM

I have a recurring event with exceptions in one timezone and am trying to display the schedule in another timezone.

The events all display correctly with corresponding daylight saving adjustments however the exceptions get lost once the event timezone transitions into (or out of) summer time.

Running following code in the dojo correctly hides the 17th of April occurrence IF the timezone is set to "Europe/London" but displays the entry when set to "Pacific/Auckland".


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Kendo UI Snippet</title>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"/>

    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/themes/11.0.2/default/default-ocean-blue.css"/>

    <style>body {font-family: Helvetica, Arial, sans-serif;font-size: 14px}</style>

    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    
    
    
    <script src="https://kendo.cdn.telerik.com/2025.2.520/js/kendo.all.min.js"  ></script>
</head>
<body>
        <div id="scheduler"></div>
    <script>
      var version = kendo.version;
      $.getScript( 'https://kendo.cdn.telerik.com/'+version+'/js/kendo.timezones.min.js', function( data, textStatus, jqxhr ) {
        $("#scheduler").kendoScheduler({       
          date: new Date("2025/3/20"),
          height: 600,
          views: ["week"],
          editable: false,
          //timezone: "Europe/London",
          timezone: "Pacific/Auckland",
          dataSource: [
           {
              title: "Event Europe/London",             
              start: new Date("2025-03-20T14:00:00.000Z"),
              end: new Date("2025-03-20T14:30:00.000Z"),
              startTimezone: "Europe/London",
              endTimezone: "Europe/London",
              recurrenceRule: "FREQ=WEEKLY;BYDAY=TH;WKST=MO;",
              recurrenceException: "20250417T130000Z"
            }
          ]
        });
      });
    </script>
    
</body>
</html>

 

Neli
Telerik team
commented on 19 Jun 2025, 03:32 PM

Hi Keith,

I will need some additional time to review the requirements. I will write you back once I have more information on the matter.

Thank you very much for your patience.

Regards,

Neli

2 Answers, 1 is accepted

Sort by
0
Neli
Telerik team
answered on 24 Jun 2025, 06:19 AM

Hi Keith,

Thank you very much for your patience.

The issue you're encountering with recurrence exceptions and multiple timezones in the Kendo UI Scheduler is a known limitation related to how exception dates are matched against recurring events, especially when Daylight Saving Time (DST) changes are involved.

Explanation

  • The recurrenceException property expects exception dates in UTC format (e.g., 20250417T130000Z).
  • When the Scheduler is set to a different timezone from the event's startTimezone and endTimezone, it converts and matches exception dates based on UTC.
  • During DST transitions, the UTC time for an occurrence may shift, causing the exception date to no longer match the intended occurrence in the new timezone.

Currently, the most reliable approach is to keep the Scheduler's timezone aligned with the event's timezone. This ensures that exceptions are matched correctly, including across DST changes.

If you must display the Scheduler in a different timezone, you will need to manually adjust the recurrenceException values to match the UTC time of the excluded occurrence as it appears in the target timezone. You can use Kendo's timezone utilities to calculate the correct UTC time for the occurrence you want to exclude, then format it for the recurrenceException property:

// Calculate the occurrence time in the event's timezone
var occurrenceInLondon = new Date("2025-04-17T14:00:00");
// Convert to UTC
var exceptionUTC = kendo.timezone.convert(occurrenceInLondon, "Europe/London", "Etc/UTC");
// Format as a recurrenceException string
var exceptionString = kendo.toString(exceptionUTC, "yyyyMMddTHHmmss") + "Z";
// Use exceptionString in your recurrenceException property

I hope this helps. 

     

      Regards,
      Neli
      Progress Telerik

      Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

      Keith
      Top achievements
      Rank 1
      commented on 25 Jun 2025, 01:43 AM

      Dear Neli,

      Thank you for this information, I can now adjust the  exception entry to work with the user's time zone settings.

      Are there any plans to make the recurranceException values to always match the occurrence's actual UTC value?

      Regards

      Keith

      Neli
      Telerik team
      commented on 27 Jun 2025, 07:34 AM

      Hi Keith,

      Currently, we do not have plans to make changes in the recurranceException behavior. You can log a new feature request in our Feedback Portal describing in details the desired result:

      - https://feedback.telerik.com/kendo-jquery-ui/

      We continuously monitor the items submitted to the portal, and based on the popularity each one gathers, it may be considered for inclusion in our roadmap.

      Regards,

      Neli

       
      0
      hkdave95
      Top achievements
      Rank 2
      Iron
      answered on 24 Jun 2025, 09:26 AM

      Dear Neli

      TY for response.

      Keith shall follow up with a result / no result answer in due course.

      I meet with him tonight so we shall review this then.

      KR

      David

      Tags
      Scheduler
      Asked by
      Keith
      Top achievements
      Rank 1
      Answers by
      Neli
      Telerik team
      hkdave95
      Top achievements
      Rank 2
      Iron
      Share this question
      or