Skip to content

Releases: dsputa4197/wp-calendar-plugin

v1.3.1: Make "Refresh now" update the cache the site actually reads

Choose a tag to compare

@dsputa4197 dsputa4197 released this 05 Sep 20:49

Make "Refresh now" update the cache the site actually reads

The shortcode resolves the configured default URL itself before calling
WCAL_Feed::get_events(), but is_override() treated any non-empty URL as a
second calendar deserving its own cache keys. So the public page read
wcal_events_, while the settings page's "Refresh now" — which passes
no URL — primed plain wcal_events. A manual refresh reported the freshly
fetched event count while writing to a cache nothing ever read, leaving new
events invisible until the front end's own copy expired hours later.

is_override() now compares against the configured default instead of just
testing for emptiness, so resolving the default URL before handing it over
stays on the shared keys. Genuine per-shortcode overrides are unaffected.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

v1.3.0: Show every occurrence of repeating calendar events

Choose a tag to compare

@dsputa4197 dsputa4197 released this 05 Sep 20:39

Show every occurrence of repeating calendar events

Google publishes a repeating event as one VEVENT with an RRULE, not as one
VEVENT per occurrence. The parser read only the master, so a weekly or
monthly event appeared once and then vanished from the schedule for good
once its first date had passed — and "Refresh now" couldn't reveal that,
since it reported success unconditionally and discarded refresh()'s result.

  • Expand RRULE (DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, COUNT, UNTIL, BYDAY)
    over a 24-month horizon, honoring EXDATE, RECURRENCE-ID overrides and
    STATUS:CANCELLED. Monthly steps are anchored to the series start so a run
    on the 31st skips short months instead of sliding onto the 1st.
  • Report the real refresh outcome: the event count on success, or the
    underlying HTTP/parse error, noting that the last saved copy is still live.
  • Pin all-day events to midnight; they were inheriting the current time and
    sorting into the wrong day.
  • Honor a DTSTART's own TZID rather than assuming the site's timezone.
  • Drop the feed cache on version upgrade, so a parser change takes effect on
    the next page view instead of up to wcal_cache_hours later.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

v1.2.1

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 05:50

Adds readme.txt (WordPress.org format), which fills out the wp-admin
"View version details" popup with a fuller description, an FAQ, and two
screenshots of the widget and settings page — previously that popup only
showed the plugin header's one-line description.

See CHANGELOG.md for details.

v1.2.0

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 05:18

New settings: Font (a curated list of system/web-safe fonts, applies to
all widget text — no external font files to load) and Text color (with
an automatically-derived muted tone for secondary text like addresses and
month labels). Both follow the same override pattern as the existing accent
color settings.

See CHANGELOG.md for details.

v1.1.3

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 05:08

Set Author to Comenium Consulting (https://www.comenium.info/).

v1.1.2

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 05:06

Fixes the update checker itself: it was configured to require a manually
uploaded zip on every release, which never actually got uploaded — so
updates would have silently found nothing to install. Now uses GitHub's
automatic per-tag source archive instead.

See CHANGELOG.md for details.

v1.1.1

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 05:03
  • Renamed the plugin, admin menu, and shortcode to be generic
    ([calendar_schedule], previously [mass_schedule] — the old tag still
    works as an alias, nothing embedded on an existing page needs to change).
  • Event-noun settings now default to "Event"/"Events" instead of a specific
    example noun.
  • Hardened the per-shortcode ics_url override to only accept
    calendar.google.com URLs, closing a minor SSRF surface (any post author
    could otherwise point the server at an arbitrary URL via a shortcode
    attribute, since shortcode content isn't capability-checked at render time).

See CHANGELOG.md for details.

v1.1.0

Choose a tag to compare

@dsputa4197 dsputa4197 released this 24 Jul 04:54
  • Self-updates via GitHub Releases.
  • New settings: accent color, heading color, second-language month names
    (None/Czech/Spanish/Polish/Vietnamese), and singular/plural event-noun
    labels driving the "Next ..." flag and "Show more" toggle.
  • New ics_url shortcode attribute to show a second calendar on one page.
  • The widget heading is now optional — leave it blank for no title.
  • Generalized defaults for public/multi-site use — a fresh install no
    longer pre-fills any site-specific calendar or heading text; existing
    installs keep their configuration unchanged via an upgrade routine.
  • Compact type scale and a native <details>/<summary> "Show more" fold
    for schedules spanning more than one month — no JavaScript.
  • Address line is de-duplicated when consecutive events share a location.
  • Dropped the prefers-color-scheme: dark variant.

See CHANGELOG.md for details.