Skip to content

Support recurring occurrences in aggregate GatherPress calendar feeds #1872

Open

Description

@gedex

Problem

The recurring-events extension introduced in #1845 projects individual occurrences, but aggregate GatherPress calendar feeds remain series-based.

WordPressdotorg\GatherPress_Recurring_Events\Query::clauses() skips queries using fields => 'ids'. GatherPress' Event\Query::get_events_list() uses that mode, and Calendar\Setup uses the method for site-wide, event archive, venue, and taxonomy ICS feeds. Those feeds therefore include only the series' master event and can omit a recurring series once its master date is past, even when projected future occurrences remain.

Individual occurrence calendar links are already occurrence-aware. The wp-admin events list should remain series-based because projected occurrences are not independently editable posts.

Why this needs dedicated work

Removing the ID-query guard alone would return repeated copies of the same post ID without carrying the occurrence-specific date, URL, or calendar identity. A correct implementation needs an agreed ICS representation and the appropriate GatherPress extension points.

GatherPress/gatherpress#1684 already tracks the upstream RRULE/RDATE design discussion. This issue tracks applying that design to the experimental extension and supporting its aggregate feeds.

Expected outcome

  • Choose an aggregate-feed representation aligned with Reserve ICS shape for future RRULE support when recurring events land GatherPress/gatherpress#1684, including cancellation or exception behavior.
  • Add the minimum GatherPress core extensibility needed, or an extension-owned feed path if that is the better boundary.
  • Include recurring occurrences correctly in site-wide, event archive, venue, and taxonomy ICS feeds.
  • Preserve correct dates, URLs, and UID semantics in calendar clients.
  • Add regression coverage for a recurring series whose master occurrence is already past but has future occurrences.

Current MVP behavior

The limitation is documented in #1845 and in plugins/gatherpress-recurring-events/README.md.

Activity

  1. self-assigned this
    on Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions