calendaring_jmap.objects.event_search_result module#

Paged CalendarEvent/query result.

Carries a page of events alongside the CalendarEvent/query response's own paging fields (RFC 8620 Section 5.5), so a caller doing a full listing can detect truncation instead of treating a short page as complete.

class calendaring_jmap.objects.event_search_result.EventSearchResult(events=list(), position=0, total=None)[source]#

Bases: object

One page of search_events() results.

Variables:
  • events (list[JMAPCalendarObject]) – Events matching this page, in server-returned order.

  • position (int) – Zero-based index of the first event in events within the complete result set (RFC 8620 Section 5.5).

  • total (int | None) – Total number of events matching the server-side filter (calendar_id/start/end/text) across every page, or None if the caller didn't request it. Set only when the caller's own calculate_total was true, never inferred from whether the server's response happened to include a total field: confirmed live that Cyrus returns total unconditionally, even when calculateTotal was never sent, which RFC 8620 Section 5.5 says the server "MUST" omit in that case. Does not account for has_attachment/participant_email/participation_status/ participant_role, which filter client-side after the server's own count is taken: a search combining one of those with calculate_total=True gets back a total that can be larger than the number of events actually returned across every page once the client-side filter is applied.

events: list[JMAPCalendarObject]#
position: int = 0#
total: int | None = None#

Last updated on 2026-11-01.