Description
Classic Calendar (Revived) — A Full-Featured Calendar for WoW Classic Era
The official Blizzard calendar was never ported to Classic Era — Classic Calendar fills that gap. It brings the full-featured calendar UI you know from Wrath and Retail into Classic Era, with accurate holiday schedules, guild event management, world buff scheduling, and a P2P sync system that keeps your whole guild in sync automatically.
The Problem
Classic Era has no built-in calendar. There's no way to see when holidays start, plan raid schedules, share world buff drop times with your guild, or get reminded when an event is coming up. Officers end up juggling spreadsheets, Discord pins, and manual whispers to coordinate anything beyond the current raid night.
World buff scheduling is especially painful — drop windows are time-sensitive, anyone in the raid needs to know when to be online and buffed, and without a shared system, drop times get posted in officer chat and immediately lost in the scroll.
The Solution
Classic Calendar re-implements the Blizzard calendar for Classic Era. It shows the same monthly grid you're used to, populates it automatically with holiday events and battleground weekends, and lets players and officers create events visible to the whole guild. An integrated world buff scheduler with a peer-to-peer sync system keeps buff drop times shared across every guild member running the addon — automatically, sending only what changed so there's very little network traffic.
Core Features
Calendar UI
- Full monthly calendar grid matching the Wrath/Retail calendar interface
- Navigate months forward and backward; click any day to see its events
- Holiday banner art displayed across the full duration of multi-day events
- Flashing calendar button when you have pending event invitations
- Version check — tells you when a guildmate is running a newer version of Classic Calendar than you are
- Access via the minimap button, calendar button,
/cal, or/calendar - Draggable minimap button — unlock and reposition it anywhere
- Today's Events panel — a compact window listing everything on a single day, with arrows to step between days, its own category filter, and the same right-click menus as the calendar. Open it with
/todayview; it remembers where you put it
Holidays & Automatic Events
- All Classic Era holidays with accurate 2026 dates: Lunar Festival, Love is in the Air, Noblegarden, Children's Week, Midsummer Fire Festival, Harvest Festival, Hallow's End, Winter's Veil, and more
- Darkmoon Faire schedule with location (Elwynn / Mulgore) shown on the calendar
- Battleground Weekends with the active Call to Arms battleground shown per week
- Stranglethorn Fishing Extravaganza (Sundays 2–4 PM)
- Per-holiday banner art toggles — enable or disable each holiday's banner art individually in Options
- Season of Discovery: Fireworks Spectacular banner support
Event Management
- Player events — create events visible to every invited player
- Guild events — create events visible to your entire guild automatically
- Copy/paste events from one day to another
- Mass-invite all attendees of an event directly to your party or raid
- Mass invite tells a player why nothing happened — anyone already in another group gets a whisper explaining the invite could not go through, instead of silently never hearing from you
- In-game mail notification when an event you're attending is cancelled
- Event reminders — configurable notification (raid warning, alarm sound, or button flash) before events begin
Calendar Filters
- Toggle visibility of holidays, battleground weekends, world buffs, and player/guild events independently
- Filter controls accessible from the calendar toolbar
World Buff Scheduling
- Track upcoming world buff drops (Onyxia, Nefarian, Hakkar, Rend, and more) on the guild calendar
- Officers create world buff drop events; guild members see them automatically
- Placeholder buff entries keep the schedule visible even before a drop is confirmed
- Announcing a drop that is already on the calendar won't create a second event — if two officers both announce the same drop, you get one event
- All world buff dates follow server time, not your computer's clock, so a drop is recorded on the same day your guildmates saw it whatever timezone you play from
- Sortable columns — click a header (Player Name, Main Name, Date Received, Dropped) to sort by it, click again to reverse; the active column shows a direction arrow
- World buff event window saves its last position
- Event title keyword recognition: Dropping, Head, Heart, Rend, Onyxia, Nefarian, Hakkar
World Buff Sync
- Automatically shares world buff drop data between all guild members running Classic Calendar
- Only changed entries are sent, and only when something actually differs — very little network traffic
- Sends are throttled so large guilds stay in sync without dropped or corrupted messages
- Any guild member who already has the latest data can share it — you no longer have to wait for one specific person to be online
- World buff data is shared across all your characters in the same guild, instead of being tracked separately per character
- Officers add and edit entries; every guild member sees them automatically
- Force a sync on demand with
/ccwb sync
Officer & Guild Settings
- Who counts as an officer — anyone whose guild rank your Guild Master has given "View Officer Note" permission to. It follows the permission your GM actually granted rather than guessing from a rank's position in the list, so it works the same however your guild names or orders its ranks
- Officer Settings tab — restrict guild event creation to officers only
- By default any guild member can create guild events; officers can turn on the restriction to limit it to officers
- The restriction reaches members reliably — it no longer matters whether the guild leader is online, and members are never wrongly locked out
- Rank Auto-Confirm — pick which guild ranks are confirmed automatically when they sign up to one of your guild events, from a dropdown on the event window. Set it per event, tick as many ranks as you like, and it applies to sign-ups as they arrive; Re-process Signups runs it over everyone who has already signed up. Ranks can be chosen while you are still creating the event and are saved with it
- Officers can broadcast updated guild settings to all guild members
- Guild settings sync via the P2P addon message system — no visible chat spam
- Debug mode accessible to officers via
/caldebug
Options Panel
- General tab: starting weekday, calendar button visibility, event alarm configuration, debug mode
- Art tab: individual toggles for each holiday's banner art (Battleground Weekends, Children's Week, Darkmoon Faire, Fishing Extravaganza, Hallow's End, Harvest Festival, Love is in the Air, Lunar Festival, Midsummer Fire Festival, Noblegarden, Winter's Veil)
- Officer Settings tab: guild event creation restriction, guild settings broadcast
- Right-click the minimap or calendar button to open the Options panel directly
Localization
- Holiday names and descriptions localized for: enUS, deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW
- Options UI falls back to English for any untranslated string — no blank labels
How It Works
Calendar Engine
- On load — holiday data is generated for the current year and populated into the calendar grid
- Day click — the selected day's events are listed; click an event to see details or RSVP
- Event creation — right-click any day cell to open the event creation dialog; choose player or guild visibility
- Reminder system — a background timer checks upcoming events and fires the configured notification type before each one starts
World Buff Sync
- On login — your client compares its world buff data with the guild's and pulls anything newer
- On edit — when an officer adds, edits, or removes an entry, just that change is shared with the guild right away
- Always current — members who were offline catch up automatically the next time they log in
Slash Commands
- /cal or /calendar — open the calendar
- /todayview — open the Today's Events panel
- /caloptions or /calendaroptions — open the options panel
- /worldbuff or /wb — open the World Buff tracker window
- /calranks — Rank Auto-Confirm: show opens the rank menu on the guild event you have open, refresh rebuilds the rank list, debug prints diagnostics
- /ccwb — show world buff sync status; /ccwb sync forces a sync with the guild, /ccwb dedup collapses duplicate entries
- /calwbclear — clear world buff data; officers can use /calwbclear guild to start the whole guild fresh
- /calrefresh or /calreload — rebuild the event cache if recurring events look wrong
- /caldebug — toggle debug output (persists across
/reload) - /ch or /calendarhelper — CalendarHelper commands (guild event creation, world buff scheduling)
Requirements
- WoW version: Classic Era, Season of Discovery, or Burning Crusade Classic. Not for Wrath, Cataclysm or Mists of Pandaria Classic — those already have a working in-game calendar, which is the thing this addon exists to bring back
- Guild membership required for guild events, world buff scheduling, and sync features
- Officer-only features need the "View Officer Note" guild permission, which your Guild Master grants per rank — not a particular rank number
Known Issues
- Guild event invites are broken as a result of Classic patch 1.15.3 — leaving this as-is in case Blizzard fixes it
- Holiday dates and times are best-guess where no authoritative source exists — please report inaccuracies in the comments
- Battleground Weekends are hidden for Season of Discovery due to inconsistent and overlapping scheduling
- Characters not in a guild may not see created/updated events until after relogging
- No way to disable in-game mail notifications for cancelled events — this is controlled by the game, not the addon
- Pressing Escape closes the entire calendar instead of one panel at a time — uses functionality not available in Classic Era
- Guild Announcements and Community events are unavailable — only present in later WoW versions
Recent Updates
v1.6.7 (2026-09-12)
Fixed
- A long freeze shortly after logging in, when Classic Calendar is installed alongside AllTheThings. About ten seconds after entering the world the game could lock up for 7-8 seconds. The game's own profiler blamed AllTheThings, but nearly all of that time was ours: whenever any addon steps the calendar through its months (AllTheThings does this to look for holidays; Questie nudges it at login), the game tells every calendar listener, and Classic Calendar was redrawing its entire month grid each time -- with the calendar window closed, where nobody could see it. Each redraw took a quarter to half a second, and AllTheThings steps through 33 months in one go. The calendar now ignores those updates while its window is closed, and rebuilds itself when you open it, exactly as before
- Each redraw is far cheaper too. The calendar was re-doing the same date arithmetic for every holiday, for every one of the 42 squares in the grid, every time it redrew. That work is now done once when the holiday list is built. This also trims the calendar's own share of your login time
- The calendar no longer jumps to a different month while you are looking at it. If another addon walked the calendar through its months while your window was open, the grid followed along step by step and was left showing whatever month that addon finished on -- usually today, even if you had paged ahead to plan a raid. The calendar now stays on the month you chose, and if another addon does move it, it puts itself back the next moment without redrawing every step in between. Anything you had selected stays selected
v1.6.6 (2026-09-08)
- Fixed: the "ON" column overlapping LVL and Status in the event sign-up list. It only happened on events with enough sign-ups for the list to scroll — the scrollbar takes width away from each row, but the columns to its left carried on expanding into space the row no longer had, so the level numbers ended up underneath the online dots. That is why some players saw it and others never did: it depends on how many people have signed up, not on your resolution or monitor. The columns now size themselves to the space a row actually has, and the headers stay lined up over their columns whether or not the list is scrolling. If your list does not scroll, nothing changes
- New: mass invite now tells a player why nothing happened. If someone you mass-invited is already in another group, the invite silently fails and they never know you tried. They now get a whisper: "Guild Calendar - Attempted Invite but you are already in a group." Only players you actually invited get it, only within 30 seconds of the invite, and never anyone already in your own party or raid. (Thanks to crimsonmane for the suggestion.)
- Fixed: the Mass Invite window closing itself moments after you opened it. Some officers could click Mass Invite, have the window open normally, and then watch it disappear on its own the next time the guild roster refreshed, with nothing said about why. The button and the window were checking two different things about whether you are allowed to mass invite, so one could say yes while the other said no. They now agree
- Fixed: "Invite to Raid" appearing when you right-click someone who is already in your group. The check was written so that it was true for almost everyone, so the option showed even for people already in your party or raid. It now only appears for players who are in neither
- Fixed: the Darkmoon Faire always saying it was in Mulgore, in every month of the year. The faire alternates between Elwynn Forest and Mulgore, but the description always read "at the foot of Thunder Bluff" — so it was right in the Mulgore months and wrong in the Elwynn ones. The dates shown were always correct; only the location text was wrong. It now names the zone the faire is actually in that month
- Performance: stopped the addon asking the server for a fresh guild roster over and over, forever. A hidden window was replying to every guild roster update with a request for another one, which produced another update, from login to logout — even with the calendar never opened. The addon itself never looked slow because the cost lands on other addons: a guild roster update is handled by several addons at once, and in a large guild that work adds up to a visible hitch every time a guildmate logs in or out. If you have felt a stutter on guild logins, this is one of its causes. The refresh now only happens while the mass-invite window is actually open, which is when it is useful
- Fixed: being unable to create Guild events, while personal events still worked. Right-clicking a day gave you "Create Event" but no "Create Guild Event", and everyone in the guild had the same problem. The officer check below ran as the very first thing in the guild half of that menu, so when it failed the guild entry was never added, while the personal one had already been added and stayed. Guild event creation works again for everyone it should
- Fixed: officer-only features being unavailable to everyone, including Guild Masters. The officer check called a game function that does not exist on any Classic client, so it either errored or quietly answered "no" for everybody — the world buff "Clear All" button never appeared, clearing the guild's world buff data was refused even for the actual Guild Master, and the Rank Auto-Confirm settings would not open. This is the other half of the officer change in v1.6.5, and officer features now work again for anyone whose rank can view officer notes
v1.6.5 (2026-08-07)
- Fixed: announcing a world buff drop that is already on the calendar no longer creates a duplicate event — if two officers both announce the same drop, you get one event instead of two. Different players or different buffs are unaffected
- Fixed: world buff dates could be a day out if your computer's timezone differs from your realm's. The date pickers and the recorded "received" date used your computer's clock instead of server time, so an Oceanic player on a US realm (or anyone playing across a date boundary) could record a buff for the wrong day — the entry your guild saw was dated a day after everyone else saw the drop, and the guild calendar event landed a day late. All world buff dates now follow server time, the same clock the rest of the calendar uses
- Important change to who counts as an officer. The addon now treats you as an officer if your guild rank has permission to view officer notes, instead of guessing from your rank's position in the list. Officer-only features were previously inconsistent — one part of the addon would treat you as an officer while another wouldn't, and in guilds that park alts at rank 3 those alts could clear the whole guild's world buff data. If someone unexpectedly loses access to Clear All, the Officer settings tab or officer-only event creation, your Guild Master just needs to tick "View Officer Note" for their rank. Guilds where officer note access already matches your top three ranks won't notice any difference
- Fixed: the Class, Rank and LVL columns did not line up in the event sign-up list — some rows sat under their headers and others sat to the left, especially after widening the event window or scrolling the list. Every row now lines up, whatever the window size
- Fixed: a rare case where two players in the same guild could end up keeping different versions of the same world buff record, and never agree on it afterwards
- Fixed: Zul'Gurub and Ahn'Qiraj Ruins showed the wrong reset time — an hour late on US realms, two hours early on EU. Every raid now shows your server's reset hour, so ZG and AQ20 line up with Molten Core, Blackwing Lair, Onyxia and the rest
- Fixed: the Officer settings tab was cut short — everything below the "Restrict Guild Events to Officers" checkbox was missing for everyone. The rest of the Officer options are back
- Fixed: the minimap button did not appear for some players. Whether it worked depended on which other addons you happened to have installed; it now works on its own
- Fixed: the addon no longer shows as out of date on the current Classic Era client
- Fixed: seasonal holidays slowly shifted an hour earlier the longer you played. Noblegarden, Children's Week, Midsummer, Harvest Festival and Hallow's End lost an hour every time the calendar refreshed its holiday list — after a day rollover, or each time you used the refresh command. Start and end times now stay put no matter how often the list is rebuilt
- Fixed: the "Holidays" filter showed in English on Russian and Chinese clients, and a Spanish settings description was missing
- Fixed: a case where a world buff marked as "not dropped" could be treated as dropped
v1.6.4 (2026-07-19)
- Fixed: a Lua error that popped up when opening an event's description box after Blizzard's recent Classic client update — creating and editing events works cleanly again
- Cleaned up the release download so it no longer bundles internal developer files (documentation and build scripts). No change to how the addon works in-game
v1.6.3 (2026-07-15)
- Fixed: the addon showed as out of date on Burning Crusade Classic and had to be force-enabled — it now loads normally on the current BCC client. No change for Classic Era or Season of Discovery
Only the last five patches are listed here. Earlier releases are in the full changelog on GitHub.
Credits
Toxiix & LoveDiodes — original authors of Classic Calendar; designed and built the calendar port, holiday engine, and CalendarHelper integration that the addon is built on.
Pimptasty — revival, ongoing maintenance, World Buff scheduling system, delta-sync P2P rewrite, officer settings, guild sync architecture, and new feature development.
Community
Bug reports, feature requests are welcome, reach out on Discord.

