WebCalendar

Changelog

1.0.5

  • Fix: iCal import time-zone conversion now actually runs. 1.0.4 shipped the core fix but did not pass the site time zone to the importer, so UTC (.ics “Z”) and zoned times were still stored verbatim and imported events appeared shifted by the UTC offset (e.g. 1 hour during British Summer Time). The site time zone is now wired into the importer, so imported events land at the correct local time and day.

1.0.4

  • Fix: iCal import now preserves event times across time zones. DTSTART/DTEND TZID values are forwarded on import, and UTC or zoned times are rebased to the calendar’s time zone, so imported events no longer appear shifted by several hours.
  • Bumped craigk5n/webcalendar-core to ^4.3.4 (includes the EventMapper time-zone import fixes).

1.0.3

  • Fix: PdoFactory now parses DB_HOST the same way wpdb does — bare localhost resolves to a Unix socket, matching shared-hosting environments. Resolves PDOException [HY000] [2002] “Can’t assign requested address” reported on plugin activation.
  • Fix: Activation no longer aborts on database connection errors — data seeding (categories, holiday calendar, layer subscriptions) is wrapped in try/catch and queued for lazy retry on the next admin request.
  • Fix: REST API validators for optional positive-int fields (category_id, featured_image_id, originalEventId) now accept null/0/”” as “not provided” instead of returning HTTP 400. Resolves admin form save failures when no category was selected.
  • Fix: REST owner validator accepts the empty-string “global owner” sentinel used by categories and nonuser calendars.
  • Test: New WP_DEBUG E2E lane scans wp-content/debug.log around every test and fails on plugin-originated PHP notices/warnings/deprecations/fatals/PDOException/_doing_it_wrong. 39 critical-flow specs covering activation lifecycle, REST write paths, and rendering surfaces.
  • Test: New socket-only MySQL activation lane reproduces the WP.org reviewer environment (MariaDB –skip-networking + DB_HOST=localhost) end-to-end as a regression guard.
  • Bumped craigk5n/webcalendar-core to ^4.3.2 (includes PdoEventRepository::search() fix for reused :keyword named placeholder under native prepares).

1.0.2

  • Security: remote-calendar sync and webhook delivery now use wp_safe_remote_* to block private-IP / cloud-metadata destinations (SSRF hardening)
  • Security: admin file uploads (CSV and iCal import) now route through wp_handle_upload() with an explicit MIME allowlist; temp uploads are cleaned up via wp_delete_file()
  • Security: added direct-file-access guards (defined(‘ABSPATH’) || exit) to all directory index stubs
  • Security: REST export-route _wpnonce inputs are sanitized via sanitize_text_field(wp_unslash()) before wp_verify_nonce()
  • Security: REST write routes now declare explicit args schemas with per-field sanitize_callback and validate_callback on all 23 POST/PUT/DELETE endpoints across 8 controllers
  • WP-CLI import/export commands now use WP_Filesystem instead of raw file I/O
  • Added “Development & Source Code” readme section with build instructions for plugin reviewers
  • Fixed: popup “View Event Details” link works with emoji event titles
  • 1,038 automated tests (+23 new regression guards), PHPStan Level 9, 0 PHPCS errors on changed code
  • WP.org Review Sprint #2 — all 11 findings from the third-pass review are resolved

1.0.1

  • Single event pages now display participant list
  • Calendar frontend fetches all pages of events (fixes missing events on busy days)
  • Recurring event detail pages show correct occurrence date
  • Plugin slug changed to agenticdaisy-calendar per WordPress.org review
  • Added external service disclosures (OpenStreetMap, Google Maps, social sharing, add-to-calendar)
  • Converted inline scripts to wp_add_inline_script() per WordPress coding standards
  • Renamed wpApiSettings JS global to webcalApiSettings to avoid reserved wp_ prefix
  • Bundled Leaflet locally instead of loading from CDN
  • WordPress Plugin Check: 0 errors (all resolved)
  • WordPress coding standards compliance fixes
  • Added PDO usage documentation for plugin reviewers
  • 1,126 automated tests, PHPStan Level 9, 86%+ coverage

1.0.0

  • Initial release
  • Full calendar admin UI with month/week/day views (Toast UI Calendar)
  • Event CRUD via REST API with recurring events (RRULE support)
  • Categories with color coding and layer-based calendar filtering
  • iCal import/export and remote calendar subscription with automatic sync
  • [webcalendar] shortcode and Gutenberg blocks (Calendar, Upcoming Events)
  • Single event pages with SEO-friendly permalinks and Schema.org JSON-LD
  • Open Graph and Twitter Card meta tags for social sharing
  • Social share buttons and “Add to Google/Outlook/Yahoo” one-click buttons
  • Global holiday management with standard US holiday import
  • Conflict detection with “Save Anyway” option for overlapping events
  • Email notification system with invitation templates and reminders
  • Role-based access control (36 capabilities)
  • All features fully unlocked — no license gating
  • REST API rate limiting and event pagination with safety caps
  • 1,126 automated tests, PHPStan Level 9

Plugin Website
Visit website

Author
agenticdaisy
Version:
1.0.5
Last Updated
June 4, 2026
Requires
WordPress 6.6
Tested Up To
WordPress 6.9.4
Requires PHP
8.2

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.