Repository navigation
v0.3.1 - CCB Event Enrichment
What's New in v0.3.1
CCB events now import with full venue addresses and event images, fetched automatically from the CCB event_profile endpoint after each event syncs. This release ships the original 0.3.0 enrichment feature plus the 0.3.1 fixes that hardened it for production use.
✨ New Features
- CCB Event Enrichment — Events automatically pick up full venue addresses (street, city, state, zip) and event images from the
event_profileendpoint after the initial calendar import - Custom XML Parser — CCB API attributes are now preserved through parsing, enabling reliable event ID extraction across both
public_calendar_listingandevent_profileendpoints
🔧 Improvements
- Two-Phase Enrichment Strategy — New events always enrich on first import; subsequent syncs use CCB's
modifiedtimestamp to skip events that haven't changed - Single API Call Re-enrichment — Eliminated duplicate
event_profilecalls during change detection (one call now serves both check and enrichment) - Session-Based Venue Deduplication — Multiple events sharing a venue no longer trigger redundant venue updates within a sync run
- Loading Skeleton on Settings Page — Shimmer placeholder displays while the JS bundle loads, replacing the previous blank page
- Graceful Enrichment Failures — Errors during enrichment are logged but don't block event import
🐛 Bug Fixes
- Incomplete Venues Fixed — Venue creation is now deferred to the enrichment phase, eliminating venues created with only a name and no address
- Stale Venue Associations Cleared — Removing a location in CCB now properly clears the corresponding venue association in WordPress
📚 Documentation
- Documented CCB event enrichment behavior and the recurring-event ID limitation
- Added the new
cp_sync_{$type}_update_item_afteraction hook to the developer guide - Updated venue/location guidance in the troubleshooting and TEC integration guides
🛠️ Technical Details
- Recurring event occurrences from
public_calendar_listinglack a numeric event ID and cannot be enriched — they import with venue name only. Master events with numeric IDs enrich normally. - Enrichment state is tracked via
_chms_enriched_atand_chms_modifiedpost meta. - A new generic action hook
cp_sync_{$type}_update_item_afterfires after every item update (e.g.cp_sync_events_update_item_after), enabling type-specific post-processing for custom integrations.