#[non_exhaustive]pub struct RecurrenceRule {Show 18 fields
pub at_type: String,
pub frequency: String,
pub interval: Option<u64>,
pub rscale: Option<String>,
pub skip: Option<String>,
pub first_day_of_week: Option<String>,
pub by_day: Option<Vec<NDay>>,
pub by_month_day: Option<Vec<i32>>,
pub by_month: Option<Vec<String>>,
pub by_year_day: Option<Vec<i32>>,
pub by_week_no: Option<Vec<i32>>,
pub by_hour: Option<Vec<u8>>,
pub by_minute: Option<Vec<u8>>,
pub by_second: Option<Vec<u8>>,
pub by_set_position: Option<Vec<i32>>,
pub count: Option<u64>,
pub until: Option<LocalDateTime>,
pub extra: Map<String, Value>,
}Expand description
A recurrence rule as defined in RFC 8984 §4.3.3.
Used in recurrenceRules and excludedRecurrenceRules of a
CalendarEvent (from jmap-calendars-types).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.at_type: StringObject type discriminator; always "RecurrenceRule" on the wire.
Deserialize is liberal: if @type is absent (spec-violating
vendor input), this field defaults to "RecurrenceRule" rather
than failing the whole parent object’s deserialize. Serialize
always emits the field. See bd:JMAP-ky8g.10.
frequency: StringRecurrence frequency: "yearly", "monthly", "weekly", "daily",
"hourly", "minutely", or "secondly".
interval: Option<u64>Interval between recurrences (≥ 1; default 1).
rscale: Option<String>Calendar system (default "gregorian").
skip: Option<String>How to handle skipped dates: "omit", "backward", "forward".
first_day_of_week: Option<String>First day of week (default "mo"): "mo"–"su".
by_day: Option<Vec<NDay>>Specific days within the frequency period.
by_month_day: Option<Vec<i32>>Specific days of the month (±1–±31).
by_month: Option<Vec<String>>Specific months (e.g. "1"–"12", optionally suffixed with "L").
by_year_day: Option<Vec<i32>>Specific days of the year (±1–±366).
by_week_no: Option<Vec<i32>>Specific weeks of the year (±1–±53).
by_hour: Option<Vec<u8>>Specific hours (0–23).
by_minute: Option<Vec<u8>>Specific minutes (0–59).
by_second: Option<Vec<u8>>Specific seconds (0–60).
by_set_position: Option<Vec<i32>>Filter by position within the set (positive = from start, negative = from end).
count: Option<u64>Maximum number of occurrences.
until: Option<LocalDateTime>The recurrence ends on or before this LocalDateTime
(RFC 8984 §4.3.3 — until is a LocalDateTime, NOT a UTC date-time).
extra: Map<String, Value>Catch-all for vendor / site / private extension fields not covered by the typed fields above. Preserves unknown fields across deserialize/serialize round-trip per workspace extras-preservation policy (see workspace AGENTS.md).
Trait Implementations§
Source§impl Clone for RecurrenceRule
impl Clone for RecurrenceRule
Source§fn clone(&self) -> RecurrenceRule
fn clone(&self) -> RecurrenceRule
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more