+ local dtstart="$(pdi_value "$course" DTSTART |cal_date)"
+ local ystart="${dtstart%%-*}"; ystart="${ystart##* }"
+ local mstart="${dtstart#*-}"; mstart="${mstart%%-*}"
+ local dstart="${dtstart##*-}"; dstart="${dstart%% *}"
+
+ local rrule="$(pdi_value "$course" RRULE)"
+ local rr_int="$(printf %s "$rrule" |sed -rn 's;^(.*\;[ ]*)?INTERVAL=([0-9]+)(\;.*)?$;\2;p')"
+ local rr_count="$(printf %s "$rrule" |sed -rn 's;^(.*\;[ ]*)?COUNT=([0-9]+)(\;.*)?$;\2;p')"
+ local rr_freq="$(printf %s "$rrule" |sed -rn 's;^(.*\;[ ]*)?FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(\;.*)?$;\2;p')"
+ local rr_until="$(printf %s "$rrule" |sed -rn 's;^(.*\;[ ]*)?UNTIL=([0-9]{8}T[0-9]{6}Z)(\;.*)?$;\2;p')"
+ local rr_uyear="${rr_until%????T??????Z}"
+ local rr_umonth=${rr_until#????}; rr_umonth="${rr_umonth%??T??????Z}"
+ local rr_uday=${rr_until#??????}; rr_uday="${rr_uday%T??????Z}"
+ local rr_limit="ETERN"
+ [ "$rr_count" ] && [ "$rr_count" -ge 0 ] && rr_limit="COUNT"
+ [ "$rr_uyear" ] && [ "$rr_uyear" -ge 0 ] && rr_limit="UNTIL"
+
+ cat <<-EOF
+ [h3 . $(l10n "$item")]
+ [span .item . $(l10n t_every)
+ [input type="number" .RRULE .INTERVAL name="RRULE_INTERVAL" placeholder="#N" value="${rr_int:-1}" min="1"]
+ [select .RRULE .FREQ name="RRULE_FREQ"
+ $(for f in DAILY WEEKLY MONTHLY YEARLY; do
+ printf ' [option value="%s" %s . %s]\n' "$f" "$(selected $f "$rr_freq")" "$(l10n $f)"
+ done)
+ ]]
+ [label .item [input type="radio" name="RRULE_LIMIT" value="ETERN" $(checked "$rr_limit" ETERN)] $(l10n t_eternal)]
+ [label .item
+ [input type="radio" name="RRULE_LIMIT" value="COUNT" $(checked "$rr_limit" COUNT)]
+ [input type="number" .RRULE .COUNT name="RRULE_COUNT" placeholder="#N" value="${rr_count:-1}" min="1"] $(l10n t_times)
+ ]
+ [label .item
+ [input type="radio" name="RRULE_LIMIT" value="UNTIL" $(checked "$rr_limit" UNTIL)] $(l10n t_until)
+ [input type="number" .RRULE .UYEAR name="RRULE_UYEAR" placeholder="$(l10n YYYY)" value="${rr_uyear:-$ystart}" min="$ystart"]
+ [input type="number" .RRULE .UMONTH name="RRULE_UMONTH" placeholder="$(l10n MM)" value="${rr_umonth:-$mstart}" min="1" max="12"]
+ [input type="number" .RRULE .UDAY name="RRULE_UDAY" placeholder="$(l10n DD)" value="${rr_uday:-$dstart}" min="1" max="31"]
+ ]
+ EOF