wow-api-calendar-events
SKILL.md
Calendar & Events API (Retail — Patch 12.0.0)
Comprehensive reference for the in-game calendar and event scheduler.
Source: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API Current as of: Patch 12.0.0 (Build 65655) — January 28, 2026 Scope: Retail only.
Scope
- C_Calendar — Full calendar system (50+ functions)
- C_EventScheduler — Scheduled event management
C_Calendar — Calendar System
Opening & Navigation
| Function | Returns | Description |
|---|---|---|
C_Calendar.OpenCalendar() |
— | Open/initialize calendar |
C_Calendar.CloseEvent() |
— | Close event editor |
C_Calendar.SetAbsMonth(month, year) |
— | Navigate to month |
C_Calendar.SetMonth(offsetMonths) |
— | Navigate relative |
C_Calendar.GetMonthInfo(offsetMonth) |
monthInfo |
Month data |
C_Calendar.GetMinDate() |
date |
Earliest navigable date |
C_Calendar.GetMaxDate() |
date |
Latest navigable date |
Month Info Fields
month— Month number (1-12)year— YearnumDays— Days in monthfirstWeekday— First day weekday (1=Sun)
Day Events
| Function | Returns | Description |
|---|---|---|
C_Calendar.GetNumDayEvents(offsetDay, monthOffset) |
numEvents |
Events on day |
C_Calendar.GetDayEvent(offsetDay, eventIndex, monthOffset) |
eventInfo |
Event at index |
C_Calendar.GetNumGuildEvents() |
numEvents |
Guild events |
C_Calendar.GetGuildEventInfo(index) |
eventInfo |
Guild event |
Event Info Fields
title— Event titleisCustomTitle— Player-created?startTime— Start date/timeendTime— End date/timecalendarType— Type (PLAYER, GUILD_EVENT, SYSTEM, HOLIDAY, RAID_LOCKOUT, etc.)sequenceType— Sequence (START, ONGOING, END)eventType— Event type enumtexture— Event texturemodStatus— Moderator statusinviteStatus— Invite status enuminvitedBy— Who inviteddifficulty— Difficulty IDinviteType— Invite typesequenceIndex— Sequence indexnumSequenceDays— Total sequence daysdifficultyName— Difficulty nameisLocked— Locked?
Creating & Editing Events
| Function | Returns | Description |
|---|---|---|
C_Calendar.CreatePlayerEvent() |
— | Start creating event |
C_Calendar.CreateGuildAnnouncement() |
— | Create guild announcement |
C_Calendar.CreateGuildSignUpEvent() |
— | Create sign-up event |
C_Calendar.CreateCommunitySignUpEvent() |
— | Community sign-up event |
C_Calendar.AddEvent() |
— | Submit new event |
C_Calendar.UpdateEvent() |
— | Update edited event |
C_Calendar.RemoveEvent() |
— | Delete event |
C_Calendar.OpenEvent(offsetDay, eventIndex, monthOffset) |
— | Open event for viewing |
C_Calendar.CanAddEvent() |
canAdd |
Can create events? |
Event Properties (Get/Set)
| Function | Returns | Description |
|---|---|---|
C_Calendar.EventGetTitle() |
title |
Get event title |
C_Calendar.EventSetTitle(title) |
— | Set event title |
C_Calendar.EventGetDescription() |
description |
Get description |
C_Calendar.EventSetDescription(desc) |
— | Set description |
C_Calendar.EventGetDate() |
date |
Get event date |
C_Calendar.EventSetDate(month, day, year) |
— | Set event date |
C_Calendar.EventGetTime() |
hour, minute |
Get event time |
C_Calendar.EventSetTime(hour, minute) |
— | Set event time |
C_Calendar.EventGetType() |
eventType |
Get event type |
C_Calendar.EventSetType(eventType) |
— | Set event type |
C_Calendar.EventGetRepeatOption() |
repeatOption |
Repeat setting |
C_Calendar.EventSetRepeatOption(option) |
— | Set repeat |
C_Calendar.EventGetLocked() |
isLocked |
Is locked? |
C_Calendar.EventSetLocked(locked) |
— | Lock/unlock |
C_Calendar.EventGetClubId() |
clubId |
Associated club |
C_Calendar.EventSetClubId(clubId) |
— | Set club |
Invites
| Function | Returns | Description |
|---|---|---|
C_Calendar.EventGetNumInvites() |
numInvites |
Invite count |
C_Calendar.EventGetInvite(index) |
inviteInfo |
Invite data |
C_Calendar.EventInvite(name) |
— | Invite player |
C_Calendar.EventRemoveInvite(index) |
— | Remove invite |
C_Calendar.EventSetInviteStatus(index, status) |
— | Set invite status |
C_Calendar.EventSignUp() |
— | Sign up |
C_Calendar.EventDecline() |
— | Decline |
C_Calendar.EventTentative() |
— | Tentative |
C_Calendar.EventAvailable() |
— | Mark available |
C_Calendar.MassInviteGuild(minLevel, maxLevel, maxRank) |
— | Mass guild invite |
C_Calendar.MassInviteCommunity(clubId, minLevel, maxLevel) |
— | Mass community invite |
C_Calendar.GetEventInviteResponseTime(index) |
time |
Response time |
C_Calendar.EventSortInvites(sortType, reverse) |
— | Sort invites |
C_Calendar.EventCanEdit() |
canEdit |
Can edit event? |
Invite Status Enums
| Value | Status |
|---|---|
| 1 | Invited |
| 2 | Accepted |
| 3 | Declined |
| 4 | Confirmed |
| 5 | Out |
| 6 | Standby |
| 7 | Signed Up |
| 8 | Not Signed Up |
| 9 | Tentative |
Holidays
| Function | Returns | Description |
|---|---|---|
C_Calendar.GetHolidayInfo(offsetDay, eventIndex, monthOffset) |
holidayInfo |
Holiday data |
C_Calendar.GetNumHolidayTextures(offsetDay, eventIndex, monthOffset) |
numTextures |
Holiday textures |
Filtered Events
| Function | Returns | Description |
|---|---|---|
C_Calendar.SetTextureToDefault() |
— | Reset texture filter |
C_Calendar.GetDefaultGuildFilter() |
filter |
Default guild filter |
C_Calendar.EventGetTextures() |
textures |
Event textures |
C_Calendar.EventGetSelectedInvite() |
index |
Selected invite |
C_Calendar.EventSetSelectedInvite(index) |
— | Select invite |
Raid Resets
| Function | Returns | Description |
|---|---|---|
C_Calendar.GetNumRaidResets() |
numResets |
Raid reset count |
C_Calendar.GetRaidReset(index) |
resetInfo |
Reset info |
Event Type Textures
| Function | Returns | Description |
|---|---|---|
C_Calendar.GetEventTypeTexture(eventType) |
texture |
Texture for type |
C_Calendar.EventGetTypesDisplayOrdered() |
types |
Ordered event types |
C_EventScheduler — Scheduled Events
| Function | Returns | Description |
|---|---|---|
C_EventScheduler.GetScheduledEvents() |
events |
All scheduled events |
C_EventScheduler.GetEventInfo(eventID) |
eventInfo |
Event details |
C_EventScheduler.IsEventActive(eventID) |
isActive |
Event active? |
Common Patterns
List Today's Events
C_Calendar.OpenCalendar()
local monthInfo = C_Calendar.GetMonthInfo(0)
local today = tonumber(date("%d"))
local numEvents = C_Calendar.GetNumDayEvents(today, 0)
for i = 1, numEvents do
local event = C_Calendar.GetDayEvent(today, i, 0)
if event then
print(event.title, "-", event.calendarType)
end
end
Create a Guild Event
C_Calendar.CreateGuildSignUpEvent()
C_Calendar.EventSetTitle("Raid Night - Mythic")
C_Calendar.EventSetDescription("Bring flasks and food.")
C_Calendar.EventSetDate(3, 15, 2026) -- March 15, 2026
C_Calendar.EventSetTime(20, 0) -- 8:00 PM
C_Calendar.EventSetType(1) -- Raid type
C_Calendar.AddEvent()
Check Upcoming Holidays
C_Calendar.OpenCalendar()
local monthInfo = C_Calendar.GetMonthInfo(0)
for day = 1, monthInfo.numDays do
local numEvents = C_Calendar.GetNumDayEvents(day, 0)
for i = 1, numEvents do
local event = C_Calendar.GetDayEvent(day, i, 0)
if event and event.calendarType == "HOLIDAY" then
print("Holiday:", event.title, "- Day", day)
end
end
end
Key Events
| Event | Payload | Description |
|---|---|---|
CALENDAR_UPDATE_EVENT_LIST |
— | Event list changed |
CALENDAR_UPDATE_INVITE_LIST |
hasCompleteList | Invite list changed |
CALENDAR_NEW_EVENT |
isCopy | Creating new event |
CALENDAR_OPEN_EVENT |
calendarType | Event opened |
CALENDAR_CLOSE_EVENT |
— | Event closed |
CALENDAR_UPDATE_EVENT |
— | Event data changed |
CALENDAR_UPDATE_PENDING_INVITES |
— | Pending invites changed |
CALENDAR_EVENT_ALARM |
title, hour, minute | Event alarm |
CALENDAR_ACTION_PENDING |
pending | Action in progress |
CALENDAR_UPDATE_GUILD_EVENTS |
— | Guild events updated |
CALENDAR_UPDATE_ERROR |
errorReason | Calendar error |
Gotchas & Restrictions
- OpenCalendar() required — Must call
C_Calendar.OpenCalendar()before using other calendar functions. - Offset-based navigation — Day and month parameters are offsets from current, not absolute (for most functions).
- Invite permissions — Only event owners/moderators can manage invites.
- Calendar types —
calendarTypedistinguishes PLAYER events from HOLIDAY, SYSTEM, RAID_LOCKOUT, etc. - Mass invite limits — Guild/community mass invites have level and rank filters.
- Event creation requires hardware —
AddEvent()typically requires user interaction. - Holiday info is read-only — Holidays are system-generated and cannot be modified.
- Calendar data is async — Wait for
CALENDAR_UPDATE_EVENT_LISTafter opening the calendar.
Weekly Installs
3
Repository
jburlison/wowad…piagentsGitHub Stars
8
First Seen
11 days ago
Security Audits
Installed on
cline3
github-copilot3
codex3
gemini-cli3
cursor3
opencode3