Classic Calendar - Revived

Forking and maintaining the Classic Calendar addon for WoW Classic

File Details

ClassicCalendar-v1.5.0

  • R
  • Apr 13, 2026
  • 406.36 KB
  • 169
  • 2.5.5+1
  • Classic + 1

File Name

ClassicCalendar-ClassicCalendar-v1.5.0.zip

Supported Versions

  • 2.5.5
  • 1.15.8

Classic Calendar

[v1.5.0] (2026-04-13)

New Features

  • Invite list right-click menu now shows RSVP options (Confirmed, Standby) directly in the context menu — previously displayed behind a blank flyout arrow
  • Right-click RSVP menu restricted to event creator/moderator only (EventCanEdit()) — non-creators use the existing top RSVP buttons
  • Removed redundant myInviteIndex player scan from CalendarViewEventInviteListScrollFrame_Update

Bug Fixes

  • Fixed invite list #, Rank, and Level sort buttons firing both their own handler and the inherited template handler on each click — added inherit="false" to <OnClick> in ClassicCalendarTemplates.xml
  • Fixed custom sort columns cycling through a redundant third "clear" state — now toggles between ascending and descending only, matching native sort button behavior
  • Fixed Status column header rendering lower than all other column headers — was anchored to inviteList.ScrollBox instead of inviteList

Internal

  • Fixed undefined globals in GuildRankConfirm.lua: GameTooltip_Hide, DONE, CALENDAR_CREATEEVENTFRAME_DEFAULT_TITLE, CalendarGuildRankConfigButton
  • Added nil guard for popup in PopulateAndShowPopup
  • Fixed tabFocusGroup:OnTabPressed nil safety in ClassicCalendar.lua
  • Used _G[] lookup for CalendarCreateEventDivider to resolve linter undefined global

[v1.4.4] (2026-04-10)

Bug Fixes

  • Fixed art type checkbox labels not showing for non-English locales (BUG-023)
    • checkLocale() now iterates over enUS keys so keys absent from other locale tables correctly fall back to English
    • All 9 newly-added art type checkbox labels now display properly regardless of client language

[v1.4.3] (2026-04-04)

Bug Fixes

  • Removed all leftover debug print statements from click handlers and Today View
    • Cleaned up remaining print() calls that were not gated behind ClassicCalendar.debug

[v1.4.2] (2026-04-04)

Bug Fixes

  • Removed leftover debug print from LibDBIcon OnClick handler

[v1.4.1] (2026-03-30)

New Features

  • Calendar frame position now persists across /reload and sessions
    • CalendarFrame saves and restores its position via CCConfig.calendarFramePos
    • Removed hardcoded XML anchor; default position now set in Lua on first load
    • Frame marked movable with clampedToScreen to keep it on screen
  • Today View frame position now persists across /reload and sessions
    • OnDragStop saves position to CCConfig.todayViewPos; restored on PLAYER_LOGIN

[v1.4.0] (2026-03-30)

New Features

  • Today's Events panel — new Today View window showing all events for the current (or navigated) day
    • Holiday banner art displayed matching the main calendar — BORDER texture for non-ONGOING, ARTWORK banner for ONGOING events
    • Prev/Next day arrow navigation buttons in the title strip to move between days without closing the panel
    • Filter dropdown for event category visibility
    • Right-click an event button to open the full context menu (Create Personal Event, Create Guild Event, and event-specific options)
    • Right-click empty content area to open the day-level create menu
  • Consistent gradient background on every calendar day cell
    • EventBackgroundTexture now always rendered on all cells, including holiday-only and empty cells, eliminating the inconsistent look where some cells lacked the gradient
    • CalendarEventBackground added as a permanent overlay in Today View to match the main calendar aesthetic

[v1.3.1] (2026-03-30)

Bug Fixes

  • Fixed debug messages bleeding through without /caldebug enabled (BUG-021)
    • Wrapped all sync and diagnostic print statements behind ClassicCalendar.debug check
    • Affected files: CalendarHelper.lua, WorldBuffSession.lua, WorldBuffSync.lua, WorldBuffHash.lua, WorldBuffDelta.lua
    • User-facing error messages remain visible by default
  • Fixed calendar day cells remaining highlighted after mouse leaves event buttons (BUG-022)
    • Added missing UnlockHighlight() calls to event button OnLeave handlers
    • Prevents visual clutter from accumulated stuck highlights

[v1.3.0] (2026-03-27)

New Features

  • Officer-controlled guild event creation restriction via Options > Officer Settings
  • General tab now shows "Valid Hash" and "Event Creation" status (Yes / No / Unknown)
  • "Create Guild Event" context menu entry hidden for non-officers when restriction is active
  • Right-click minimap button or calendar button to toggle the Options panel directly to the General tab
  • Left and right clicks on calendar/minimap buttons now both toggle open/closed

Bug Fixes

  • Fixed multi-day holiday banner art only displaying on the final day of an event (BUG-008)
    • ShouldDisplayEventOnCalendar now returns true for ONGOING sequence days when displayBanner=true
  • Fixed Love is in the Air and Winter's Veil textures returning nil due to incorrect texture path casing (BUG-008)
  • Added individual on/off toggles for all 11 holiday banner art types in Options > Art (BUG-008)
    • All checkboxes persist through /reload; Fireworks Spectacular only appears in Season of Discovery
  • Added Winter's Veil 2026–2027 calendar entry (BUG-008)
  • Fixed Fishing Extravaganza starting on Monday instead of Sunday (BUG-008)
  • Removed duplicate Noblegarden entry causing date overlap (BUG-008)
  • Optimized version detection — isClassicEra and isSoD are now cached globally at load time (BUG-008)

[v1.2.2] (2026-03-26)

Bug Fixes

  • Fixed string vs number comparison error in officer rank checking (BUG-005)
    • Added tonumber() conversion before all rank comparisons; GetGuildInfo returns rank as a string, not a number
    • Affected: ClassicCalendar_Options.lua, WorldBuff.lua, WorldBuffSync.lua, ClassicCalendar.lua, DataSync.lua
  • Fixed FontString OnUpdate script error spamming the UI error log (BUG-006)
    • FontStrings do not support OnUpdate; replaced with invisible Frame intermediaries that update the FontStrings
    • Eliminates 21+ repeated errors when opening the Options panel
  • Fixed incorrect GetGuildInfo return index causing all officer checks to fail (BUG-007)
    • Changed select(2, GetGuildInfo(...))select(3, ...) to retrieve the numeric rank index instead of the rank name string
    • Guild Master and officers can now broadcast guild settings correctly

[v1.2.1] (2026-03-16)

Bug Fixes

  • Fixed debug mode status display in /calwbsync
  • Fixed integer overflow in FNV-1a hash computation (BUG-004)
  • Persist debug mode state across /reload
  • Improved debug diagnostics output for WorldBuff sync

[v1.2.0] (2026-03-16)

New Features

  • Added /calwbsync command for manual WorldBuff sync trigger
  • Enabled WorldBuffSync debug messages via /caldebug

Bug Fixes

  • Added nil checks for ClassicCalendar.debug across all WorldBuff modules
  • Fixed function argument count and type issues in sync modules

[v1.1.12] (2026-03-16)

Changes

  • Complete WorldBuff Sync rewrite with delta-sync P2P system (Protocol v4)
  • 96% traffic reduction via hash-based pull protocol
  • Session management: limits concurrent syncs (3 inbound / 3 outbound)
  • Self-healing mesh via periodic heartbeat for eventual consistency
  • Fixed critical DataSync issues and improved sync reliability

New Files

  • WorldBuffHash.lua - FNV-1a hash computation and tracking
  • WorldBuffDelta.lua - Delta computation and application
  • WorldBuffSession.lua - P2P session manager
  • WorldBuffSync.lua - Protocol coordinator and message router

Breaking Changes

  • No backward compatibility with v1.1.x clients (protocol v3)
  • All guild members must upgrade for sync to function

[v1.1.11] (2026-02-26)

Bug Fixes

  • Fixed deletedDate/deletedTime field inconsistency causing garbage collection failure in DataSync
  • Fixed direct table reference bleeding in SendGuildSync() — now creates shallow copies before sending
  • Implemented separate communication prefixes per buff table (CCWB_RH, CCWB_HH, CCWB_OH, CCWB_NH) for complete isolation
  • Added 5-minute cooldown on GUILD_ROSTER_UPDATE to prevent spam (~90% network traffic reduction)
  • Added prefix-to-buffType validation layer
  • Rejected wipe commands when guild roster not yet loaded (closes exploit window)
  • Skipped processing own addon messages to prevent double-processing by officers
  • Bumped sync protocol to v3 (backward compatible with v2)
  • Moved BUG_TRACKER.md, FEATURE_TRACKER.md, developer_log.md to docs/ folder

[v1.1.10] (2026-02-01)

Changes

  • Moved world buff data to per-character SavedVariables to prevent data bleed between characters

[v1.1.9] (2026-01-27)

Changes

  • Added Darkmoon Faire schedule for 2026

[v1.1.8] (2026-01-22)

Changes

  • Guild Leader is now the authoritative source of truth for World Buff scheduler data
  • Prevents data corruption from non-GM characters overwriting GM data

[v1.1.7] (2026-01-22)

Changes

  • Updated .pkgmeta to exclude development documentation (BUG_TRACKER.md, FEATURE_TRACKER.md, developer_log.md) from CurseForge release packages

[v1.1.6] (2026-01-22)

Bug Fixes

  • Fixed BUG-002: World Buff data corruption — deep copy and table separation to prevent cross-contamination

[v1.1.5] (2025-11-20)

Bug Fixes

  • Fixed BUG-001: Intermittent BG event display issue

[v1.1.4] (2026-01-19)

Changes

  • Updated holiday dates

[v1.1.3] (2025-12-04)

Changes

  • Updated .pkgmeta to include calendar-helper dependency

[v1.1.2] (2025-12-03)

Changes

  • WB sync now only accepts data newer than the last wipe timestamp
  • Improved wipe function reliability

[v1.1.1] (2025-11-25)

Changes

  • Added function to wipe corrupted world buff data
  • Split WB sync into 4 separate messages per buff type to stop cross-table data contamination

[v1.1.0] (2025-11-19)

New Features

  • Added CalendarHelper as a dependency for Discord Raid Helper event import

[v1.0.0] (2025-10-01)

New Features

  • Added duplicate event detection to prevent creating duplicate raid events from CalendarHelper data
  • CalendarHelper integration stable

[v0.9.6] (2025-10-30)

Changes

  • Updated world buff event creation logic

[v0.9.5] (2025-10-26)

Changes

  • Updated world buff data table logic

[v0.9.4] (2025-10-25)

Bug Fixes

  • Fixed Lua errors in ClassicCalendar.xml

[v0.9.3] (2025-10-25)

Changes

  • Hid debug print statements behind debug flags

[v0.9.2] (2025-10-25)

Bug Fixes

  • Fixed bug in hide/show filters for world buff events

[v0.9.1] (2025-10-25)

Changes

  • Updated display logic and spacing for player names in the world buff window

[v0.9.0] (2025-10-24)

Changes

  • All world buff window buttons now match the calendar button style

[v0.8.8] (2025-09-28)

Changes

  • Removed Brewfest (not present in Classic Era)

[v0.8.6] (2025-09-18)

Changes

  • Updated December Darkmoon Faire schedule

[v0.8.5] (2025-09-18)

Changes

  • Hard-coded Darkmoon Faire event dates

[v0.8.4] (2025-09-17)

Changes

  • Added /caldebug debug slash command

[v0.8.3] (2025-09-17)

Changes

  • Updated calendar to display a full year of events

[v0.8.2] (2025-09-15)

Changes

  • Removed unused textures
  • Miscellaneous bug fixes

[v0.8.1] (2025-09-14)

Changes

  • Added deployment automation
  • Added minimap button

v0.7.0beta (2024-09-26)

Full Changelog Previous Releases

  • Fix bugs introduced by 1.15.4