synology_apm_repo.sdk.units.content.saas_calendar module

Content Layer — Calendar’s .ics assembly from a calendar_event_table META object’s client_metadata. The tree-navigation and object-fetching logic that calls this lives in units/saas/calendar.py.

synology_apm_repo.sdk.units.content.saas_calendar.M365_RECURRENCE_FREQ = {'absoluteMonthly': 'MONTHLY', 'absoluteYearly': 'YEARLY', 'daily': 'DAILY', 'relativeMonthly': 'MONTHLY', 'relativeYearly': 'YEARLY', 'weekly': 'WEEKLY'}

Microsoft Graph’s own recurrence-pattern-type vocabulary -> the RRULE FREQ it maps to. “absoluteMonthly”/”relativeMonthly” both mean FREQ=MONTHLY (the absolute/relative distinction is BYMONTHDAY vs. BYDAY, handled separately in _m365_recurrence_rrule); same for the two yearly variants. Not private (unlike this module’s other constants) – units/saas/calendar.py’s own _recurrence_label also derives its display label from this same vocabulary, reusing it rather than maintaining a second, independent pattern-type table.

synology_apm_repo.sdk.units.content.saas_calendar.build_ics(meta_bytes, event_id)

Assemble one .ics (a single VEVENT) from a calendar_event_table.meta_object_id META object’s raw bytes.

Raises:

UnsupportedDataFormatError – For the M365 EWS-envelope client_metadata shape — a spec-derived layout this refuses rather than guesses at.