<?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?> 96?>

<!-- [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
-->

<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?> 110?>

<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>
      <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>
      <t>"schedule-status-*" refers to any of "schedule-status", "schedule-status-with-time-zone", and "schedule-status-with-name".</t>
    </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 This type is used for a schedule will trigger that triggers 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>
          <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 and thus executed independently from 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>
          <t>These parameters apply to all schedules on a system and are meant
   to provide guards against stale configuration, too short schedule requests
   that are too short and that would thus 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 that that, per <xref section="4.13" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>, neither a no "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. No "mandatory" substatement is defined here for the same reason.
  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>
          <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"/>. target="RFC9911"/>. 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 no "default"
   nor a "mandatory"
   substatement is defined here because there are cases (e.g., profiling)
   where using these statements is problematic. No "mandatory" substatement is defined here for the same reason.
   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>
          <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>
      <t>This module imports types defined in <xref target="RFC6991"/> target="RFC9911"/> 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: 9911: 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> considerations. For example,
   reusing the following groupings will expose privacy-related information:</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">
          <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 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>
        <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.9911.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"/>
        <reference anchor="I-D.ietf-opsawg-ucl-acl">
          <front>
            <title>A YANG Data Model and RADIUS Extension for Policy-based Network Access Control</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>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</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. 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"> anchor="W3C.XML1.0" target="https://www.w3.org/TR/2008/REC-xml-20081126/">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author 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>
            </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
            <title>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> (XML) 1.0 (Fifth Edition)</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> surname="Bray" fullname="Tim Bray" role="editor">
              <organization/>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization> initials="J." surname="Paoli" fullname="Jean Paoli" role="editor">
              <organization/>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc</organization> initials="C. M." surname="Sperberg-McQueen" fullname="C. M. Sperberg-McQueen" role="editor">
              <organization/>
            </author>
            <author fullname="Himanshu Shah" initials="H." surname="Shah">
              <organization>Ciena</organization> initials="E." 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.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"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8345.xml"/>
      </references>
    </references>
    <?line 1637?> 1715?>

<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[
      <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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using 'generic-schedule-params' and
     'schedule-status' groupings.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container generic-schedule-params {
    description
      "A collection of generic scheduling parameters.";
    uses schedule:generic-schedule-params;
  }
  container schedule-status {
    description
      "A collection of scheduling 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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the 'period-of-time' grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container period-of-time {
    description
      "A container for a time period.";
    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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the 'recurrence-basic' grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container recurrence-basic {
    description
      "A container for a simple recurrence rule.";
    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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the 'recurrence-utc' grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container recurrence-utc {
    description
      "A container for a simple recurrence rule in UTC format.";
    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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the 'recurrence-with-time-zone'
     grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container recurrence-with-time-zone {
    description
      "A container for a simple recurrence rule with a 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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the 'recurrence-utc-with-periods'
     grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container recurrence-utc-with-date-times recurrence-utc-with-periods {
    description
      "A container for an aggregate set of repeating occurrences in
       UTC format.";
    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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using the
     'recurrence-time-zone-with-periods' grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container recurrence-time-zone-with-date-times recurrence-time-zone-with-periods {
    description
      "A container for an aggregate set of repeating occurrences
       with a time zone.";
    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";

  import ietf-schedule {
    prefix "schedule";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "Example of a module using 'icalendar-recurrence' grouping.";

  revision "2026-02-20" {
    description "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling.";
  }

  container icalendar-recurrence {
    description
      "A container for a scheduled 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>
        <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" "2026-02-20" {
    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 module, which augments the "recurrence-utc-with-periods"
   grouping from the "ietf-schedule" module module, shows how a scheduled attribute
   could be defined.</t>
        <artwork><![CDATA[ defined. Note that                <br/>
          <xref target="RFC8345"/> and this document are referenced in the module.</t>
        <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" "2026-02-20" {
    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>
        <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";
  }

  organization
    "Example, Inc.";

  contact
    "Support at example.com";

  description
    "An example to show a scheduled link capacity reservation.";

  revision "2026-02-20" {
    description
      "Initial version.";
    reference
      "RFC 9922: A YANG Data Model for Scheduling";
  }

  container link-capability-reservations {
    description
      "A container for a scheduled link capability reservations";
    list scheduled-link-capacity {
      key "schedule-id";
      description
        "Definition of scheduled link capacity list";
      leaf schedule-id {
        type string;
        description
          "The schedule identifier for this schedule rule.";
      }
      leaf link-id {
        type nt:link-id;
        description
          "The identifier of a link in the topology.";
      }
      leaf reserved-capability {
        type uint64;
        units "Mbps";
        description
          "The reserved capability for a particular link.";
      }
      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>
    </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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
c2gBAA==

-->

</rfc>