The start date (example "Love is in the air" id 8) for game events is not correct (one month early, should start about 04.02.2020) and the event is not shown in the game calendar.


Also the upcoming events "Noblegarden" (id 9) & "Children's Week" (id 10) are not shown in the calendar ingame.


The game event 8 should start in february.
The upcoming events should be shown in the calendar.
2020-01-06 19:00:29 Loading Game Event Data...
2020-01-06 19:00:29 >> Loaded 120 holiday dates in 1 ms
2020-01-06 19:00:29 No suitable start date found for holiday 327.
2020-01-06 19:00:29 No suitable start date found for holiday 423.
2020-01-06 19:00:29 No suitable start date found for holiday 181.
2020-01-06 19:00:29 No suitable start date found for holiday 201.
2020-01-06 19:00:29 No suitable start date found for holiday 321.
2020-01-06 19:00:29 No suitable start date found for holiday 283.
2020-01-06 19:00:29 No suitable start date found for holiday 284.
2020-01-06 19:00:29 No suitable start date found for holiday 285.
2020-01-06 19:00:29 No suitable start date found for holiday 353.
2020-01-06 19:00:29 No suitable start date found for holiday 404.
2020-01-06 19:00:29 No suitable start date found for holiday 400.
2020-01-06 19:00:29 No suitable start date found for holiday 420.
2020-01-06 19:00:29 >> Loaded 69 game events in 4 ms
master
AzerothCore rev. 0f590d03974a+ 2020-01-02 07:43:04 +0000 (master branch) (Win64, Release)
Windows 10 pro 64 bit
Max skill on level/login
confirm
Confirm problem
confirm
Confirmed , I had one issue with this recent commit I did a pr for could it be to do with this maybe https://github.com/azerothcore/azerothcore-wotlk/pull/2368
I don't think it is related to PR #2368. The only thing changed in this PR is setting the end date into the future for events with end_time set to NULL, so that the events don't run out. The error message in the server log is caused by this function:
https://github.com/azerothcore/azerothcore-wotlk/blob/4a8f1de5381d1cf53cdcc4c5bb7d9ef7c99a8a8f/src/server/game/Events/GameEventMgr.cpp#L1733-L1808
I don't see any reference to the end time of the game event there. Could it be that the maximum occurrence is read from DBC?
Could it be that the maximum occurrence is read from DBC?
Incorrect only in Calendar. It isn't show some events, but event's start triggers calculated approximately normal (+/-2..5 days depending from timezone or something else)
for example - Event 8:



this event must be during 2 week before St Valentines day (+/-)
It must be started in Febrary, not in middle January
However, calendar is not showing it. But at last year it was shown.
The next date is calculated in this function, but I sadly don't have an idea what's going wrong there:
https://github.com/azerothcore/azerothcore-wotlk/blob/4a8f1de5381d1cf53cdcc4c5bb7d9ef7c99a8a8f/src/server/game/Events/GameEventMgr.cpp#L71-L108
I thought maybe it had to do with the start time changes in that commit
INSERT INTOversion_db_world(sql_rev`) VALUES ('1571672933681916812');
ALTER TABLE game_event ALTER COLUMN start_time SET DEFAULT '1970-01-01 08:00:00',
ALTER COLUMN end_time SET DEFAULT '1970-01-01 08:00:00';
UPDATE game_event SET start_time = '1970-01-01 08:00:00', end_time = '1970-01-01 08:00:00' WHERE eventEntry IN
(13, 17, 22, 31, 48, 49, 55, 56, 57, 58, 59, 60, 65, 66);
UPDATE game_event SET end_time = NULL WHERE eventEntry IN
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18,
19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 50, 51, 52, 53, 54, 62, 63,
64, 67, 68, 69, 70, 71);
if (fields[2].IsNull())
endtime = time(nullptr) + 63072000; // add 2 years to current date
`
sorry
I've tried them all, not because of the above
These events are not in use:
(13, 17, 22, 31, 48, 49, 55, 56, 57, 58, 59, 60, 65, 66)
The end_time for the following events has been set to NULL. The core automatically calculates the end_time for these events while reading the table (current date + 2 years):
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18,
19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 50, 51, 52, 53, 54, 62, 63,
64, 67, 68, 69, 70, 71)
uint64 endtime = fields[2].GetUInt64();
if (fields[2].IsNull())
endtime = time(nullptr) + 63072000; // add 2 years to current date
A small bug existed concerning importing too small dates (probably due to time zone issues), which was fixed in PR #2462.
Hello! I also ran into this problem and started looking for a solution. I tried changing the year at start_time of the event "Love in the air" from 2013(or 2014, I do not remember) to 2019 and now it works as it should (I changed the system time to 02/14/2020 to check this). I hope this information helps you. Forgive my English, I partially use Google translator.
P.S. Unfortunately, the holiday is not displayed on the calendar.
Jan. 9:

Feb. 14:

DB:

Details: I could not master Visual Studio, so I use the ready-made repack "AzerothCore-wotlk Solo Friendly Repack with Eluna", but maybe this is not particularly important.
Edit: I also noticed that the AzerothCore add-on "Auctionhouse Bot" also does not work "in 2020", the items just do not appear on the list. But if you set the system date to 2019 and restart the server, everything works. Hope this information is also helpful.
Edit: Auctionhouse Bot issue fixed by clearing characters> auctionhouse table.
May this could be helpful/useful to fix this:
if you are getting No suitable start date found, then that may not fix it here, worth a try though. AZC may need some other changes from TC for it to work, idk.
It can also be helpful to know that there are several people working on the same problem and maybe they can solve it faster together. Didn't say this is the solution.
Ok, in order to fix this you need to add new values to the table holiday_dates. For example, the last entry with ID 9 for holiday 423 ("Love is in the Air") contains the date value 319881216 which means 2019-02-05 (see https://wowdev.wiki/DB/Holidays). You can add a new entry for 2020-02-05:
INSERT INTO `holiday_dates` (`id`, `date_id`, `date_value`) VALUES
(423,10,(20 << 24) | ((02 - 1) << 20) | ((05 - 1) << 14));
After restarting the server you'll see the correct date for this holiday. You can use this format for the date value of new entries:
(YY << 24) | ((MM - 1) << 20) | ((DD - 1) << 14)
We should eventually implement another way sometime in the future, as it is a tedious task to add all the holiday dates. Plus, the maximum possible year which can be specified this way is 2031 (only 5 Bits for the year) and there can only be a maximum of 26 entries per holiday event. Here's the code which creates the packet:
https://github.com/azerothcore/azerothcore-wotlk/blob/c15206fc152a547dc39e50e8964738f8f115747a/src/server/game/Handlers/CalendarHandler.cpp#L144-L164
tested show fine in calendar now @Stoabrogga.
Thanks @solidmaxtor. However, we need the dates for all the other events, too. Perhaps we can use parts of the SQL script mentioned in the TC issue @Endeffect-AT posted above. I just don't have the time to work on this currently, sorry (I also normally have the holiday events disabled on my server because I find them annoying).
Most helpful comment
Thanks @solidmaxtor. However, we need the dates for all the other events, too. Perhaps we can use parts of the SQL script mentioned in the TC issue @Endeffect-AT posted above. I just don't have the time to work on this currently, sorry (I also normally have the holiday events disabled on my server because I find them annoying).