JSCalendar.RecurrenceRule (JSCalendar v0.1.0)

Copy Markdown View Source

A repeat pattern (RFC 8984 §4.3.3).

This is JSCalendar's rendering of an iCalendar RRULE, with the parts named rather than packed into a string. by_month is a string rather than a number because a leap month in a lunisolar calendar is written "3L".

Summary

Functions

Read this object from a decoded JSON map.

The @type value RFC 8984 gives this object.

Write this object back to a JSON-ready map.

Types

t()

@type t() :: %JSCalendar.RecurrenceRule{
  by_day: [JSCalendar.NDay.t()] | nil,
  by_hour: [non_neg_integer()] | nil,
  by_minute: [non_neg_integer()] | nil,
  by_month: [String.t()] | nil,
  by_month_day: [integer()] | nil,
  by_second: [non_neg_integer()] | nil,
  by_set_position: [integer()] | nil,
  by_week_no: [integer()] | nil,
  by_year_day: [integer()] | nil,
  count: non_neg_integer() | nil,
  extra: map(),
  first_day_of_week: String.t(),
  frequency: String.t() | nil,
  interval: pos_integer(),
  rscale: String.t(),
  skip: String.t(),
  until: NaiveDateTime.t() | nil
}

Functions

from_map(map)

@spec from_map(map()) :: {:ok, struct()} | {:error, term()}

Read this object from a decoded JSON map.

Arguments

Returns

  • {:ok, object}; or

  • {:error, reason} when a property does not match its declared type.

jscalendar_type()

@spec jscalendar_type() :: String.t()

The @type value RFC 8984 gives this object.

Returns

  • the type name as a string.

to_map(object)

@spec to_map(struct()) :: map()

Write this object back to a JSON-ready map.

Arguments

  • object is a t/0.

Returns