<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 1.7.30 (Ruby 3.4.4) 2.5.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netmod-schedule-yang-10" docName="draft-ietf-netmod-schedule-yang-rfceditor-latest" category="std" consensus="true" submissionType="IETF" xml:lang="en" number="9922" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 3.31.0 -->
  <link href="https://datatracker.ietf.org/doc/draft-ietf-netmod-schedule-yang-rfceditor-latest" rel="prev"/>
  <front>
    <title abbrev="Common Schedule YANG">A abbrev="YANG Scheduling">A Common YANG Data Model for Scheduling</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-schedule-yang-10"/> name="RFC" value="9922"/>
    <author fullname="Qiufang Ma" role="editor">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>maqiufang1@huawei.com</email>
      </address>
    </author>
    <author fullname="Qin Wu">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Jiangsu</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <postal>
          <city>Rennes</city>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Daniel King">
      <organization>Lancaster University</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>
    <date year="2025" month="August" day="07"/>
    <area>Operations and Management</area> year="2026" month="February"/>
    <area>OPS</area>
    <workgroup>netmod</workgroup>
    <keyword>calendaring</keyword>
    <keyword>scheduling</keyword>
    <keyword>YANG</keyword>
    <keyword>groupings</keyword>
    <abstract>
      <?line 57?> 95?>

<!-- [rfced] FYI - We will do the following when we convert the file to RFCXML:

- compact the spacing of the definition lists in Sections 8.1 and 8.2
-->

<!--[rfced] Note that we have updated the short title, which appears in the
running header in the PDF output, as follows. Please let us know of any
objections.

Original:
   Common Schedule YANG

Current:
   YANG Scheduling
-->

<t>This document defines common types and groupings that are meant to be used
   for scheduling purposes purposes, such as event, policy, events, policies, services, or resources based on
   date and time. For the sake of better modularity, the YANG module includes a
   set of recurrence-related groupings with varying levels of representation
   (i.e., from basic to advanced) to accommodate a variety of requirements.
   It also defines groupings for validating requested schedules and reporting scheduling status.</t> statuses.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>Discussion of this document takes place on the
    Network Modeling (NETMOD) Working Group mailing list (netmod@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netmod/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/netmod-wg/schedule-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?> 120?>

<section anchor="intro">
      <name>Introduction</name>
      <t>This document defines a common schedule YANG module ("ietf-schedule") that can
be used in several scheduling contexts, e.g., (but not limited to)
<xref target="I-D.ietf-opsawg-ucl-acl"/>, <xref target="I-D.ietf-opsawg-scheduling-oam-tests"/>,
and <xref target="I-D.ietf-tvr-schedule-yang"/>. The module includes a set of reusable groupings which that
are designed to be applicable for scheduling purposes purposes, such as event, policy,
services events, policies,
services, or resources based on date and time. It also defines groupings for validating
requested schedules and reporting scheduling status.</t> statuses.</t>
      <t>This document does not make any assumption about the nature of actions that are
triggered by the schedules. Detection and resolution of any schedule conflicts
are beyond the scope of this document.</t>
      <!--[rfced] To avoid awkward hyphenation, may we update this sentence to read as
"objects managed by MIB"?

Original:
   Section 5 discusses the relationship with the Management Information
   Base (MIB) managed objects for scheduling management operations
   defined in [RFC3231].

Perhaps:
   Section 5 discusses the relationship with the objects managed by
   Management Information Base (MIB) for scheduling management operations
   defined in [RFC3231].
-->

<t><xref target="sec-mib"/> discusses the relationship with the Management Information Base (MIB)
managed objects for scheduling management operations defined in <xref target="RFC3231"/>.</t>
      <t><xref target="usage"/> describes a set of examples to illustrate the use of the common schedule groupings (<xref target="sec-grp"/>).
<xref target="sec-ext"/> provides sample modules to exemplify how future modules can use the extensibility
provisions in the "ietf-schedule" module (<xref target="sec-schedule"/>). Also, <xref target="ex-framework"/> provides
an example of using the "ietf-schedule" module for scheduled use of a resources framework (e.g., <xref target="RFC8413"/>).</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized
   values at the time of publication.  This note summarizes all of the
   substitutions that are needed.  No other RFC Editor instructions are specified
   elsewhere in this document.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this draft</t>
          </li>
          <li>
            <t>2025-05-30 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The meanings of the symbols in tree diagrams are defined in
   <xref target="RFC8340"/>.</t>
      <t>This document uses the YANG terminology defined in <xref section="3" sectionFormat="of" target="RFC7950"/>.</t>
      <t>The
      <t>This document makes use of the following terms:</t>
      <dl>
        <dt>Recurrence rule:</dt>
        <dd>
          <t>Refers to a rule or repeating pattern for recurring events. See also <xref section="3.8.5.3" sectionFormat="of" target="RFC5545"/> for a comprehensive iCalendar recurrence rule specification.</t>
        </dd>
        <dt>Recurrence instance (or Recurrence, for short):</dt>
        <dd>
          <t>Refers to an instance that matches a recurrence rule.</t>
        </dd>
        <dt>Recurrence set:</dt>
        <dd>
          <t>Refers to a set of recurrence instances.</t>
        </dd>
        <dt>Frequency:</dt>
        <dd>
          <t>Characterizes the type of a recurrence rule. Values are taken from the "FREQ" rule in <xref section="3.3.10" sectionFormat="of" target="RFC5545"/>.</t>
        </dd>
        <dt/>
        <dd>
          <t>For example, repeating events based on an interval of a second or more are
classified as recurrence with a frequency value of "SECONDLY". Frequency values defined as identities
in the YANG module are used in lowercase.</t>
        </dd>
        <dt>iCalendar:</dt>
        <dd>
          <t>Refers to Internet Calendaring per <xref target="RFC5545"/>.</t>
        </dd>
        <dt>Interval:</dt>
        <dd>
          <t>Refers to an integer that specifies the interval at which a recurrence rule repeats. Values are taken from the "INTERVAL" rule in <xref section="3.3.10" sectionFormat="of" target="RFC5545"/>.</t>
        </dd>
        <dt/>
        <dd>
          <t>For example, "1", "1" means every second for a secondly rule, every minute for a minutely rule, every hour for an hourly rule, etc.</t>
        </dd>
        <dt>System:</dt>
        <dd>
          <t>Refers to an entity that hosts a schedule that is managed using the YANG module defined in this document.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-overview">
      <name>Module Overview</name>
      <section anchor="sec-features">
        <name>Features</name>
        <t>The "ietf-schedule" data model defines the recurrence related recurrence-related groupings using
   a modular approach. To that aim, a variety of representations of recurrence
   groupings ranging from basic to advanced (iCalender-like) are defined.
   To allow for different options, two features are defined in the data model:</t>
        <ul spacing="normal">
          <li>
            <t>"basic-recurrence"</t>
          </li>
          <li>
            <t>"icalendar-recurrence"</t>
          </li>
        </ul>
        <t>Refer to Sections <xref format="counter" target="sec-aug"/> and <xref format="counter" target="features"/> for the use of these features.</t>
      </section>
      <section anchor="sec-types">
        <name>Types and Identities</name>
        <t>The "ietf-schedule" module (<xref target="sec-schedule"/>) defines the following identities:</t>
        <ul spacing="normal">
          <li>
            <t>"schedule-type": Indicates the type of a schedule. The following types are defined so far:
            </t>
            <ul spacing="normal">
              <li>
                <t>one-shot: The schedule will trigger an action that has either the duration specified as 0 or the end time specified as the same as the start time, and then the schedule will disable itself (<xref section="3.3" sectionFormat="of" target="RFC3231"/>).</t>
              </li>
              <li>
                <t>period: The schedule This type is used for a period-based schedule consisting of either (1) a start and end or (2) a start and positive duration of time. If neither an end nor a duration is indicated, the period is considered to last forever.</t>
              </li>
              <li>
                <t>recurrence: This type is used for a recurrence-based schedule. A recurrence may be periodic (i.e., repeat over the same period, e.g., every five minutes) or not (i.e., repeat in a non-regular manner, e.g., every day at 8 and 9 AM).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>"frequency-type": Characterizes the repeating interval rule of a recurrence schedule (secondly, minutely, etc.).</t>
          </li>
          <li>
            <t>"schedule-state": Indicates the status of a schedule (enabled, disabled, conflicted, finished, etc.). This identity can also be used
to manage the state of individual instances of a recurrence-based schedule.</t>
          </li>
          <li>
            <t>"discard-action-type": Specifies the action for the responder to take (e.g., generate a warning or an error message) when
a requested schedule cannot be accepted for any reason and is discarded.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-grp">
        <name>Scheduling Groupings</name>
        <t>The "ietf-schedule" module (<xref target="sec-schedule"/>) defines the following groupings:</t>
        <ul spacing="normal">
          <li>
            <t>"generic-schedule-params" (<xref target="sec-gen"/>)</t>
          </li>
          <li>
            <t>"period-of-time" (<xref target="sec-period"/>)</t>
          </li>
          <li>
            <t>"recurrence-basic" (<xref target="sec-rec"/>)</t>
          </li>
          <li>
            <t>"recurrence-utc" (<xref target="sec-rec-utc"/>)</t>
          </li>
          <li>
            <t>"recurrence-with-time-zone" (<xref target="sec-rec-tz"/>)</t>
          </li>
          <li>
            <t>"recurrence-utc-with-periods" (<xref target="sec-rec-utc-dt"/>)</t>
          </li>
          <li>
            <t>"recurrence-time-zone-with-periods" (<xref target="sec-rec-tz-dt"/>)</t>
          </li>
          <li>
            <t>"icalendar-recurrence" (<xref target="sec-ical-rec"/>)</t>
          </li>
          <li>
            <t>"schedule-status", "schedule-status-with-time-zone", and "schedule-status-with-name" (<xref target="sec-schedule-status"/>)</t>
          </li>
        </ul>
        <t>Examples are provided in <xref target="usage"/>.</t>
        <section anchor="sec-gen">
          <name>The "generic-schedule-params" Grouping</name>
          <t>A system accepts and handles schedule requests, which may help further
   automate the scheduling process of events, policy, policies, services, or resources
   based on date and time. The "generic-schedule-params" grouping (<xref target="gsp-tree"/>)
   specifies a set of configuration parameters that are used by a system for
   validating requested schedules.</t>
          <figure anchor="gsp-tree">
            <name>'generic-schedule-params' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping generic-schedule-params:
    +-- description?            string
    +-- time-zone-identifier?   sys:timezone-name
    +-- validity?               yang:date-and-time
    +-- max-allowed-start?      yang:date-and-time
    +-- min-allowed-start?      yang:date-and-time
    +-- max-allowed-end?        yang:date-and-time
    +-- discard-action?         identityref
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The "description" parameter includes a description of the schedule. No constraint is imposed
   on the structure nor the use of this parameter.</t>
          <t>The "time-zone-identifier" parameter, if provided, specifies the
   time zone reference <xref target="RFC7317"/> of the local date and time values. This parameter
   <bcp14>MUST</bcp14> be specified if any of the date and time values are in the format of local time.
   It <bcp14>MUST NOT</bcp14> be applied to date and time values which that are specified in the format
   of UTC or time zone offset to UTC.</t>
          <!--[rfced] Please clarify "to execute independent of when it
ends". Is the meaning that the validity parameter determines when a
schedule can be started and thus "executed independently from when it
ends"?

Original:
   It determines the latest time that a schedule can be started to
   execute independent of when it ends and takes precedence over
   similar attributes that are provided at the schedule instance
   itself.

Perhaps:
   It determines the latest time that a schedule can be started and
   thus executed independently from when it ends, and it takes
   precedence over similar attributes that are provided at the
   schedule instance itself.
-->

<t>The "validity" parameter specifies the date and time after which a schedule
   will not be considered as valid. It determines the latest time that a schedule
   can be started to execute independent of when it ends ends, and it takes precedence over
   similar attributes that are provided at the schedule instance itself. A requested
   schedule may still be accepted accepted, but any occurrences that start later than the configured value will not be executed.</t>
          <t>The "max/min-allowed-start" parameters specify the maximum/minimum scheduled
   start date and time. A requested schedule will be rejected if the first
   occurrence of the schedule starts later/earlier than the configured values.</t>
          <t>The "max-allowed-end" parameter specifies the maximum allowed end time of
   the last occurrence. A requested schedule will be rejected if the end time
   of the last occurrence is later than the configured "max-allowed-end" value.</t>
          <t>The "discard-action" parameter specifies the action if a requested schedule
   cannot be accepted for any reason and is discarded. Possible reasons include,
   but are not limited to, the requested schedule failing to satisfy the guards in this grouping,
   conflicting with existing schedules, or being out-of-date (e.g., the expected start is has already passed).</t>
          <!--[rfced] May we update this sentence to make the two items
mentioned (i.e., "all schedules on a system" and "too short schedule
requests") more parallel and thus easier to read?

Original:
   These parameters apply to all schedules on a system and are meant to
   provide guards against stale configuration, too short schedule
   requests that would prevent validation by admins of some critical
   systems, etc.

Perhaps:
   These parameters apply to all schedules on a system and are meant
   to provide guards against stale configuration, schedule requests
   that are too short and that would thus prevent validation by admins
   of some critical systems, etc.
-->
<t>*</t>
          <t>These parameters apply to all schedules on a system and are meant
   to provide guards against stale configuration, too short schedule requests
   that would prevent validation by admins of some critical systems, etc.</t>
        </section>
        <section anchor="sec-period">
          <name>The "period-of-time" Grouping</name>
          <t>The "period-of-time" grouping (<xref target="pt-tree"/>) represents a time period using
   either a start date and time ("period-start") and end date and time ("period-end"), ("period-end") or a
   start date and time ("period-start") and a non-negative time duration ("duration"). For the first
   format, the start of the period <bcp14>MUST</bcp14> be no later than the end of the period. If neither an end date and time ("period-end")
   nor a duration ("duration") is indicated, the period is considered to last forever.
   If the duration ("duration") value is 0 or the end time ("period-end") is the same as the start time ("period-start"), the period
   is considered as a one-shot schedule. If no start date and time ("period-start")
   is specified, the period is considered to start immediately.</t>
          <t>The "time-zone-identifier" parameter indicates the identifier for the
   time zone. This parameter <bcp14>MUST</bcp14> be specified if either the "period-start" or "period-end"
   value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time
   values which that are specified in the format of UTC or time zone offset to UTC.</t>
          <t>The "period-description" parameter includes a description of the period. No constraint is imposed
   on the structure nor the use of this parameter.</t>
          <figure anchor="pt-tree">
            <name>'period-of-time' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping period-of-time:
    +-- period-description?     string
    +-- period-start?           yang:date-and-time
    +-- time-zone-identifier?   sys:timezone-name
    +-- (period-type)?
       +--:(explicit)
       |  +-- period-end?       yang:date-and-time
       +--:(duration)
          +-- duration?         duration
]]></artwork>
]]></sourcecode>
          </figure>
        </section>
        <section anchor="sec-rec">
          <name>The "recurrence-basic" Grouping</name>
          <t>The "recurrence-basic" grouping (<xref target="rec-grp-tree"/>) specifies a simple recurrence rule which that starts immediately and repeats forever.</t>
          <figure anchor="rec-grp-tree">
            <name>'recurrence-basic' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping recurrence-basic:
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The frequency parameter ("frequency") identifies the type of a recurrence rule. For example,
  a "daily" frequency value specifies repeating events based on an interval of a day or more.</t>
          <t>Consistent with <xref section="3.3.10" sectionFormat="of" target="RFC5545"/>, the interval parameter ("interval") represents at which interval the recurrence rule repeats. For example,
  within a "daily" recurrence rule, an interval value of "8" means every eight days.</t>
          <t>Note
          <!-- [rfced] We note that Section 4.13 of [I-D.ietf-netmod-rfc8407bis] mentions
"default" but doesn't mention "mandatory"; however, Section 4.14
mentions both "default" and "mandatory". Should the citations below be updated
to point to Section 4.14 instead?

Original (Section 3.3.3):
   Note that per Section 4.13 of [I-D.ietf-netmod-rfc8407bis], neither a
   "default" nor a "mandatory" substatement is defined here for both
   "frequency" and "interval" parameters because there are cases (e.g.,
   profiling) where using these statements is problematic.

Original (Section 3.3.8):
   Note that per Section 4.13 of [I-D.ietf-netmod-rfc8407bis], neither a
   "default" nor a "mandatory" substatement is defined here because there
   are cases (e.g., profiling) where using these statements is problematic.
-->

<t>Note that, per <xref section="4.13" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a "default"
  nor a "mandatory" substatement is defined here for both "frequency" and "interval"
  parameters because there are cases (e.g., profiling) where using these statements is problematic.
  YANG modules using this grouping <bcp14>SHOULD</bcp14> refine these two nodes with either a
  "mandatory" or a "default" statement, statement if they always need to be configured or have default values.
  This recommendation <bcp14>MAY</bcp14> be ignored in cases such as when this grouping is used by another grouping.</t>
          <t>The "recurrence-description" parameter includes a description of the period. No constraint is imposed
  on the structure nor the use of this parameter.</t>
        </section>
        <section anchor="sec-rec-utc">
          <name>The "recurrence-utc" Grouping</name>
          <t>The "recurrence-utc" grouping (<xref target="rec-utc-grp-tree"/>) uses the "recurrence-basic"
   grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule in UTC format.</t>
          <figure anchor="rec-utc-grp-tree">
            <name>'recurrence-utc' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping recurrence-utc:
    +-- recurrence-first
    |  +-- start-time-utc?   yang:date-and-time
    |  +-- duration?         uint32
    +-- (recurrence-end)?
    |  +--:(until)
    |  |  +-- utc-until?          yang:date-and-time
    |  +--:(count)
    |     +-- count?              uint32
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The "start-time-utc" parameter indicates the start time in UTC format.</t>
          <t>The "duration" parameter specifies, in units of seconds, the time period of
   the first occurrence. Unless specified otherwise (e.g., through additional
   augmented parameters), the "duration" also applies to subsequent recurrence
   instances. When unspecified, each occurrence is considered as
   immediate completion (e.g., execute an immediate command that is considered
   to complete quickly) or hard to compute an exact duration (e.g., run a data
   analysis script whose execution time may depend on the data volume and
   computation resource availability). The behavior to follow when a task takes
   more time than specified by the "duration" is out of scope. Such considerations
   belong to task management, not schedule management.</t>
          <t>Note that the "interval" and "duration" cover two distinct properties of a schedule event.
The interval specifies when a schedule will occur, combined with the frequency parameter; parameter, while the duration indicates how long
an occurrence will last. This document allows the interval between occurrences to be shorter than the duration of each occurrence (e.g., a recurring event is scheduled to start every day for a duration of 2 days).</t>
          <t>The repetition can be scoped by a specified end time or by a count of occurrences,
  indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14> be greater than 1, and the "start-time-utc" value always counts
  as the first occurrence.</t>
          <t>The "recurrence-utc" grouping is designed to be reused in scheduling contexts
   where machine readability is more desirable.</t>
        </section>
        <section anchor="sec-rec-tz">
          <name>The "recurrence-with-time-zone" Grouping</name>
          <t>The "recurrence-with-time-zone" grouping (<xref target="rec-tz-grp-tree"/>) uses the
   "recurrence-basic" grouping (<xref target="sec-rec"/>) and specifies a simple recurrence rule with a time zone.</t>
          <figure anchor="rec-tz-grp-tree">
            <name>'recurrence-with-time-zone' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping recurrence-with-time-zone:
    +-- recurrence-first
    |  +-- start-time?   yang:date-and-time
    |  +-- duration?     duration
    +-- time-zone-identifier?     sys:timezone-name
    +-- (recurrence-end)?
    |  +--:(until)
    |  |  +-- until?              yang:date-and-time
    |  +--:(count)
    |     +-- count?              uint32
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The "recurrence-first" container includes "start-time" and "duration" parameters
   to specify the start time and period of the first occurrence. Unless specified otherwise (e.g., through additional
   augmented parameters), the "duration" also applies to subsequent recurrence instances. When unspecified, each occurrence is considered as
   immediate completion (e.g., execute an immediate command that is considered
   to complete quickly) or hard to compute an exact duration (e.g., run a data
   analysis script whose execution time may depend on the data volume and
   computation resource availability).</t>
          <t>The grouping also includes a
   "time-zone-identifier" parameter parameter, which <bcp14>MUST</bcp14> be specified if either the "start-time" or "until"
   value is reported in local time format. It <bcp14>MUST NOT</bcp14> be applied to date and time
   values which that are specified in the format of UTC or time zone offset to UTC.</t>
          <t>The repetition can be scoped by a specified end time or by a count of occurrences,
  indicated by the "recurrence-end" choice. The "count" value <bcp14>MUST</bcp14> be greater than 1, and the "start-time" value always counts
  as the first occurrence.</t>
          <t>The considerations discussed in <xref target="sec-rec-utc"/> for "interval" and "duration" are also applicable to "recurrence-with-time-zone".</t>
          <t>Unlike the definition of the "recurrence-utc" grouping (<xref target="sec-rec-utc"/>),
   "recurrence-with-time-zone" is intended to promote human readability over
   machine readability.</t>
        </section>
        <section anchor="sec-rec-utc-dt">
          <name>The "recurrence-utc-with-periods" Grouping</name>
          <t>The "recurrence-utc-with-periods" grouping (<xref target="rec-utc-dt-grp-tree"/>) uses
   the "recurrence-utc" grouping (<xref target="sec-rec-utc"/>) and adds a "period-timeticks"
   list to define an aggregate set of repeating occurrences.</t>
          <figure anchor="rec-utc-dt-grp-tree">
            <name>'recurrence-utc-with-periods' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping recurrence-utc-with-periods:
    +-- recurrence-first
    |  +-- start-time-utc?   yang:date-and-time
    |  +-- duration?         uint32
    +-- (recurrence-end)?
    |  +--:(until)
    |  |  +-- utc-until?          yang:date-and-time
    |  +--:(count)
    |     +-- count?              uint32
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
    +-- period-timeticks* [period-start]
       +-- period-start    yang:timeticks
       +-- period-end?     yang:timeticks
]]></artwork>
]]></sourcecode>
          </figure>
          <!--[rfced] For conciseness, may we shorten "the value indicated by the value
of the..." in the sentence below as follows?

Original:
   The value of the "period-start" instance MUST
   NOT exceed the value indicated by the value of "frequency" instance...

Perhaps:
   The value of the "period-start" instance MUST
   NOT exceed the value of the "frequency" instance...
-->

<t>The recurrence instances are specified by the union of occurrences defined
  by both the recurrence rule and "period-timeticks" list. This list uses the
  "yang:timeticks" type defined in <xref target="RFC6991"/>. Duplicate instances
  are ignored. The value of the "period-start" instance <bcp14>MUST NOT</bcp14> exceed the
  value indicated by the value of the "frequency" instance, i.e., the timeticks "timeticks"
  value must not exceed 100 in a secondly recurrence rule, and it must not
  exceed 6000 in a minutely recurrence rule, and so on.</t>
        </section>
        <section anchor="sec-rec-tz-dt">
          <name>The "recurrence-time-zone-with-periods" Grouping</name>
          <t>The "recurrence-time-zone-with-periods" grouping (<xref target="rec-tz-dt-grp-tree"/>) uses
  the "recurrence-with-time-zone" grouping (<xref target="sec-rec-tz"/>) and
  adds a "period" list to define an aggregate set of repeating occurrences.</t>
          <figure anchor="rec-tz-dt-grp-tree">
            <name>'recurrence-time-zone-with-periods' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping recurrence-time-zone-with-periods:
    +-- recurrence-first
    |  +-- start-time?   yang:date-and-time
    |  +-- duration?     duration
    +-- time-zone-identifier?     sys:timezone-name
    +-- (recurrence-end)?
    |  +--:(until)
    |  |  +-- until?              yang:date-and-time
    |  +--:(count)
    |     +-- count?              uint32
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
    +-- period* [period-start]
       +-- period-description?     string
       +-- period-start            yang:date-and-time
       +-- time-zone-identifier?   sys:timezone-name
       +-- (period-type)?
          +--:(explicit)
          |  +-- period-end?       yang:date-and-time
          +--:(duration)
             +-- duration?         duration
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The recurrence instances are specified by the union of occurrences defined
  by both the recurrence rule and "period" list. Duplicate instances
  are ignored.</t>
        </section>
        <section anchor="sec-ical-rec">
          <name>The "icalendar-recurrence" Grouping</name>
          <t>The "icalendar-recurrence" grouping (<xref target="ical-grp-tree"/>) uses the
  "recurrence-time-zone-with-periods" grouping (<xref target="sec-rec-tz-dt"/>) and defines
  more data nodes to enrich the definition of recurrence. The structure of the
  "icalendar-recurrence" grouping refers to the definition of the recurrence
  component defined in Sections <xref target="RFC5545" section="3.3.10" sectionFormat="bare"/> and <xref target="RFC5545" section="3.8.5" sectionFormat="bare"/> of <xref target="RFC5545"/>.</t>
          <figure anchor="ical-grp-tree">
            <name>'icalendar-recurrence' Grouping Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping icalendar-recurrence:
    +-- recurrence-first
    |  +-- start-time?   yang:date-and-time
    |  +-- duration?     duration
    +-- time-zone-identifier?     sys:timezone-name
    +-- (recurrence-end)?
    |  +--:(until)
    |  |  +-- until?              yang:date-and-time
    |  +--:(count)
    |     +-- count?              uint32
    +-- recurrence-description?   string
    +-- frequency?                identityref
    +-- interval?                 uint32
    +-- period* [period-start]
    |  +-- period-description?     string
    |  +-- period-start            yang:date-and-time
    |  +-- time-zone-identifier?   sys:timezone-name
    |  +-- (period-type)?
    |     +--:(explicit)
    |     |  +-- period-end?       yang:date-and-time
    |     +--:(duration)
    |        +-- duration?         duration
    +-- bysecond*                 uint32
    +-- byminute*                 uint32
    +-- byhour*                   uint32
    +-- byday* [weekday]
    |  +-- direction*   int32
    |  +-- weekday      schedule:weekday
    +-- bymonthday*               int32
    +-- byyearday*                int32
    +-- byyearweek*               int32
    +-- byyearmonth*              uint32
    +-- bysetpos*                 int32
    +-- workweek-start?           schedule:weekday
    +-- exception-dates*          yang:date-and-time
]]></artwork>
]]></sourcecode>
          </figure>
          <t>An array of the "bysecond" (or "byminute", "byminute" or "byhour") specifies a list of
   seconds within a minute (or minutes within an hour, hour or hours of the day). For
   example, within a "minutely" recurrence rule, the values of "byminute" node
   "10" and "20" means mean the occurrences are generated at the 10th and 20th minute
   within an hour, reducing the number of recurrence instances from all minutes.</t>
          <t>The parameter "byday" specifies a list of days of the week, with an optional
   direction which that indicates the nth occurrence of a specific day within
   the "monthly" or "yearly" frequency instance. Valid values of "direction" are 1 to 5 or -5 to -1 within a "monthly" recurrence rule; rule and 1 to 53 or -53 to -1 within a "yearly" recurrence rule. For example, within a "monthly" rule,
   the "weekday" with a value of "monday" and the "direction" with a value of "-1"
   represents the last Monday of the month.</t>
          <t>An array of the "bymonthday" (or byyearday", "byyearweek", or "byyearmonth") specifies a list of
   days of the month (or days of the year, weeks of the year, or months of the year).
   For example, within a "yearly" recurrence rule, the values of "byyearmonth"
   instance
   instances "1" and "2" means mean the occurrences are generated in January and February,
   increasing the "yearly" recurrence from every year to every January and February
   of the year.</t>
          <t>The "bysetpos" conveys a list of values that corresponds to the nth occurrence
   within the set of recurrence instances to be specified. For example, in a "monthly"
   recurrence rule, the "byday" data node specifies every Monday of the week, and the
   "bysetpos" with a value of "-1" represents the last Monday of the month.
   Not setting the "bysetpos" data node represents every Monday of the month.</t>
          <t>The "workweek-start" data node specifies the day on which the week starts. This is
   significant when a "weekly" recurrence rule has an interval greater than 1, and
   a "byday" data node is specified. This is also significant when in a "yearly" rule
   and a "byyearweek" is specified. Note that that, per <xref section="4.13" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a "default"
   nor a "mandatory" substatement is defined here because there are cases (e.g., profiling)
   where using these statements is problematic.
   YANG modules using this grouping <bcp14>SHOULD</bcp14> refine the "workweek-start" node with either a
   "mandatory" or a "default" statement, statement if it always needs to be configured or has a default value.
   This <bcp14>MAY</bcp14> be ignored in cases such as when this grouping is used by another grouping.</t>
          <t>The "exception-dates" data node specifies a list of exceptions for recurrence. The
   final recurrence set is generated by gathering all of the date and time values
   created by any of the specified recurrence rule rules and date-times, date-times and then
   excluding any start date and time values specified by "exception-dates" parameter.</t>
        </section>
        <section anchor="sec-schedule-status">
          <name>The "schedule-status", "schedule-status-with-time-zone", and "schedule-status-with-name" Groupings</name>
          <t>The "schedule-status", "schedule-status-with-time-zone", and "schedule-status-with-name" groupings (<xref target="sche-status-tree"/>) define common parameters
   for scheduling management/status exposure. The "schedule-status-with-time-zone" grouping has the same
   structure as "schedule-status" but with an additional parameter to identify a time zone. Similarly, the "schedule-status-with-name" grouping has the same structure as "schedule-status" but with an additional parameter to identify a schedule "schedule-name". These
   structures are defined in the module to allow for better modularity and flexibility.</t>
          <!--[rfced] In the title of Figure 9, is the asterisk (*) in
"schedule-status-*" correct? We ask as we do not see this elsewhere in
the document.

Current:
   Figure 9: 'schedule-status-*' Groupings Tree Structure

Perhaps:
   Figure 9: 'schedule-status' Groupings Tree Structure
-->

<figure anchor="sche-status-tree">
            <name>'schedule-status-*' Groupings Tree Structure</name>
            <artwork><![CDATA[
            <sourcecode type="yangtree"><![CDATA[
  grouping schedule-status:
    +-- state?                    identityref
    +-- version?                  uint16
    +-- schedule-type?            identityref
    +--ro local-time?               yang:date-and-time
    +--ro last-update?              yang:date-and-time
    +--ro counter?                  yang:counter32
    +--ro last-occurrence?          yang:date-and-time
    +--ro upcoming-occurrence?      yang:date-and-time
    +--ro last-failed-occurrence?   yang:date-and-time
    +--ro failure-counter?          yang:counter32
  grouping schedule-status-with-time-zone:
    +--ro time-zone-identifier?  sys:timezone-name
    +-- schedule-name?            string
    +-- state?                    identityref
    +-- version?                  uint16
    +-- schedule-type?            identityref
    +--ro local-time?               yang:date-and-time
    +--ro last-update?              yang:date-and-time
    +--ro counter?                  yang:counter32
    +--ro last-occurrence?          yang:date-and-time
    +--ro upcoming-occurrence?      yang:date-and-time
    +--ro last-failed-occurrence?   yang:date-and-time
    +--ro failure-counter?          yang:counter32
  grouping schedule-status-with-name:
    +-- schedule-name?            string
    +-- state?                    identityref
    +-- version?                  uint16
    +-- schedule-type?            identityref
    +--ro local-time?               yang:date-and-time
    +--ro last-update?              yang:date-and-time
    +--ro counter?                  yang:counter32
    +--ro last-occurrence?          yang:date-and-time
    +--ro upcoming-occurrence?      yang:date-and-time
    +--ro last-failed-occurrence?   yang:date-and-time
    +--ro failure-counter?          yang:counter32
]]></artwork>
]]></sourcecode>
          </figure>
          <t>The "schedule-name" parameter is useful to uniquely identify a schedule in
   a network device or controller if multiple scheduling contexts exist.</t>
          <t>The "state" parameter is defined to configure/expose the scheduling state,
   depending on the use of the grouping. For a recurrence-based schedule, it
   represents the state of the overall recurrence. The "identityref" type is used for this
   parameter to allow extensibility in future modules.</t>
          <t>The "version" parameter is used to track the current schedule version
   information. The version can be incremented by the entity that created the schedule.
   The "last-update" parameter identifies when the schedule was last modified.
   In some contexts, this parameter can be used to track the configuration of a
   given schedule. In such cases, the "version" may not be used.</t>
          <t>The "schedule-type" parameter identifies the type of the current schedule.
   The "counter", "last-occurrence", and "upcoming-occurrence" data nodes are
   only available when the "schedule-type" is "recurrence".</t>
          <t>When no time zone is included, "local-time" reports the actual local time as seen by the entity that
   hosts a schedule. This parameter can be used by a controller to infer the offset to UTC. This use
   is similar to the use of "schedLocalTime" in <xref target="RFC3231"/>.</t>
          <t>"last-failed-occurrence" and "failure-counter" report the last failure that occurred and
   the count of failures for this schedule. Unless new parameters/operations are defined to allow the count of failures to be reset,
   "failure-counter" is reset by default only when the schedule starts.</t>
          <t>The current groupings capture common parameters that are applicable
   to typical scheduling contexts known so far. Future modules can define other
   useful parameters as needed. For example, in a scheduling context with multiple
   system sources to feed the schedules, the "source" and "precedence" parameters
   may be needed to reflect how schedules from different sources should be prioritized.</t>
        </section>
      </section>
      <section anchor="sec-aug">
        <name>Features Use and Augmentations</name>
        <t><xref target="features"/> provides an example about how the features defined in <xref target="sec-features"/> can be used. Implementations
   may support a basic recurrence rule or an advanced one one, as needed, by declaring
   different features. Whether only one or both features are supported is implementation
   specific and depends on the specific scheduling context.</t>
        <t>The common schedule groupings (<xref target="sec-grp"/>) can also be augmented to support specific needs. As an example,
   <xref target="augments"/> demonstrates how additional parameters can be added to comply with specific schedule needs.</t>
      </section>
    </section>
    <section anchor="some-usage-restrictions">
      <name>Some Usage Restrictions</name>
      <t>There are some restrictions that need to be followed when using groupings defined
   in the "ietf-schedule" YANG module (<xref target="sec-grp"/>):</t>
      <ul spacing="normal">
        <li>
          <t>The instant in time represented by "period-start" <bcp14>MUST</bcp14> be before the
"period-end" for the "period-of-time" grouping (<xref target="sec-period"/>).</t>
        </li>
        <li>
          <t>The combination of the day, month, and year represented for date and time
values <bcp14>MUST</bcp14> be valid. See <xref section="5.7" sectionFormat="of" target="RFC3339"/> for the maximum day
number based on the month and year.</t>
        </li>
        <li>
          <t>Unless deployed in contexts where time synchronization is not subject to leap second adjustments (e.g., <xref section="4.3" sectionFormat="of" target="I-D.ietf-ntp-ntpv5"/>), the second for date and time values <bcp14>SHOULD</bcp14> have the value "60" at the end of months in which a leap
second occurs.</t>
        </li>
        <li>
          <t>Schedules received with a starting time in the past with respect to
current time <bcp14>SHOULD</bcp14> be ignored. When a local policy is provided, an implementation <bcp14>MAY</bcp14> omit the past occurrences and
start immediately (e.g., for a period-based schedule) or starts start from the
date and time when the recurrence pattern is first satisfied from the current time (e.g., for a recurrence-based schedule).</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-mib">
      <name>Relationship to the DISMAN-SCHEDULE-MIB</name>
      <t><xref target="RFC3231"/> specifies a Management Information Base (MIB) used to
schedule management operations periodically or at specified dates and times.</t>
      <t>Although no data nodes are defined in this document, <xref target="mapping"/> lists
how the main objects in the DISMAN-SCHEDULE-MIB can be mapped to YANG
parameters.</t>
      <table anchor="mapping">
        <name>YANG/MIB Mapping</name>
        <thead>
          <tr>
            <th align="left">MIB Object</th>
            <th align="left">YANG</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">schedLocalTime</td>
            <td align="left">local-time</td>
          </tr>
          <tr>
            <td align="left">schedType</td>
            <td align="left">schedule-type</td>
          </tr>
          <tr>
            <td align="left">schedName</td>
            <td align="left">schedule-name</td>
          </tr>
          <tr>
            <td align="left">schedOwner</td>
            <td align="left">Not Supported</td>
          </tr>
          <tr>
            <td align="left">schedDescr</td>
            <td align="left">description</td>
          </tr>
          <tr>
            <td align="left">schedInterval</td>
            <td align="left">interval</td>
          </tr>
          <tr>
            <td align="left">schedWeekDay</td>
            <td align="left">weekday</td>
          </tr>
          <tr>
            <td align="left">schedMonth</td>
            <td align="left">byyearmonth</td>
          </tr>
          <tr>
            <td align="left">schedDay</td>
            <td align="left">bymonthday</td>
          </tr>
          <tr>
            <td align="left">schedHour</td>
            <td align="left">byhour</td>
          </tr>
          <tr>
            <td align="left">schedMinute</td>
            <td align="left">byminute</td>
          </tr>
          <tr>
            <td align="left">schedContextName</td>
            <td align="left">Not Supported</td>
          </tr>
          <tr>
            <td align="left">schedAdminStatus</td>
            <td align="left">state</td>
          </tr>
          <tr>
            <td align="left">schedOperStatus</td>
            <td align="left">state</td>
          </tr>
          <tr>
            <td align="left">schedFailures</td>
            <td align="left">failure-counter</td>
          </tr>
          <tr>
            <td align="left">schedLastFailure</td>
            <td align="left">Not Supported</td>
          </tr>
          <tr>
            <td align="left">schedLastFailed</td>
            <td align="left">last-failed-occurrence</td>
          </tr>
          <tr>
            <td align="left">schedStorageType</td>
            <td align="left">Not Supported</td>
          </tr>
          <tr>
            <td align="left">schedVariable</td>
            <td align="left">Not applicable</td>
          </tr>
          <tr>
            <td align="left">schedValue</td>
            <td align="left">Not applicable</td>
          </tr>
          <tr>
            <td align="left">schedTriggers</td>
            <td align="left">counter/failure-counter</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-schedule">
      <name>The "ietf-schedule" YANG Module</name>
      <!--[rfced] FYI - As RFC 5545 is also cited within the "ietf-schedule"
module, we've added it to the list of RFCs preceding the module.

Original:
   This module imports types defined in [RFC6991] and [RFC7317].

Current:
   This module imports types defined in [RFC5545], [RFC6991], and [RFC7317].
-->

<!--[rfced] FYI - We made the following update to the format in the
"ietf-schedule" YANG module using the formatting option of pyang.

Original:
   error-message
     "Frequency must be provided.";

Current:
   error-message "Frequency must be provided.";
-->

<t>This module imports types defined in <xref target="RFC6991"/> target="RFC5545"/>, <xref target="RFC6991"/>, and <xref target="RFC7317"/>.</t>
      <sourcecode markers="true" name="ietf-schedule@2025-05-30.yang"><![CDATA[ type="yang" markers="true"><![CDATA[
file "ietf-schedule@2026-02-18.yang"
module ietf-schedule {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-schedule";
  prefix schedule;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  import ietf-system {
    prefix sys;
    reference
      "RFC 7317: A YANG Data Model for System Management";
  }

  organization
    "IETF NETMOD Working Group";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/netmod/>
     WG List: <mailto:netmod@ietf.org>

     Editor:   Qiufang Ma
               <mailto:maqiufang1@huawei.com
               <mailto:maqiufang1@huawei.com>
     Author:   Qin Wu
               <mailto:bill.wu@huawei.com>
     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>
     Author:   Daniel King
               <mailto:d.king@lancaster.ac.uk>";
  description
    "This YANG module defines a set of common types and groupings
     which
     that are applicable for scheduling purposes purposes, such as events,
     policy,
     policies, services, or resources based on date and time.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2025 2026 IETF Trust and the persons identified
     as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with
     or without modification, is permitted pursuant to, and
     subject to the license terms contained in, the Revised
     BSD License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; 9922; see
     the RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY',

     All revisions of IETF and 'OPTIONAL' in this document are to IANA-maintained modules can be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear found
     in all capitals, as shown here."; the 'YANG Parameters' registry group
     (https://www.iana.org/assignments/yang-parameters).";

  revision 2025-05-30 2026-02-18 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: 9922: A Common YANG Data Model for Scheduling";
  }

  feature basic-recurrence {
    description
      "Indicates that the server supports configuring a basic
       scheduled recurrence.";
  }

  feature icalendar-recurrence {
    description
      "Indicates that the server supports configuring a comprehensive
       scheduled iCalendar recurrence"; recurrence.";
    reference
      "RFC 5545: Internet Calendaring and Scheduling Core Object
                 Specification (iCalendar),
                 Sections 3.3.10 and 3.8.5";
  }

  typedef weekday {
    type enumeration {
      enum sunday {
        value 0;
        description
          "Sunday of the week.";
      }
      enum monday {
        value 1;
        description
          "Monday of the week.";
      }
      enum tuesday {
        value 2;
        description
          "Tuesday of the week.";
      }
      enum wednesday {
        value 3;
        description
          "Wednesday of the week.";
      }
      enum thursday {
        value 4;
        description
          "Thursday of the week.";
      }
      enum friday {
        value 5;
        description
          "Friday of the week.";
      }
      enum saturday {
        value 6;
        description
          "Saturday of the week.";
      }
    }
    description
      "Seven days of the week.";
  }

  typedef duration {
    type string {
      pattern '((\+)?|\-)P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])'
            + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W';
    }
    description
      "Duration of the time.  The format can represent nominal
       durations (weeks designated by 'W' and days designated by 'D')
       and accurate durations (hours:minutes:seconds follows the
       designator 'T').

       Note that this value type doesn't support the 'Y' and 'M'
       designators to specify durations in terms of years and months.

       Negative durations are typically used to schedule an alarm to
       trigger before an associated time.";
    reference
      "RFC 5545: Internet Calendaring and Scheduling Core Object
                 Specification (iCalendar), Sections 3.3.6 and
                 3.8.6.3";
  }

  identity schedule-type {
    description
      "Base identity for schedule type.";
  }

  identity one-shot {
    base schedule-type;
    description
      "Indicates a one-shot schedule.  That is a schedule that
       will trigger an action with the duration being specified as
       0 or end time being specified as the same as the start time,
       and then the schedule will disable itself.";
  }

  identity period {
    base schedule-type;
    description
      "Indicates a period-based schedule consisting of either a
       start and end or a start and positive duration of time.  If
       neither an end nor a duration is indicated, the period is
       considered to last forever.";
  }

  identity recurrence {
    base schedule-type;
    description
      "Indicates a recurrence-based schedule.";
  }

  identity frequency-type {
    description
      "Base identity for frequency type.";
  }

  identity secondly {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a second or more.";
  }

  identity minutely {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a minute or more.";
  }

  identity hourly {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       an hour or more.";
  }

  identity daily {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a day or more.";
  }

  identity weekly {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a week or more.";
  }

  identity monthly {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a month or more.";
  }

  identity yearly {
    base frequency-type;
    description
      "Indicates a repeating rule based on an interval of
       a year or more.";
  }

  identity schedule-state {
    description
      "Base identity for schedule state.";
  }

  identity enabled {
    base schedule-state;
    description
      "Indicates a schedule with an enabled state.";
  }

  identity finished {
    base schedule-state;
    description
      "Indicates a schedule with a finished state.
       The finished state indicates that the schedule has ended.";
  }

  identity disabled {
    base schedule-state;
    description
      "Indicates a schedule with a disabled state.";
  }

  identity out-of-date {
    base schedule-state;
    description
      "Indicates a schedule that is received out-of-date.";
  }

  identity conflicted {
    base schedule-state;
    description
      "Indicates a schedule with a conflicted state with other
       schedules.";
  }

  identity discard-action-type {
    description
      "Base identity for the action for the responder to take
       when a requested schedule cannot be accepted for any
       reason and is discarded.";
  }

  identity warning {
    base discard-action-type;
    description
      "Indicates that a warning message is generated
       when a schedule is discarded.";
  }

  identity error {
    base discard-action-type;
    description
      "Indicates that an error message is generated
       when a schedule is discarded.";
  }

  identity silently-discard {
    base discard-action-type;
    description
      "Indicates that a schedule that is not valid is silently
       discarded.";
  }

  grouping generic-schedule-params {
    description
      "Includes a set of generic parameters that are followed by
       the entity that supports schedules.

       Such parameters are used as guards to prevent, e.g., stale
       configuration.";
    leaf description {
      type string;
      description
        "Provides a description of the schedule.";
    }
    leaf time-zone-identifier {
      type sys:timezone-name;
      description
        "Indicates the identifier for the time zone.  This parameter
         MUST be specified if any of the date and time values are
         in the format of local time.  It MUST NOT be applied to
         date and time values which that are specified in the format of
         UTC or time zone offset to UTC.";
    }
    leaf validity {
      type yang:date-and-time;
      description
        "Specifies the date and time after which a schedule will not
         be considered as valid.  This parameter takes precedence
         over similar attributes that are provided at the schedule
         instance itself.";
    }
    leaf max-allowed-start {
      type yang:date-and-time;
      description
        "Specifies the maximum scheduled start date and time.
         A requested schedule whose first instance occurs after
         this value cannot be accepted by the entity.  Specifically,
         a requested schedule will be rejected if the first
         occurrence of that schedule exceeds 'max-allowed-start'.";
    }
    leaf min-allowed-start {
      type yang:date-and-time;
      description
        "Specifies the minimum scheduled start date and time.
         A requested schedule whose first instance occurs before
         this value cannot be accepted by the entity.  Specifically,
         a requested schedule will be rejected if the first
         occurrence of that schedule is scheduled before
         'min-allowed-start'.";
    }
    leaf max-allowed-end {
      type yang:date-and-time;
      description
        "A requested schedule will be rejected if the end time of
         the last occurrence exceeds 'max-allowed-end'.";
    }
    leaf discard-action {
      type identityref {
        base discard-action-type;
      }
      description
        "Specifies the behavior when a schedule is discarded for
         any reason, e.g., failing to satisfy the guards in this
         grouping or it is being received out-of-date.";
    }
  }

  grouping period-of-time {
    description
      "This grouping is defined for the period of time property.";
    reference
      "RFC 5545: Internet Calendaring and Scheduling Core Object
                 Specification (iCalendar), Section 3.3.9";
    leaf period-description {
      type string;
      description
        "Provides a description of the period.";
    }
    leaf period-start {
      type yang:date-and-time;
      description
        "Period start time.";
    }
    leaf time-zone-identifier {
      type sys:timezone-name;
      description
        "Indicates the identifier for the time zone.  This parameter
         MUST be specified if either the 'period-start' or
         'period-end' value is reported in local time format.
         It MUST NOT be applied to date and time values which that are
         specified in the format of UTC or time zone offset
         to UTC.";
    }
    choice period-type {
      description
        "Indicates the type of the time period.  Two types are
         supported.  If no choice is indicated, the period is
         considered to last forever.";
      case explicit {
        description
          "A period of time is identified by its start and its end.
           'period-start' indicates the period start.";
        leaf period-end {
          type yang:date-and-time;
          description
            "A period of time is defined by a start and end time.
             The start MUST be no later than the end.  The period
             is considered as a one-shot schedule if the end time
             is the same as the start time.";
        }
      }
      case duration {
        description
          "A period of time is defined by a start and a non-negative
           duration of time.";
        leaf duration {
          type duration {
            pattern 'P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])'
                  + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W';
          }
          description
            "A non-negative duration of time.  This value is
             equivalent to the format of duration 'duration' type except that
             the value cannot be negative.  The period is considered
             to be a one-shot schedule if the value is 0.";
        }
      }
    }
  }

  grouping recurrence-basic {
    description
      "A simple definition of recurrence.";
    leaf recurrence-description {
      type string;
      description
        "Provides a description of the recurrence.";
    }
    leaf frequency {
      type identityref {
        base frequency-type;
      }
      description
        "Specifies the frequency type of the recurrence rule.";
    }
    leaf interval {
      type uint32 {
        range "1..max";
      }
      must '../frequency' {
        error-message "Frequency must be provided.";
      }
      description
        "A positive integer representing the interval at which the
         recurrence rule repeats.  For example, within a 'daily'
         recurrence rule, a value of '8' means every eight days.";
    }
  }

  grouping recurrence-utc {
    description
      "A simple definition of recurrence with time specified in
       UTC format.";
    container recurrence-first {
      description
        "Specifies the first instance of the recurrence.  If
         unspecified, the recurrence is considered to start from
         the date and time when the recurrence pattern is first
         satisfied.";
      leaf start-time-utc {
        type yang:date-and-time;
        description
          "Defines the date and time of the first instance
           in the recurrence set.  A UTC format MUST be used.";
      }
      leaf duration {
        type uint32;
        units "seconds";
        description
          "When specified, it indicates how long the first occurrence
           lasts.  Unless specified otherwise, it also applies to all
           the other instances in the recurrence set.";
      }
    }
    choice recurrence-end {
      description
        "Modes to control the end of a recurrence rule.  If no
         choice is indicated, the recurrence rule is considered
         to repeat forever.";
      case until {
        description
          "This case defines a way that limits the end of
           a recurrence rule in an inclusive manner.";
        leaf utc-until {
          type yang:date-and-time;
          description
            "This parameter specifies a date and time value to
             inclusively terminate the recurrence in UTC format.
             That is, if the value specified by this parameter is
             synchronized with the specified recurrence rule, it
             becomes the last instance of the recurrence rule.";
        }
      }
      case count {
        description
          "This case defines the number of occurrences at which
           to terminate the recurrence rule.";
        leaf count {
          type uint32 {
            range "1..max";
          }
          description
            "The positive number of occurrences at which to
             terminate the recurrence rule.";
        }
      }
    }
    uses recurrence-basic;
  }

  grouping recurrence-with-time-zone {
    description
      "A simple definition of recurrence to specify a recurrence
       rule with a time zone.";
    container recurrence-first {
      description
        "Specifies the first instance of the recurrence.  If
         unspecified, the recurrence is considered to start from
         the date and time when the recurrence pattern is first
         satisfied.";
      leaf start-time {
        type yang:date-and-time;
        description
          "Defines the date and time of the first instance
           in the recurrence set.";
      }
      leaf duration {
        type duration;
        description
          "When specified, it indicates how long the first
           occurrence last. lasts.  Unless specified otherwise, it also
           applies to all the other instances in the recurrence
           set.";
      }
    }
    leaf time-zone-identifier {
      type sys:timezone-name;
      description
        "Indicates the identifier for the time zone in a time
         zone database.  This parameter MUST be specified if either
         the 'start-time' or 'until' value is reported in local
         time format.  It MUST NOT be applied to date and time
         values which that are specified in the format of UTC or time
         zone offset to UTC.";
    }
    choice recurrence-end {
      description
        "Modes to terminate the recurrence rule.  If no choice is
         indicated, the recurrence rule is considered to repeat
         forever.";
      case until {
        description
          "The end of the recurrence rule is indicated by a specific
           date-and-time value in an inclusive manner.";
        leaf until {
          type yang:date-and-time;
          description
            "Specifies a date and time value to inclusively terminate
             the recurrence. Thats  That is, if the value specified by
             this parameter is synchronized with the specified
             recurrence, it becomes the last instance of the
             recurrence.";
        }
      }
      case count {
        description
          "The end of the recurrence is indicated by the number
           of occurrences.";
        leaf count {
          type uint32 {
            range "1..max";
          }
          description
            "The positive number of occurrences at which to
             terminate the recurrence.";
        }
      }
    }
    uses recurrence-basic;
  }

  grouping recurrence-utc-with-periods {
    description
      "This grouping defines an aggregate set of repeating
       occurrences with UTC time format.  The recurrence instances
       are specified by the occurrences defined by both the
       recurrence rule and 'period-timeticks' list.  Duplicate
       instances are ignored.";
    uses recurrence-utc;
    list period-timeticks {
      key "period-start";
      description
        "A list of periods with timeticks formats.";
      leaf period-start {
        type yang:timeticks;
        must "(not(derived-from(../../frequency,"
           + "'schedule:secondly')) or (current() < 100)) and "
           + "(not(derived-from(../../frequency,"
           + "'schedule:minutely')) or (current() < 6000)) and "
           + "(not(derived-from(../../frequency,'schedule:hourly'))"
           + " or (current() < 360000)) and "
           + "(not(derived-from(../../frequency,'schedule:daily'))"
           + " or (current() < 8640000)) and "
           + "(not(derived-from(../../frequency,'schedule:weekly'))"
           + " or (current() < 60480000)) and "
           + "(not(derived-from(../../frequency,"
           + "'schedule:monthly')) or (current() < 267840000)) and "
           + "(not(derived-from(../../frequency,'schedule:yearly'))"
           + " or (current() < 3162240000))" {
          error-message
            "The period-start 'period-start' must not exceed the frequency
             interval.";
        }
        description
          "Start time of the schedule within one recurrence.

           Given that the value is in timeticks format
           (i.e., 1/100 of a second), the values in the must
           statement translate to: to 100 = 1s 1 s (secondly),
           6000 = 60 s = 1 min (minutely), and so on for all
           instances in the must statement invariant.";
      }
      leaf period-end {
        type yang:timeticks;
        description
          "End time of the schedule within one recurrence.
           The period start MUST be no later than the period
           end.";
      }
    }
  }

  grouping recurrence-time-zone-with-periods {
    description
      "This grouping defines an aggregate set of repeating
       occurrences with local time format and time zone specified.
       The recurrence instances are specified by the occurrences
       defined by both the recurrence rule and 'period' list.
       Duplicate instances are ignored.";
    uses recurrence-with-time-zone;
    list period {
      key "period-start";
      description
        "A list of periods with date-and-time formats.";
      uses period-of-time;
    }
  }

  grouping icalendar-recurrence {
    description
      "This grouping specifies properties of a recurrence rule.";
    reference
      "RFC 5545: Internet Calendaring and Scheduling Core Object
                 Specification (iCalendar), Section 3.8.5";
    uses recurrence-time-zone-with-periods;
    leaf-list bysecond {
      type uint32 {
        range "0..60";
      }
      description
        "Specifies a list of seconds within a minute.";
    }
    leaf-list byminute {
      type uint32 {
        range "0..59";
      }
      description
        "Specifies a list of minutes within an hour.";
    }
    leaf-list byhour {
      type uint32 {
        range "0..23";
      }
      description
        "Specifies a list of hours of the day.";
    }
    list byday {
      key "weekday";
      description
        "Specifies a list of days of the week.";
      leaf-list direction {
        when "derived-from(../../frequency, 'schedule:monthly') or "
           + "(derived-from(../../frequency, 'schedule:yearly') "
           + " and not(../../byyearweek))";

        type int32 {
          range "-53..-1|1..53";
        }
        description
          "When specified, it indicates the nth occurrence of a
           specific day within the monthly or yearly recurrence
           rule.  For example, within a monthly rule, +1 monday
           represents the first monday Monday within the month, whereas
           -1 monday represents the last monday Monday of the month.";
      }
      leaf weekday {
        type schedule:weekday;
        description
          "Corresponds to seven days of the week.";
      }
    }
    leaf-list bymonthday {
      type int32 {
        range "-31..-1|1..31";
      }
      description
        "Specifies a list of days of the month.";
    }
    leaf-list byyearday {
      type int32 {
        range "-366..-1|1..366";
      }
      description
        "Specifies a list of days of the year.";
    }
    leaf-list byyearweek {
      when "derived-from(../frequency, 'schedule:yearly')";
      type int32 {
        range "-53..-1|1..53";
      }
      description
        "Specifies a list of weeks of the year.";
    }
    leaf-list byyearmonth {
      type uint32 {
        range "1..12";
      }
      description
        "Specifies a list of months of the year.";
    }
    leaf-list bysetpos {
      type int32 {
        range "-366..-1|1..366";
      }
      description
        "Specifies a list of values that corresponds to the nth
         occurrence within the set of recurrence instances
         specified by the rule.  It must only be used in conjunction
         with another 'byxxx' (bysecond, byminute, etc.) rule
         part .";
         part.";
    }
    leaf workweek-start {
      type schedule:weekday;
      description
        "Specifies the day on which the workweek starts.";
    }
    leaf-list exception-dates {
      type yang:date-and-time;
      description
        "Defines a list of exceptions for recurrence.";
    }
  }

  grouping schedule-status {
    description
      "This grouping defines common properties of scheduling
       status.";
    leaf state {
      type identityref {
        base schedule-state;
      }
      description
        "Indicates the current state of the schedule.";
    }
    leaf version {
      type uint16;
      description
        "Indicates the version number of the schedule.";
    }
    leaf schedule-type {
      type identityref {
        base schedule-type;
      }
      description
        "Indicates the schedule type.";
    }
    leaf local-time {
      type yang:date-and-time;
      config false;
      description
        "Reports the local time as used by the entity that
         hosts the schedule.";
    }
    leaf last-update {
      type yang:date-and-time;
      config false;
      description
        "Reports the timestamp that of when the schedule is last
         updated.";
    }
    leaf counter {
      when "derived-from-or-self(../schedule-type, "
         + "'schedule:recurrence')";
      type yang:counter32;
      config false;
      description
        "The number of occurrences while invoking the scheduled
         action successfully.  The count wraps around when it reaches
         the maximum value.";
    }
    leaf last-occurrence {
      when "derived-from-or-self(../schedule-type, "
         + "'schedule:recurrence')";
      type yang:date-and-time;
      config false;
      description
        "Indicates the timestamp of last occurrence.";
    }
    leaf upcoming-occurrence {
      when "derived-from-or-self(../schedule-type, "
         + "'schedule:recurrence')"
         + "and derived-from-or-self(../state, 'schedule:enabled')";
      type yang:date-and-time;
      config false;
      description
        "Indicates the timestamp of next occurrence.";
    }
    leaf last-failed-occurrence {
      when "derived-from-or-self(../schedule-type, "
         + "'schedule:recurrence')";
      type yang:date-and-time;
      config false;
      description
        "Indicates the timestamp of last failed action triggered by
         the schedule.";
    }
    leaf failure-counter {
      when "derived-from-or-self(../schedule-type, "
         + "'schedule:recurrence')";
      type yang:counter32;
      config false;
      description
        "Counts the number of failures while invoking the scheduled
         action.";
    }
  }

  grouping schedule-status-with-time-zone {
    description
      "This grouping defines common properties of scheduling
       status, including timezone"; timezone.";
    leaf time-zone-identifier {
      type sys:timezone-name;
      config false;
      description
        "Indicates the identifier for the time zone in a time
         zone database.";
    }
    uses schedule-status;
  }

  grouping schedule-status-with-name {
    description
      "This grouping defines common properties of scheduling
       status, including a schedule name.";
    leaf schedule-name {
      type string;
      description
        "The schedule identifier that uniquely identifies a
         schedule within a device, controller, network, etc.
         The unicity scope depends on the implementation.";
    }
    uses schedule-status;
  }
}
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section uses is modeled after the template described in <xref section="3.7" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</t>
      <!--[rfced] *AD - Security Considerations Questions

a) FYI - We updated the Security Considerations section to
match the template at
<https://wiki.ietf.org/group/ops/yang-security-guidelines>.
Please review and let us know if any further updates are
needed.

b) As the Writable nodes, Readable nodes, and RFC/action operations
sections are not applicable to this document, do the following
sentences need to be added accordingly (per the template)?

 - "There are no particularly sensitive writable data nodes."
 - "There are no particularly sensitive readable data nodes."
 - "There are no particularly sensitive RPC or action operations."

c) We note that in the paragraph that relates to the "No data nodes"
section, there is a sentence missing (i.e., from the template: "For
example, reusing some of these groupings will expose privacy-related
information (e.g., 'node-example')". Is that omission intentional or
should it be added for clarity?

From the template:
   Modules that use the groupings that are defined in this document
   should identify the corresponding security considerations. For
   example, reusing some of these groupings will expose
   privacy-related information (e.g., 'node-example').

Current text in the document:
   Modules that use the groupings that are defined in this document
   should identify the corresponding security considerations, for
   example:
 -->

<t>The "ietf-schedule" YANG module specified in this document defines schema for a data model
   that is designed to be accessed via YANG-based management protocols, such
   as NETCONF <xref target="RFC6241"/> or and RESTCONF <xref target="RFC8040"/>.  These YANG-based management protocols (1) have to use
   a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>)
   and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>The "ietf-schedule" module defines a set of types identities, types, and
   groupings.  These nodes are intended to be reused by other YANG
   modules.  The module by itself does not expose any data nodes that
   are writable, data nodes that contain read-only state, or RPCs.  As
   such, there are no additional security issues related to the "ietf-schedule"
   module that need to be considered.</t>
      <t>Modules that use the groupings that are defined in this document
   should identify the corresponding security considerations, e.g.,:</t> for example:</t>
      <ul spacing="normal">
        <li>
          <t>Scheduling depends on reliable and accurate time synchronization. Inaccurate date
and time setting can lead to scheduling events being triggered at incorrect
intervals, potentially causing system failures or security vulnerabilities.</t>
        </li>
        <li>
          <t>Recurring events may conceal abnormal behavior or security threats, which
may be drowned out by normal events, especially when they are triggered frequently.</t>
        </li>
        <li>
          <t>The absence of detailed logs and audit records of each occurrence trigger time
and action results, results and so on, therefore may make security incidents difficult to trace.</t>
        </li>
        <li>
          <t>Care must be taken when defining recurrences occurring very often and
frequent that can be an additional source of attacks by keeping the system
permanently busy with the management of scheduling.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="the-ietf-xml-registry">
        <name>The "IETF XML" IETF XML Registry</name>
        <t>This document registers has registered the following URI in the "IETF XML Registry" <xref target="RFC3688"/>.</t>
        <artwork><![CDATA[
        URI: urn:ietf:params:xml:ns:yang:ietf-schedule
        Registrant Contact: The IESG.
        XML: N/A,
        <dl>
          <dt>URI:</dt>
          <dd>
            <t>urn:ietf:params:xml:ns:yang:ietf-schedule</t>
          </dd>
          <dt>Registrant Contact:</dt>
          <dd>
            <t>The IESG.</t>
          </dd>
          <dt>XML:</dt>
          <dd>
            <t>N/A; the requested URI is an XML namespace.
]]></artwork> namespace.</t>
          </dd>
        </dl>
      </section>
      <section anchor="the-yang-module-names-registry">
        <name>The "YANG YANG Module Names" Names Registry</name>
        <t>This document registers has registered the following YANG module in the "YANG Module Names"
   registry <xref target="RFC6020"/>.</t>
        <artwork><![CDATA[
        name:               ietf-schedule
        namespace:          urn:ietf:params:xml:ns:yang:ietf-schedule
        prefix:             schedule
        maintained by IANA? N
        reference:          RFC XXXX
]]></artwork>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>ietf-schedule</t>
          </dd>
          <dt>Maintained by IANA:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Namespace:</dt>
          <dd>
            <t>urn:ietf:params:xml:ns:yang:ietf-schedule</t>
          </dd>
          <dt>Prefix:</dt>
          <dd>
            <t>schedule</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>RFC 9922</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-netmod-eca-policy" to="NETMOD-ECA-POLICY"/>
    <displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDE"/>
    <displayreference target="I-D.ietf-ntp-ntpv5" to="NTPv5"/>
    <displayreference target="I-D.ietf-opsawg-scheduling-oam-tests" to="YANG-OAM"/>
    <displayreference target="I-D.ietf-opsawg-ucl-acl" to="YANG-NAC"/>
    <displayreference target="I-D.ietf-tvr-schedule-yang" to="YANG-SCHEDULE"/>
    <displayreference target="I-D.liu-netmod-yang-schedule" to="YANG-CONFIG-SCHEDULE"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3231"> anchor="W3C.XML1.0" target="https://www.w3.org/TR/2008/REC-xml-20081126/">
          <front>
            <title>Definitions of Managed Objects for Scheduling Management Operations</title>
            <author fullname="D. Levi" initials="D." surname="Levi"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <date month="January" year="2002"/>
            <abstract>
              <t>This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes a set of managed objects that are used to schedule management operations periodically or at specified dates and times. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3231"/>
          <seriesInfo name="DOI" value="10.17487/RFC3231"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC5545">
          <front>
            <title>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
            <author fullname="B. Desruisseaux" initials="B." role="editor" surname="Desruisseaux"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document defines the iCalendar data format for representing and exchanging calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, independent of any particular calendar service or protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5545"/>
          <seriesInfo name="DOI" value="10.17487/RFC5545"/>
        </reference>
        <reference anchor="RFC7317">
          <front>
            <title>A YANG Data Model for System Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration and identification of some common system properties within a device containing a Network Configuration Protocol (NETCONF) server. This document also includes data node definitions for system identification, time-of-day management, user management, DNS resolver configuration, and some protocol operations for system management.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7317"/>
          <seriesInfo name="DOI" value="10.17487/RFC7317"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible
            <title>Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-opsawg-ucl-acl">
          <front>
            <title>A YANG Data Model and RADIUS Extension for Policy-based Network Access Control</title> 1.0 (Fifth Edition)</title>
            <author fullname="Qiufang Ma" initials="Q." surname="Ma">
              <organization>Huawei</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization> initials="T." surname="Bray" fullname="Tim Bray" role="editor">
              <organization/>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization> initials="J." surname="Paoli" fullname="Jean Paoli" role="editor">
              <organization/>
            </author>
            <date day="20" month="March" year="2025"/>
            <abstract>
              <t>   This document defines a YANG data model for policy-based network
   access control, which provides consistent and efficient enforcement
   of network access control policies based on group identity.
   Moreover, this document defines a mechanism to ease the maintenance
   of the mapping between a user group identifier and a set of IP/MAC
   addresses to enforce policy-based network access control.

   In addition, the document defines a Remote Authentication Dial-in
   User Service (RADIUS) attribute that is used to communicate the user
   group identifier as part of identification and authorization
   information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ucl-acl-07"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-scheduling-oam-tests">
          <front>
            <title>A YANG Data Model for Network Diagnosis using Scheduled Sequences of OAM Tests</title>
            <author fullname="Luis M. Contreras" initials="L. initials="C. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document defines a YANG data model for network diagnosis on-
   demand relying upon Operations, Administration, and Maintenance (OAM)
   tests.  This document defines both 'oam-unitary-test' and 'oam-test-
   sequence' YANG modules to manage the lifecycle of network diagnosis
   procedures, primarily intended for use by an SDN controller or
   network orchestrator, rather than by individual network nodes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-scheduling-oam-tests-01"/>
        </reference>
        <reference anchor="I-D.ietf-tvr-schedule-yang">
          <front>
            <title>YANG Data Model for Scheduled Attributes</title>
            <author fullname="Yingzhen Qu" initials="Y." surname="Qu">
              <organization>Futurewei Technologies</organization>
            </author>
            <author fullname="Acee Lindem" initials="A." surname="Lindem">
              <organization>Arrcus, Inc.</organization>
            </author>
            <author fullname="Eric Kinzie" initials="E." surname="Kinzie">
              <organization>LabN Consulting, L.L.C.</organization>
            </author>
            <author fullname="Don Fedyk" initials="D." surname="Fedyk">
              <organization>LabN Consulting, L.L.C.</organization>
            </author>
            <author fullname="Marc Blanchet" initials="M." surname="Blanchet">
              <organization>Viagenie</organization>
            </author>
            <date day="4" month="July" year="2025"/>
            <abstract>
              <t>   The YANG model in this document includes three modules, and can be
   used to manage network resources and topologies with scheduled
   attributes, such as predictable link loss and link connectivity as a
   function of time.  The intent is to have this information be utilized
   by Time-Variant Routing systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tvr-schedule-yang-05"/>
        </reference>
        <reference anchor="RFC8413">
          <front>
            <title>Framework for Scheduled Use of Resources</title>
            <author fullname="Y. Zhuang" initials="Y." surname="Zhuang"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="H. Chen" initials="H." surname="Chen"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Time-Scheduled (TS) reservation of Traffic Engineering (TE) resources can be used to provide resource booking for TE Label Switched Paths so as to better guarantee services for customers and to improve the efficiency of network resource usage at any moment in time, including network usage that is planned for the future. This document provides a framework that describes and discusses the architecture for supporting scheduled reservation of TE resources. This document does not describe specific protocols or protocol extensions needed to realize this service.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8413"/>
          <seriesInfo name="DOI" value="10.17487/RFC8413"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author surname="Sperberg-McQueen" fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="I-D.ietf-ntp-ntpv5">
          <front>
            <title>Network Time Protocol Version 5</title>
            <author fullname="Miroslav Lichvar" initials="M." surname="Lichvar">
              <organization>Red Hat</organization> M. Sperberg-McQueen" role="editor">
              <organization/>
            </author>
            <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
              <organization>Huawei</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   The Network Time Protocol (NTP) is a widely deployed protocol that
   allows hosts to obtain the current time of day from time servers.
   This document specifies version 5 of the protocol (NTPv5), which
   adopts a client-server model as its sole mode of operation.  Legacy
   operational modes supported in earlier versions have been removed to
   improve protocol robustness and clarity.  While this specification
   defines the protocol used for time distribution, it does not define
   the algorithms or heuristics employed by clients to determine or
   adjust their local time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-ntpv5-05"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC9657">
          <front>
            <title>Time-Variant Routing (TVR) Use Cases</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="N. Kuhn" initials="N." surname="Kuhn"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="R. Taylor" initials="R." surname="Taylor"/>
            <author fullname="L. Zhang" initials="L." surname="Zhang"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document introduces use cases where Time-Variant Routing (TVR) computations (i.e., routing computations that take into consideration time-based or scheduled changes to a network) could improve routing protocol convergence and/or network performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9657"/>
          <seriesInfo name="DOI" value="10.17487/RFC9657"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-eca-policy">
          <front>
            <title>A YANG Data model for ECA Policy Management</title>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Volta Networks</organization>
            </author>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Cisco</organization>
            </author>
            <date day="19" month="February" year="2021"/>
            <abstract>
              <t>   This document defines a YANG data model for Event Condition Action
   (ECA) policy management.  The ECA policy YANG module provides the
   ability to delegate some network management functions to the server
   (e.g., a NETCONF or RESTCONF server) which can take simple and
   instant action when a trigger condition on the managed objects is
   met.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-eca-policy-01"/>
        </reference>
        <reference anchor="I-D.liu-netmod-yang-schedule">
          <front>
            <title>A YANG Data Model for Configuration Scheduling</title>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Jabil</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Himanshu Shah" initials="H." surname="Shah">
              <organization>Ciena</organization> surname="Maler" fullname="Eve Maler" role="editor">
              <organization/>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization> initials="F." surname="Yergeau" fullname="Francois Yergeau" role="editor">
              <organization/>
            </author>
            <date day="1" month="March" year="2018"/>
            <abstract>
              <t>   This document describes a data model for configuration scheduling.

              </t>
            </abstract> year="2008" month="November" day="26"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liu-netmod-yang-schedule-05"/>
          <refcontent>W3C Recommendation</refcontent>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3231.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5545.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7317.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netmod-eca-policy.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netmod-rfc8407bis.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ntp-ntpv5.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-opsawg-scheduling-oam-tests.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-opsawg-ucl-acl.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tvr-schedule-yang.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.liu-netmod-yang-schedule.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8413.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4252.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7951.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9657.xml"/>
      </references>
    </references>
    <?line 1637?> 1834?>

<section anchor="usage">
      <name>Examples of Scheduling Format Representation</name>
      <t>This section provides some examples to illustrate the use of the
   period and recurrence formats defined in <xref target="sec-schedule"/>. The following
   modules are used for illustration purposes and make examples verifiable:</t>
      <artwork><![CDATA[
      <!--[rfced] In Appendix A, should each example be listed in separate
sourcecode blocks? They are all currently contained within one block of
sourcecode.
-->

<!-- [rfced] FYI, the YANG examples (example-sch-usage-1 - 8.yang and
example-scheduled-backup.yang, example-scheduled-link-bandwidth.yang,
and example-sch-capacity-res.yang) each give errors and warnings from
pyang -ietf. Please confirm this is as expected.
-->

<sourcecode type="yang"><![CDATA[
module example-sch-usage-1 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-1";
  prefix "ex-schu-1";

  import ietf-schedule {
    prefix "schedule";
  }

  container generic-schedule-params {
    uses schedule:generic-schedule-params;
  }
  container schedule-status {
    uses schedule:schedule-status;
  }
}

module example-sch-usage-2 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-2";
  prefix "ex-schu2";

  import ietf-schedule {
    prefix "schedule";
  }

  container period-of-time {
    uses schedule:period-of-time;
  }
}

module example-sch-usage-3 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-3";
  prefix "ex-schu-3";

  import ietf-schedule {
    prefix "schedule";
  }

  container recurrence-basic {
    uses schedule:recurrence-basic {
      refine frequency {
        mandatory true;
      }
      refine interval {
        default 1;
      }
    }
  }
}

module example-sch-usage-4 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-4";
  prefix "ex-schu-4";

  import ietf-schedule {
    prefix "schedule";
  }

  container recurrence-utc {
    uses schedule:recurrence-utc;
  }
}

module example-sch-usage-5 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-5";
  prefix "ex-schu-5";

  import ietf-schedule {
    prefix "schedule";
  }

  container recurrence-with-time-zone {
    uses schedule:recurrence-with-time-zone;
  }
}

module example-sch-usage-6 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-6";
  prefix "ex-schu-6";

  import ietf-schedule {
    prefix "schedule";
  }

  container recurrence-utc-with-date-times {
    uses schedule:recurrence-utc-with-periods;
  }
}

module example-sch-usage-7 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-7";
  prefix "ex-schu-8";

  import ietf-schedule {
    prefix "schedule";

  container recurrence-time-zone-with-date-times {
    uses schedule:recurrence-time-zone-with-periods;
  }
}

module example-sch-usage-8 {
  yang-version 1.1;
  namespace "http://example.com/example-sch-usage-8";
  prefix "ex-schu-8";

  container icalendar-recurrence {
    uses schedule:icalendar-recurrence {
      refine workweek-start {
        default monday;
      }
    }
  }
}
]]></artwork>
]]></sourcecode>
      <t>For each example, only the message body is provided with
   JSON
   JSON, which is used for encoding per the guidance in <xref target="RFC7951"/>.</t>
      <section anchor="the-generic-schedule-params-grouping">
        <name>The "generic-schedule-params" Grouping</name>
        <t><xref target="ex-0"/> illustrates the example of a requested schedule that needs to start no earlier than
08:00 AM, January 1, 2025 and end no later than 8:00 PM, January 31, 2025 (Beijing time).
Schedule requests that fail to meet the requirements are ignored by the system system, as indicated by
"discard-action".</t>
        <figure anchor="ex-0">
          <name>Generic Parameters with 'max-allowed-end' for Schedule Validation</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-1:generic-schedule-params": {
    "time-zone-identifier": "China/Beijing",
    "min-allowed-start": "2025-01-01T08:00:00",
    "max-allowed-end": "2025-01-31T20:00:00",
    "discard-action": "ietf-schedule:silently-discard"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t>To illustrate the difference between "max-allowed-end" and "validity" parameters,
<xref target="ex-00"/> shows the example of a requested schedule that needs to start no earlier than
08:00 AM, January 1, 2025 (Beijing time). Schedule requests that fail to meet the
requirements are ignored by the system system, as indicated by "discard-action". The
requested schedule may end after 8:00 PM, January 31, 2025, but any occurrences that are generated
after that time would not be considered as valid.</t>
        <figure anchor="ex-00">
          <name>Generic Parameters with 'validity' for Schedule Validation</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-1:generic-schedule-params": {
    "time-zone-identifier": "China/Beijing",
    "validity": "2025-01-31T20:00:00",
    "min-allowed-start": "2025-01-01T08:00:00",
    "discard-action": "ietf-schedule:silently-discard"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-period-of-time-grouping">
        <name>The "period-of-time" Grouping</name>
        <t><xref target="ex-1"/> shows an example of a period that starts at 08:00:00 UTC, UTC on January 1, 2025 and ends at 18:00:00 UTC
   on December 31, 2027.</t>
        <figure anchor="ex-1">
          <name>Simple Start/End Schedule</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-2:period-of-time": {
    "period-start": "2025-01-01T08:00:00Z",
    "period-end": "2027-12-31T18:00:00Z"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t>An example of a period that starts at 08:00:00 UTC, UTC on January 1, 2025 and lasts 15 days and
   5 hours and 20 minutes is encoded as shown in <xref target="ex-2"/>.</t>
        <figure anchor="ex-2">
          <name>Simple Schedule with Duration</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-2:period-of-time": {
    "period-start": "2025-01-01T08:00:00Z",
    "duration": "P15DT05:20:00"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t>An example of a period that starts at 2:00 A.M. AM in Los Angeles on November 19,
   2025 and lasts 20 weeks is depicted in <xref target="ex-3"/>.</t>
        <figure anchor="ex-3">
          <name>Simple Schedule with Time Zone Indication</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-2:period-of-time": {
    "period-start": "2025-11-19T02:00:00",
    "time-zone-identifier": "America/Los_Angeles",
    "duration": "P20W"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-recurrence-basic-grouping">
        <name>The "recurrence-basic" Grouping</name>
        <t><xref target="ex-6"/> target="ex-4"/> indicates a recurrence of every 2 days days, which starts immediately and repeats forever:</t>
        <figure anchor="ex-4">
          <name>Simple Schedule with Recurrence</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-3:recurrence-basic": {
    "recurrence-description": "forever recurrence rule",
    "frequency": "ietf-schedule:daily",
    "interval": 2
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-recurrence-utc-grouping">
        <name>The "recurrence-utc" Grouping</name>
        <t><xref target="ex-5"/> indicates a recurrence from 8:00 AM to 9:00 AM every day, from
   December 1 to December 31, 2025 in UTC:</t>
        <figure anchor="ex-5">
          <name>Simple Schedule with Recurrence in UTC</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-4:recurrence-utc": {
    "recurrence-first": {
      "start-time-utc": "2025-12-01T08:00:00Z",
      "duration": 3600
    },
    "frequency": "ietf-schedule:daily",
    "interval": 1,
    "utc-until": "2025-12-31T23:59:59Z"
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-recurrence-with-time-zone-grouping">
        <name>The "recurrence-with-time-zone" Grouping</name>
        <t><xref target="ex-6"/> indicates a recurrence of every 2 hours for 10 occurrences, lasting occurrences that
   lasts 10 minutes, minutes and starting starts at 3 p.m. PM on December 1, 2025 in New York:</t>
        <figure anchor="ex-6">
          <name>Simple Schedule with Recurrence with Time Zone Indication</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-5:recurrence-with-time-zone": {
    "recurrence-first": {
      "start-time": "2025-12-01T15:00:00",
      "duration": "PT00:10:00",
      "time-zone-identifier": "America/New_York"
    },
    "frequency": "ietf-schedule:hourly",
    "interval": 2,
    "count": 10
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-recurrence-utc-with-periods-grouping">
        <name>The "recurrence-utc-with-periods" Grouping</name>
        <t><xref target="ex-7"/> indicates a recurrence that occurs every two days starting at 9:00 AM
   and 3:00 PM for a duration of 30 minutes and 40 minutes minutes, respectively,
   from 2025-06-01 to 2025-06-30 in UTC:</t>
        <!--[rfced] We note that dates are formatted in different ways in
Appendix A.  For example, "January 31, 2025" and "2025-06-01" are used
in Appendices A.1 and A.6, respectively. If these instances should be
consistent, please let us know which form you prefer.

Original:
   Figure 10 illustrates the example of a requested schedule that needs
   to start no earlier than 08:00 AM, January 1, 2025 and end no later
   than 8:00 PM, January 31, 2025 (Beijing time).
   ...
   Figure 18 indicates a recurrence that occurs every two days starting
   at 9:00 AM and 3:00 PM for a duration of 30 minutes and 40 minutes
   respectively, from 2025-06-01 to 2025-06-30 in UTC:
-->

<figure anchor="ex-7">
          <name>Example of Recurrence With Date Times</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-6:recurrence-utc-with-periods": {
    "recurrence-first": {
      "start-time-utc": "2025-06-01T09:00:00Z"
    },
    "frequency": "ietf-schedule:daily",
    "interval": 2,
    "utc-until": "2025-06-30T23:59:59Z",
    "period-timeticks": [
      {
        "period-start": "3240000",
        "period-end": "3420000"
      },
      {
        "period-start": "5400000",
        "period-end": "5640000"
      }
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-recurrence-time-zone-with-periods-grouping">
        <name>The "recurrence-time-zone-with-periods" Grouping</name>
        <t><xref target="ex-8"/> indicates a recurrence that occurs every
   30 minutes and lasts for 15 minutes from 9:00 AM to 5:00 PM and an extra two extra occurrences
   at 6:00 PM and 6:30 PM with each lasting for 20 minutes on 2025-12-01 (New York):</t>
        <figure anchor="ex-8">
          <name>Example of Advanced Recurrence Schedule</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-7:recurrence-time-zone-with-periods": {
    "recurrence-first": {
      "start-time": "2025-12-01T09:00:00",
      "duration": "PT00:15:00",
      "time-zone-identifier": "America/New_York"
    },
    "frequency": "ietf-schedule:minutely",
    "interval": 30,
    "until": "2025-12-01T17:00:00Z",
    "period": [
      {
        "period-start": "2025-12-01T18:00:00",
        "duration": "PT00:20:00"
      },
      {
        "period-start": "2025-12-01T18:30:00",
        "duration": "PT00:20:00"
      }
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-icalendar-recurrence-grouping">
        <name>The "icalendar-recurrence" Grouping</name>
        <t><xref target="ex-9"/> indicates 10 occurrences that occur at
   8:00 AM (EST), (EST) every last Saturday of the month starting in January 2024:</t>
        <figure anchor="ex-9">
          <name>Simple iCalendar Recurrence</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-8:icalendar-recurrence": {
    "recurrence-first": {
      "start-time": "2024-01-27T08:00:00",
      "time-zone-identifier": "America/New_York"
    },
    "frequency": "ietf-schedule:monthly",
    "count": 10,
    "byday": [
      {
        "direction": [
          -1
        ],
        "weekday": "saturday"
      }
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t><xref target="ex-10"/> is an example of a recurrence that occurs on the last
   workday of the month until December 25, 2025, from starting January 1, 2025:</t>
        <figure anchor="ex-10">
          <name>Example of Advanced iCalendar Recurrence</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-8:icalendar-recurrence": {
    "recurrence-first": {
      "start-time": "2025-01-01"
    },
    "frequency": "ietf-schedule:monthly",
    "until": "2025-12-25",
    "byday": [
      {
        "weekday": "monday"
      },
      {
        "weekday": "tuesday"
      },
      {
        "weekday": "wednesday"
      },
      {
        "weekday": "thursday"
      },
      {
        "weekday": "friday"
      }
    ],
    "bysetpos": [
      -1
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t><xref target="ex-11"/> indicates a recurrence that occurs every 20
   minutes from 9:00 AM to 4:40 PM (UTC), with the exclusion of the
   occurrence starting at 10:20 AM
   being excluded on 2025-12-01:</t>
        <figure anchor="ex-11">
          <name>Example of Advanced iCalendar Recurrence with Exceptions</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-8:icalendar-recurrence": {
    "recurrence-first": {
      "start-time": "2025-12-01T09:00:00Z"
    },
    "until": "2025-12-01T16:40:00Z",
    "frequency": "ietf-schedule:minutely",
    "byminute": [
      0,
      20,
      40
    ],
    "byhour": [
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16
    ],
    "exception-dates": [
      "2025-12-01T10:20:00Z"
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-schedule-status-grouping">
        <name>The "schedule-status" Grouping</name>
        <t><xref target="ex-12"/> indicates the scheduled recurrence status of <xref target="ex-11"/> at the time
   of 12:15 PM, PM on 2025-12-01 (UTC):</t>
        <figure anchor="ex-12">
          <name>Example of a Schedule Status</name>
          <artwork><![CDATA[
          <sourcecode type="json"><![CDATA[
{
  "example-sch-usage-1:schedule-status": {
    "state": "ietf-schedule:enabled",
    "version": 1,
    "schedule-type": "ietf-schedule:recurrence",
    "counter": 9,
    "last-occurrence": [
      "2025-12-01T12:00:00Z"
    ],
    "upcoming-occurrence": [
      "2025-12-01T12:20:00Z"
    ]
  }
}
]]></artwork>
]]></sourcecode>
        </figure>
        <t>At the time of 12:15 PM, PM on 2025-12-01 (UTC), the recurring event occurred at
  (note that the occurrence at 10:20 AM is excluded):
  9:00, 9:20, 9:40, 10:00, 10:40, 11:00, 11:20, 11:40, and 12:00.
  The last occurrence was at 12:00, and the upcoming one is at 12:20.</t>
      </section>
    </section>
    <section anchor="sec-ext">
      <name>Examples of Using/Extending the "ietf-schedule" Module</name>
      <t>This non-normative section shows two examples for how the "ietf-schedule" module
   can be used or extended for scheduled events or attributes based on date and time.</t>
      <section anchor="features">
        <name>Example: Schedule Tasks to Execute Based on a Recurrence Rule</name>
        <t>Scheduled tasks can be used to execute specific actions based on certain recurrence rules (e.g.,
   every Friday at 8:00 AM). The following example module module, which "uses" the "icalendar-recurrence"
   grouping from the "ietf-schedule" module module, shows how a scheduled task could be defined
   with different features used for options.</t>
        <artwork><![CDATA[
        <sourcecode type="yang"><![CDATA[
module example-scheduled-backup {
  yang-version 1.1;
  namespace "http://example.com/example-scheduled-backup";
  prefix "ex-scback";

  import ietf-inet-types {
    prefix "inet";
  }

  import ietf-schedule {
    prefix "schedule";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module defining a scheduled based scheduled-based backup
     operation.";

  revision "2023-01-19" {
    description
      "Initial Version."; version.";
    reference
      "RFC XXXX: 9922: A YANG Data Model for Scheduling.";
    }

  container scheduled-backup-tasks {
    description
      "A container for backing up all current running configuration configurations
       on the device.";
    list tasks {
      key "task-id";
      description
        "The list of backing up tasks on this device.";
      leaf task-id {
        type string;
        description
          "The task identifier that uniquely identifies a scheduled
           backup task.";
      }
      choice local-or-remote {
        description
          "Specifies whether the configuration to be backed up is
           local or remote.";
        case local {
          description
            "Configuration parameters for the backing up of local
             devices.";
          leaf local {
            type empty;
            description
              "The parameter specifies the configuration to be
               backed up is on the local device.";
          }
        }
        case remote {
          description
            "Configuration parameters for backing up of remote
             devices.";
          leaf remote {
            type inet:domain-name;
            description
              "The parameter specifies the remote device domain
               name.";
          }
        }
      }

      container basic-recurrence-schedules {
        if-feature schedule:basic-recurrence;
        description
          "Basic recurrence schedule specification, which only
           applies when the schedule:basic-recurrence feature
           is supported.";
        leaf schedule-id {
          type string;
          description
            "The schedule identifier for this recurrence rule.";
        }
        uses schedule:recurrence-basic {
          refine frequency {
            mandatory true;
          }
          refine interval {
            default 1;
          }
        }
      }

      container icalendar-recurrence-schedules {
        if-feature schedule:icalendar-recurrence;
        description
          "Basic recurrence schedule specification, which only
           applies when the schedule:icalendar-recurrence feature
           is supported.";
        leaf schedule-id {
          type string;
          description
            "The schedule identifier for this recurrence rule.";
        }
        uses schedule:icalendar-recurrence {
          refine workweek-start {
            default monday;
          }
        }
      }
    }

    list schedule-set {
      key "schedule-name";
      description
        "The list of schedule
        "Schedule status list for the backup tasks.";
      uses schedule:schedule-status-with-name;
    }
  }
}
]]></artwork>
]]></sourcecode>
      </section>
      <section anchor="augments">
        <name>Example: Schedule Network Properties to Change Based on Date and Time</name>
        <t>Network properties may change over a specific period of time or based on a
   recurrence rule, e.g., <xref target="RFC9657"/>.
   The following example module, which augments the "recurrence-utc-with-periods"
   grouping from the "ietf-schedule" module, shows how a scheduled attribute
   could be defined.</t>
        <!--[rfced] The example module in Appendix B references RFC 8345 but
no corresponding reference entry exists. May we add RFC 8345 under the
Informative References section and update the running text as follows?

Original:
   The following example module which augments the
   "recurrence-utc-with-periods" grouping from "ietf-schedule" module
   shows how a scheduled attribute could be defined.</t>
        <artwork><![CDATA[ defined.

Perhaps:
   The following example module, which augments the
   "recurrence-utc-with-periods" grouping from "ietf-schedule" module,
   shows how a scheduled attribute could be defined. Note that
   [RFC8345] and this document are referenced in the module.
-->

<sourcecode type="yang"><![CDATA[
module example-scheduled-link-bandwidth {
  yang-version 1.1;
  namespace "http://example.com/example-scheduled-link-bandwidth";
  prefix "ex-scattr";

  import ietf-network {
    prefix "nw";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  import ietf-schedule {
    prefix "schedule";
    reference
      "RFC XXXX: 9922: A YANG Data Model for Scheduling";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module defining a scheduled link bandwidth.";

  revision "2023-01-19" {
    description
      "Initial Version."; version.";
    reference
      "RFC XXXX: 9922: A YANG Data Model for Scheduling."; Scheduling";
    }

  grouping link-bandwidth-grouping {
    description
      "Grouping of the link bandwidth definition.";
    leaf scheduled-bandwidth {
      type uint64;
      units "Kbps";
      description
        "Bandwidth values, expressed in kilobits per second.";
    }
  }

  container link-attributes {
    description
      "Definition of link attributes.";
    list link {
      key "source-node destination-node";
      description
        "Definition of link attributes.";
      leaf source-node {
        type nw:node-id;
        description
          "Indicates the source node identifier.";
      }
      leaf destination-node {
        type nw:node-id;
        description
          "Indicates the source node identifier.";
      }

      leaf default-bandwidth {
        type uint64;
        units "Kbps";
        description
          "Bandwidth value used for perdiods periods that don't match
           a schedule.";
      }

      choice time-variant-type {
        description
          "Controls the schedule type.";
        case period {
          uses schedule:period-of-time;
        }
        case recurrence {
          uses schedule:recurrence-utc-with-periods {
            augment "period-timeticks" {
              description
                "Specifies the attributes inside each
                 period-timeticks
                 'period-timeticks' entry.";
              uses link-bandwidth-grouping;
            }
          }
        }
      }
    }
  }
}
]]></artwork>
]]></sourcecode>
        <t><xref target="ex-13"/> shows a configuration example in XML <xref target="W3C.XML1.0"/> of a link's bandwidth that is
  scheduled between 2025-12-01 0:00 UTC to the end of 2025-12-31 with a daily
  schedule. In each day, the bandwidth value is scheduled to be 500 Kbps between
  1:00 AM to 6:00 AM and 800 Kbps between 10:00 PM to 11:00 PM. The bandwidth
  value that is not covered by the period above is 1000 Kbps.</t>
        <!--[rfced] FYI, a normative reference to the XML specification has
been added because this document contains XML.
See the IESG statement on "Guidelines for the Use of Formal
Languages in IETF Specifications"
(https://ietf.org/blog/guidelines-use-formal-languages-ietf-specifications/) -
specifically "The use of a language requires a reference to the
specification for that language. This reference is normative, and
needs to fulfil the usual requirements for normative references
(Section 7 of RFC 2026)." Please review where the XML specification
is cited and let us know if you prefer otherwise.

Original:
   Figure 24 shows a configuration example of a link's bandwidth that is
   scheduled between 2025-12-01 0:00 UTC to the end of 2025-12-31 with a
   daily schedule.

Current:
   Figure 24 shows a configuration example in XML [W3C.XML1.0]
   of a link's bandwidth that is scheduled between 2025-12-01 0:00 UTC
   to the end of 2025-12-31 with a daily schedule.

Normative Reference Entry:
 [W3C.XML1.0]
    Bray, T., Ed., Paoli, J., Ed., Sperberg-McQueen, C.M., Ed., Maler,
    E., Ed., and F. Yergeau, Ed., "Extensible Markup Language (XML)
    1.0 (Fifth Edition)", W3C Recommendation, 26 November 2008,
    <https://www.w3.org/TR/2008/REC-xml-20081126/>.
-->

<figure anchor="ex-13">
          <name>Example of Scheduled Link's Bandwidth</name>
          <artwork><![CDATA[
          <sourcecode type="xml"><![CDATA[
<?xml version="1.0" encoding="utf-8"?>
<link-attributes
  xmlns="http://example.com/example-scheduled-link-bandwidth"
  xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
  <link>
    <source-node>ne1</source-node>
    <destination-node>ne2</destination-node>
    <default-bandwidth>1000</default-bandwidth>
    <recurrence-first>
      <utc-start-time>2025-12-01T01:00:00Z</utc-start-time>
    </recurrence-first>
    <frequency>schedule:daily</frequency>
    <utc-until>2025-12-31T23:59:59Z</utc-until>
    <period-timeticks>
      <period-start>360000</period-start>
      <period-end>2160000</period-end>
      <scheduled-bandwidth>500</scheduled-bandwidth>
    </period-timeticks>
    <period-timeticks>
      <period-start>7920000</period-start>
      <period-end>8280000</period-end>
      <scheduled-bandwidth>800</scheduled-bandwidth>
    </period-timeticks>
  </link>
</link-attributes>
]]></artwork>
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="ex-framework">
      <name>Examples of Using the "ietf-schedule" Module for Scheduled Use of Resources Framework</name>
      <t>This section exemplifies how the architecture for supporting scheduled
   reservation of Traffic Engineering (TE) resources in <xref target="RFC8413"/> might leverage the "period-of-time"
   grouping defined in the "ietf-schedule" module to implement scheduled use of
   resources.</t>
      <t>The following example module shows how a scheduled link capacity reservation
   could be defined.</t>
      <artwork><![CDATA[
      <sourcecode type="yang"><![CDATA[
module example-sch-capacity-res {
  yang-version 1.1;
  namespace "http://example.com/example-sch-capacity-res";
  prefix "ex-schecaparev";

  import ietf-network-topology {
    prefix "nt";
  }

  import ietf-schedule {
    prefix "schedule";
  }

  container link-capability-reservations {
    list scheduled-link-capacity {
      key "schedule-id";
      leaf schedule-id {
        type string;
      }
      leaf link-id {
        type nt:link-id;
      }
      leaf reserved-capability {
        type uint64;
        units "Mbps";
      }
      uses schedule:period-of-time;
    }
  }
}
]]></artwork>
]]></sourcecode>
      <t><xref section="4" sectionFormat="of" target="RFC8413"/> defines the reference architecture for scheduled use
   of resources, the resources. The service requester sends a request to a Path Computation Element (PCE) and includes the
   parameters of the Label Switched Path (LSP) that the requester wishes to supply, the supply. The configuration
   example to provide the scheduled resource is shown in <xref target="ex-14"/>.</t>
      <figure anchor="ex-14">
        <name>Example of Scheduled Link's Bandwidth Reservation</name>
        <artwork><![CDATA[
        <sourcecode type="xml"><![CDATA[
<?xml version="1.0" encoding="utf-8"?>
<link-capability-reservations
  xmlns="http://example.com/example-sch-capacity-res"
  xmlns:schedule="urn:ietf:params:xml:ns:yang:ietf-schedule">
   <scheduled-link-capacity>
      <schedule-id>1</schedule-id>
      <link-id>1-2-1</link-id>
      <reserved-capability>500</reserved-capability>
      <period-start>2025-03-10T08:00:00Z</period-start>
      <period-end>2025-03-10T09:00:00Z</period-end>
   </scheduled-link-capacity>
   <scheduled-link-capacity>
      <schedule-id>2</schedule-id>
      <link-id>2-1-1</link-id>
      <reserved-capability>400</reserved-capability>
      <period-start>2025-04-01T00:00:00Z</period-start>
      <duration>PT09:00:00</duration>
   </scheduled-link-capacity>
   <scheduled-link-capacity>
      <schedule-id>3</schedule-id>
      <link-id>2-1-1</link-id>
      <reserved-capability>500</reserved-capability>
      <period-start>2025-04-01T09:00:00Z</period-start>
      <period-end>2025-04-01T23:59:59Z</period-end>
   </scheduled-link-capacity>
</link-capability-reservations>
]]></artwork>
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work is derived from the <xref target="I-D.ietf-opsawg-ucl-acl"/>. There is a desire
   from the OPSAWG to see this model be module separately defined for wide use in scheduling context.</t>
      <t>Thanks to Adrian Farrel, Wei Pan, Tianran Zhou, Joe Clarke, Steve Baillargeon, Dhruv Dhody, Robert Wilton, and Italo Busi <contact fullname="Adrian Farrel"/>, <contact fullname="Wei Pan"/>, <contact fullname="Tianran Zhou"/>, <contact fullname="Joe Clarke"/>, <contact fullname="Steve Baillargeon"/>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Robert Wilton"/>, and <contact fullname="Italo Busi"/>
   for their valuable comments and inputs to this work.</t>
      <t>Many thanks to the authors of <xref target="I-D.ietf-tvr-schedule-yang"/>, <xref target="I-D.ietf-opsawg-scheduling-oam-tests"/>, and <xref target="I-D.ietf-netmod-eca-policy"/>
   for the constructive discussion during IETF#118.</t>
      <t>Other related efforts were explored in the past, e.g., <xref target="I-D.liu-netmod-yang-schedule"/>.</t>
      <t>Thanks to Reshad Rahman <contact fullname="Reshad Rahman"/> for the great YANG Doctors review, Mahesh Jethanandani <contact fullname="Mahesh Jethanandani"/> for the AD review, Per Andersson <contact fullname="Per Andersson"/> for the OPSDIR review,
   Peter Yee
   <contact fullname="Peter Yee"/> for genart the GENART review, and Acee Lindem <contact fullname="Acee Lindem"/> for the rtgdir RTGDIR review.</t>
      <t>Thanks to Éric Vyncke, Erik Kline, and Mike Bishop <contact fullname="Éric Vyncke"/>, <contact fullname="Erik Kline"/>, and <contact fullname="Mike Bishop"/> for the IESG review.</t>
      <!-- [rfced] Please review the language set for each instance of sourcecode
in the MD file to ensure correctness. If the current list of preferred
values for languages
(https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types)
does not contain an applicable language, then feel free to let us know.
Also, it is acceptable to leave the language not set.
-->

<!-- [rfced] RFC 6991 has been obsoleted by RFC 9911.  May we replace RFC
6991 with RFC 9911? If yes, this will include updating the references in the
YANG module.
-->

<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed.  Updates of this nature typically
result in more precise language, which is helpful for readers.

Note that our script did not flag any words in particular, but this should
still be reviewed as a best practice.
-->

</section>
  </back>
  <!-- ##markdown-source:
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
+YnrivKzIaUtMaqZn8jPKIL/ib8t8ovaLoLLXBlQpX6QHRXKG1bqIx6Kp+Ou
lWgwGfSsAzoj0BU4oXsr9wiSU2C9CVqo4voi7OPVxoNwgW2kG6v44xH6rNgo
84VlpEpbjiRpk4Zioxdo23bd0uAS5SPITm0nMfro5CvJYI/ICdwH6RyfAb4y
0xR/2Aez+Y1+0EQ/oeG09kPAFb0yqekR+L5EY4Th0hGaQeYtI1R1UoaG2Fo6
xJl8uXyM62SchUfZXjrKW/3tCnO5BMEbGmZn+WTUp8tHmRRpaIzdpWM85Q+X
j1Ditg6NsbecstSnC0b51MYZTlGta9yNGjQ3ic6VZu0SDvnRICtv2Nr6+n99
vfHtx//qb7xeX1//62b/0d++3jje+Hb9bH2T/vo45H+24J/tv22sOdv362jt
AJ7v/o3aWL9ubHx8rXp7u/bN4okd2+WcLxOr6KWkGxtRYinxUYMon6VyBYw6
rJW/a52v9HAuThVOvfZ2TaKlbxqvjtd0XgK6Q4A+BdSCrS7pAt+B3GM7UFcA
+TChtByQumuQTmtna1qpcRPcpqWQCqeoyZMyW6v0yQvOfe0nBnftxVqz59LO
RGiARHWB1FTAH3qL2JBgx7IFh6p8ZD4ktYJPREEbUOEN2qink6K4mBmHsS5W
LicW2KIs81HKcRq4bv9U2eKKkj3L32z9oGjZG2xb5r6qBu04BdtFNHli9UeW
McbrOgj0rEsacadodLmjfbNcHwgWRjqT9IpW8JSKgcCflgrzOruxZhVcQ80u
Lq+6oPpPOj2f306HgbtV5u1tVa1SbD6ENEms+VkoW1qCPp84113wp1GIfuUi
9KqHO9eiVx0sqNxla7waVQ3N8o7oaj3nCK2PWyX+NvvF3Ktt2zA6sZU1HXe8
Feej8jXRYX9L6RhNrfrATYrIBADTSbO+LGDiu18AGEqqLw0WXw5fBBVVufnC
uLLLAAVA4juMXxgmumS5iKz45uqXpio6V1oAFl+1/MJQUUzCAqCcuOS7yWn6
MtR3kqFQCgsd+milGVuSjm8+qW5bx8UUReSEu9eBTbc8sMIx6dbOKyd7gl/1
GO97Ub7X4A5nOX7fkOtuW1FmF3y9p7FVsmodWGGNEQJBVai999lbHfPy0HO+
4arVFBUHElYJ3NLBtxbREnWL+or6U67yc4Qs1hLRWibHiQSq/rZXHVbfthUf
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
jzQepeBpb8dRDsx4yfQLd6r2ud9Mt3KWQn5sbD7ZhHdnzLYKA+U956k6lGdB
oEM8qptXtj4Vmqw1V1dgaZ6qVH2TSVBVlVvpvtqqeJMV7J3LXxRKXOmQpF3x
hnHdlDpS9a7hcBIlJNfDHi5AAi4kJV5XEd4rK/u2kndpBGWGIOdHvEuJP0jL
lxaZSQEYxqTCVyXqqkS3UtHnq/s5rxmTNVoJoym6reChWYAIteUd0hfLPV7I
1YeMnHcZsIJ4VrRmfHlOVmiyIbXxjtg4FiFupSLQZrWuzDLpNKmXSOlK7S2+
W8KVnk7jqTmmYQ0SNmYg+L5nzRXZiK39jgLOgmzkTcBQ17YTIx86xP/UwkTX
ETI+xN40djUfwG99GtCDmon0F82q6RiZMCpxWgECKFA9GgMDIhWvyGBbgvhb
ou7cYn0EcatuWOyT+Ytn2mIL1X1mWlNpmYFEyvVA4YEXS0+b1m3Z3CXncKbv
zR0O669bf69511e4joEHrLC/vNoQ4ducPPuDtD0Z/uh/byvy81Lp8eaeCRUt
OgKk8VrfWynbd+j0E5tqHD5Vt7SNveEzZOVkV44aztNwj2xwTuNr8tvnD7X9
fbOtfm1vGe9ffdKyUtKxbi3kgSQnqtSqNPPPI7orsL8NXQYsmygO710W2MB+
yc3B+cS9y3H6ZbkoCV3qeCuRLLvZqa2FDSOpB4UnzUb6esrS0BFn2VprLfvU
euVynHCPyWwWj5MIbf7rK/Aa7fKGXn+jTOSOFu8r42FN3Lphc6eFa2BjXZq7
eIXYrVb5KSi1XBJtb13VXHe5WjtfSzX3mMiDTDRqyzyqgabRCuiyO2P8q8/g
ecj4Zy+Ybc5bYjG7v71wU46CVzRbz+X9H7452gRZDC245ZZ6+smByzLiNUCk
OlJcQHek7HvyuZmcemLMevJY0FY9F6dLjXn6mKrfeXgHFVr/kcAavraPqZyv
ffRZ5RicE3IE9f1ojNpY2JxBebCjj41ho83U5MNl6Ml649GUR1H6ntO3Djsm
VfW1uuisfSwqeLU7MItkI0WvlA/vCsMr+Rxo5yqzoTfN7SyeDYqsXdeFmveZ
7WPUwhvB9hg0mkW75t5l1u8ejmV4kyy9yogxnfAtPwpUpPks94HquB5Y9lTV
w7YrBCkfLd3G9fDx3LW8uSNEdD+uUOA17DjzM05vh65jVpxc3+BZuSh6XiDc
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
JhZ39qYivJksGYHbSyUdEZCoqOK4LzOt24sSmGo90D5DyYsbm2rFIC59Y2QM
9jKpKdpy3br7u71et/8J1O393ftIPUuNumQkcKpz6yI96kfXHsBVtfLlqihq
QJmMXA7bZaXNLeyaoTrhe7Hf9WW6J6e9W/+JTeUyuZMPTodT3UfOBV1X9bp2
oe6wXOPmxdIr5igH8H6lWHPiFkgvlqQcMjAEuJHKbu16KYV3fXe3r6hnt//w
3W9D6aCqDh7SxPrQHRxo8A4OHgc+Ko6wFDzKE6CACXOMpRtdw7l0bsF9e++Z
cdaltafGyQbW9QrrD77gpOLKDGtBxpXuf1uSsO8pRu7Ok8zP7E2LC1qcRcvi
zdY3URec1VVDyeoTpTlV9bS4Nsdfq3Tk8gaZwYCvvTaGiw8fPmyITSUUdbQI
0hFxOept0Rim9dzyu7Zuvtxa796dVwPvWivaERMuGfc8PY4qTNVABV6xcRee
e0ZlnGqvl9UV3Bud95wMAtW91TZVXMuR0E36YAUsd+54utoZNVb7mIYSHazY
Du4dpa58ZxdQXBKsrJKx1phI/2Dporijql6MgX/FsKH0YPfAztoOuC6Ygdxi
DlRWnYw1CZZDz8UkmhbLifitVcXPLd+nau+VN7XyffzDRfxWINQqA/mrwk4V
UkoQ8Oi4qqUhS7iwpAGeQQpFbak6Ec1HczfLuxinjEe0s/QdW/h2rKaGFfgH
t1v29d44uGp0mQLeSI51t9l75dmsI0gNlDJ8sqhG0KbArMWLnipMhZdxd3k0
RxMJ5h5mVIAEDzIu9GSdPySRyTBqOvKaKME6435L/H4ZnXmxWDaleRGsgWkH
ynb+ilN3vuFSdQ2dU7lcS6yUeYt+W/SlWGVxKfrCRWX+hYiH56b2oUzj6CQt
Eat4rF/h5p+Dc51gS9/nUxcrvQ/3Wlu6WtvX8RGErY6sm6tKvdnOjl/qE/ZA
4vsyPzGH7sjA6mG37skQRD+V7fqtMG+F5uO4rgTsFBJzMb86xOvKES8MZknV
86unk1JoqWveVRJGiWHxjo5V5rijqquzumUa48DQ/4jz42XoYemWI3Wr/a27
bp91xXmuIoF1KLqzKH8PIvTv22VexVwR6xL5AY59In3RZD3XFq1cIW2hXMoo
Js42KWW0dxkDZJR82a7UYUo67srSlKakI1Ws6eaT0eHezpNhUlBRI7tg1NfH
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
AQA=

-->

</rfc>