#[non_exhaustive]pub struct CalendarEventNotification {
pub id: Id,
pub created: UTCDate,
pub changed_by: Person,
pub comment: Option<String>,
pub notification_type: NotificationType,
pub calendar_event_id: Id,
pub is_draft: Option<bool>,
pub event: Value,
pub event_patch: Option<PatchObject>,
pub extra: Map<String, Value>,
}Expand description
A JMAP CalendarEventNotification object (draft-ietf-jmap-calendars-33 §7).
Records a change made to a calendar event by an external entity or
another client. Apart from hideAttendees filtering, a notification
has no per-user data, so one object may be shared by all users with
access to the calendar; but the server MUST NOT create one for anyone
other than the calendar’s owner when the event’s privacy is
"private" or "secret" before or after the change (§7).
Only destroyed notifications may be explicitly managed via
CalendarEventNotification/set; created and updated notifications
are server-set.
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.id: IdServer-assigned identifier for this notification.
created: UTCDateUTC date-time when this notification was created.
changed_by: PersonWho made the change.
comment: Option<String>Comment sent along with the change (e.g. iTIP COMMENT property), if any.
notification_type: NotificationTypeType of change recorded.
Wire field name is type.
calendar_event_id: IdId of the CalendarEvent this notification is about (always the base event id, even for single-instance changes).
is_draft: Option<bool>Whether the event is a draft. Present for created and updated
notifications only.
event: ValueThe CalendarEvent data before the change (for updated or destroyed),
or the data after creation (for created).
event_patch: Option<PatchObject>A PatchObject encoding the change between event and the state after
the update. Present for updated notifications only.
Wire format is byte-identical to a plain JSON object via
PatchObject’s #[serde(transparent)].
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 CalendarEventNotification
impl Clone for CalendarEventNotification
Source§impl Debug for CalendarEventNotification
impl Debug for CalendarEventNotification
Source§impl<'de> Deserialize<'de> for CalendarEventNotification
impl<'de> Deserialize<'de> for CalendarEventNotification
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl GetObject for CalendarEventNotification
Source§impl QueryObject for CalendarEventNotification
impl QueryObject for CalendarEventNotification
Source§type Comparator = CalendarEventNotificationComparator
type Comparator = CalendarEventNotificationComparator
Source§impl SetObject for CalendarEventNotification
SetObject for CalendarEventNotification is destroy-only.
The Patch type is never used in practice; PatchObject is a
safe placeholder that satisfies the trait bound while keeping the
type-system contract aligned with sibling types (RFC 8620 §5.3).
impl SetObject for CalendarEventNotification
SetObject for CalendarEventNotification is destroy-only.
The Patch type is never used in practice; PatchObject is a
safe placeholder that satisfies the trait bound while keeping the
type-system contract aligned with sibling types (RFC 8620 §5.3).
draft-ietf-jmap-calendars-33 §7.3: “Only destroy is supported; any
attempt to create/update MUST be rejected”, so every property is
server-set; id (line 2601) is also “(immutable; server-set)”.
Source§const SERVER_SET: &'static [&'static str]
const SERVER_SET: &'static [&'static str]
/set method text never accepts from a
client, on create or update, is server-set too. Read moreSource§const CLIENT_SETTABLE: &'static [&'static str]
const CLIENT_SETTABLE: &'static [&'static str]
SERVER_SET: the ones a
client may set through /set. Read moreSource§const IMMUTABLE: &'static [&'static str]
const IMMUTABLE: &'static [&'static str]
CLIENT_SETTABLE properties the spec marks “immutable”: “The
value MUST NOT change after the object is created.” (RFC 8620 §1.1).
A property the /set method text accepts on create but not on update
is immutable too. Read more