/// <summary>
        /// Get a <see cref="IScheduleBuilder" /> that is configured to produce a
        /// schedule identical to this trigger's schedule.
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <seealso cref="GetTriggerBuilder()" />
        public override IScheduleBuilder GetScheduleBuilder()
        {
            CalendarIntervalScheduleBuilder cb = CalendarIntervalScheduleBuilder.Create()
                                                 .WithInterval(RepeatInterval, RepeatIntervalUnit);

            switch (MisfireInstruction)
            {
            case Quartz.MisfireInstruction.CalendarIntervalTrigger.DoNothing:
                cb.WithMisfireHandlingInstructionDoNothing();
                break;

            case Quartz.MisfireInstruction.CalendarIntervalTrigger.FireOnceNow:
                cb.WithMisfireHandlingInstructionFireAndProceed();
                break;
            }

            return(cb);
        }
        public override IScheduleBuilder GetScheduleBuilder()
        {
            CalendarIntervalScheduleBuilder cb = CalendarIntervalScheduleBuilder.Create()
                                                 .WithInterval(RepeatInterval, RepeatIntervalUnit)
                                                 .InTimeZone(TimeZone)
                                                 .PreserveHourOfDayAcrossDaylightSavings(PreserveHourOfDayAcrossDaylightSavings)
                                                 .SkipDayIfHourDoesNotExist(SkipDayIfHourDoesNotExist);

            switch (MisfireInstruction)
            {
            case Quartz.MisfireInstruction.CalendarIntervalTrigger.DoNothing:
                cb.WithMisfireHandlingInstructionDoNothing();
                break;

            case Quartz.MisfireInstruction.CalendarIntervalTrigger.FireOnceNow:
                cb.WithMisfireHandlingInstructionFireAndProceed();
                break;
            }

            return(cb);
        }