OpenAgenda Sync
This module synchronizes your OpenAgenda events into native Drupal content, making them fully integrated with your site. Events are stored as local Drupal nodes, allowing them to be indexed by search, used in Views, and benefit from standard Drupal services. It offers multiple synchronization methods, configurable deletion policies, and various filtering options, while also providing a fallback mode for when the OpenAgenda API is unavailable.
Allows the display of your OpenAgenda on your Drupal 10/11 site, with events synchronized as native Drupal content.
Unlike the original OpenAgenda module (a display proxy with no local storage), OpenAgenda Sync imports every event as a local Drupal node (content type OpenAgenda Event). Events become first-class content: indexable by the site search, usable in Views and entity references, and compatible with standard Drupal services (Metatag, internal linking, Search API...). The agenda page still relies on the OpenAgenda API and @openagenda/react-filters for search and filtering quality — the API decides which events match, the local nodes carry the content.
The OpenAgenda Sync module features:
- an OpenAgenda field, field widget and field formatter to display an OpenAgenda using its UID on any content type.
- a default OpenAgenda content type to get started out of the box, plus an OpenAgenda Event content type populated by synchronization.
- three complementary synchronization mechanisms: full synchronization via cron, near real-time webhooks, and on-demand manual synchronization with progress feedback.
- a configurable deletion policy controlling what happens locally when an event is deleted or unpublished on OpenAgenda.
- 8 different filter types (map, calendar, per tag, relative date, text search, favorites, keywords and additional field) implemented through the block API to filter your OpenAgenda.
- overridable node templates and an extensibility hook/event to alter event data before it is stored (taxonomy mapping, enrichment, exclusion).
- a degraded fallback mode that lists locally synchronized upcoming events when the OpenAgenda API is unavailable.
Synchronization is one-way (OpenAgenda → Drupal): event nodes should not be edited locally, as changes are overwritten at the next synchronization.
This module is derived from and replaces the openagenda module: do not install both on the same site, as they define the same content type and paths.
Please refer to the README file included into the project for all the details, including help on installation, configuration, migration and usage.
Available versions regarding your Drupal core version:
- 1.x : Drupal ^10.4 || ^11