I don't have a deep understanding of how it works, but it's looks like FreeBusy issue.
These E-2051: invalid parameter given to ical_get_monthdays (0)
messages appear in the logs, at least when the Scheduling Assistant functionality is used in Outlook. I have no idea how it works or if it works in this case.
This is a little truncated debug trace for developers, I hope it helps
Thread 72 "ep_pool/2" hit Breakpoint 1, ical_get_monthdays (year=2023, month=0) at lib/email/ical.cpp:852
852 mlog(LV_ERR, "E-2051: invalid parameter given to ical_get_monthdays (%u)", month);
(gdb) c
Continuing.
...
Thread 72 "ep_pool/2" hit Breakpoint 1, ical_get_monthdays (year=2023, month=0) at lib/email/ical.cpp:852
852 mlog(LV_ERR, "E-2051: invalid parameter given to ical_get_monthdays (%u)", month);
#0 ical_get_monthdays (year=2023, month=0) at lib/email/ical.cpp:852
days = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31}}
#1 0x00007f604b577802 in ical_get_dayofmonth (year=2023, month=0, order=order@entry=0,
dayofweek=dayofweek@entry=0) at lib/email/ical.cpp:899
#2 0x00007f60280f8bbe in gromox::EWS::Structures::tSerializableTimeZone::offset (this=this@entry=0x7f601de1e110,
tp=...) at exch/ews/structures.cpp:243
temp = 1676394000
datetime = {tm_sec = 0, tm_min = 0, tm_hour = 17, tm_mday = 14, tm_mon = 1, tm_year = 123, tm_wday = 2,
tm_yday = 44, tm_isdst = 0, tm_gmtoff = 0, tm_zone = 0x7f604a0e7908 "GMT"}
first = @0x7f601de1e150: {Bias = -60, Time = {hour = 0 '\000', minute = 0 '\000', second = 0 '\000'},
DayOrder = 0, Month = 0,
#3 0x00007f60280eea78 in gromox::EWS::Requests::process (request=..., response=<optimized out>, ctx=...)
at exch/ews/requests.cpp:205
event = <optimized out>
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
end = <optimized out>
maildir = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7f5fe4cfb860 "/var/lib/gromox/user/1/3"}, _M_string_length = 24, {
_M_local_buf = "\030\000\000\000\000\000\000\000\200\344\341\035`\177\000",
_M_allocated_capacity = 24}}
start = <optimized out>
fbv = {
FreeBusyViewType = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7f601de1e070 ""}, _M_string_length = 0, {_M_local_buf = "\000reeBusy\000\"`K`\177\000",
_M_allocated_capacity = 8751467428940444160}}, static Choices = {_M_elems = {
0x7f602810f076 <gromox::EWS::Structures::Enum::None> "None",
0x7f602810f088 <gromox::EWS::Structures::Enum::MergedOnly> "MergedOnly",
0x7f602810f0a8 <gromox::EWS::Structures::Enum::FreeBusy> "FreeBusy",
0x7f602810f098 <gromox::EWS::Structures::Enum::FreeBusyMerged> "FreeBusyMerged",
0x7f602810f0c8 <gromox::EWS::Structures::Enum::Detailed> "Detailed",
0x7f602810f0b8 <gromox::EWS::Structures::Enum::DetailedMerged> "DetailedMerged"}}},
MergedFreeBusy = {<std::_Optional_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {_M_payload = {{_M_empty = {<No data fields>}, _M_payload = {
static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x0}, _M_string_length = 140049870971664, {
_M_local_buf = "\021\000\021(`\177\000\000\f#`K`\177\000",
_M_allocated_capacity = 140050965790737}}},
_M_engaged = false}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
CalendarEventArray = {<std::_Optional_base<std::vector<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> > >> = {_M_payload = {{_M_empty = {<No data fields>},
_M_payload = {<std::_Vector_base<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> >> = {
_M_impl = {<std::allocator<gromox::EWS::Structures::tCalendarEvent>> = {<__gnu_cxx::new_allocator<gromox::EWS::Structures::tCalendarEvent>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
_M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}},
_M_engaged = true}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::vector<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> > > >> = {<No data fields>}, <No data fields>}}
fbr = @0x7f5fe401bef0: {static NAME = "FreeBusyResponse",
FreeBusyView = {<std::_Optional_base<gromox::EWS::Structures::tFreeBusyView>> = {_M_payload = {{
_M_empty = {<No data fields>}, _M_payload = {
FreeBusyViewType = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7f5fe401bf00 "FreeBusy"}, _M_string_length = 8, {
_M_local_buf = "FreeBusy\000\"`K`\177\000",
_M_allocated_capacity = 8751467428940444230}}, static Choices = {_M_elems = {
0x7f602810f076 <gromox::EWS::Structures::Enum::None> "None",
0x7f602810f088 <gromox::EWS::Structures::Enum::MergedOnly> "MergedOnly",
0x7f602810f0a8 <gromox::EWS::Structures::Enum::FreeBusy> "FreeBusy",
0x7f602810f098 <gromox::EWS::Structures::Enum::FreeBusyMerged> "FreeBusyMerged",
0x7f602810f0c8 <gromox::EWS::Structures::Enum::Detailed> "Detailed",
0x7f602810f0b8 <gromox::EWS::Structures::Enum::DetailedMerged> "DetailedMerged"}}},
MergedFreeBusy = {<std::_Optional_base<std::__cxx11::basic_string<char, std::char_traits<char>,
static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0xd0b4d0b0d0bad080 <error: Cannot access memory at address 0xd0b4d0b0d0bad080>}, _M_string_length = 2318952280742285496, {_M_local_buf = "Галкин; М",
_M_allocated_capacity = 13461465791204463568}}},
_M_engaged = false}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
CalendarEventArray = {<std::_Optional_base<std::vector<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> > >> = {_M_payload = {{_M_empty = {<No data fields>},
_M_payload = {<std::_Vector_base<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> >> = {
_M_impl = {<std::allocator<gromox::EWS::Structures::tCalendarEvent>> = {<__gnu_cxx::new_allocator<gromox::EWS::Structures::tCalendarEvent>> = {<No data fields>}, <No data fields>},
_M_start = 0x7f5fe5f270e0, _M_finish = 0x7f5fe5f27ef0,
_M_end_of_storage = 0x7f5fe5f28080}}, <No data fields>}},
_M_engaged = true}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::vector<gromox::EWS::Structures::tCalendarEvent, std::allocator<gromox::EWS::Structures::tCalendarEvent> > > >> = {<No data fields>}, <No data fields>}}},
_M_engaged = true}}, <std::_Enable_copy_move<true, true, true, true, std::optional<gromox::EWS::Structures::tFreeBusyView> >> = {<No data fields>}, <No data fields>},
ResponseMessage = {<std::_Optional_base<gromox::EWS::Structures::mResponseMessageType>> = {
_M_payload = {{_M_empty = {<No data fields>}, _M_payload = {ResponseClass = {
static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x8ed181d1b0d092d0 <error: Cannot access memory at address 0x8ed181d1b0d092d0>},
_M_string_length = 2322646642463914704, {
_M_local_buf = "Алексей", <incomplete sequence \320>,
_M_allocated_capacity = 13461459194319245520}},
MessageText = {<std::_Optional_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {_M_payload = {{_M_empty = {<No data fields>}, _M_payload = {
static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0xd0b2d098d0202e90 <error: Cannot access memory at address 0xd0b2d098d0202e90>}, _M_string_length = 4301730112056709296, {_M_local_buf = " Андрей А",
_M_allocated_capacity = 15110932163401404448}}},
_M_engaged = 46}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
ResponseCode = {<std::_Optional_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {_M_payload = {{_M_empty = {<No data fields>}, _M_payload = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x81d1b2d0bed0b4d0 <error: Cannot access memory at address 0x81d1b2d0bed0b4d0>}, _M_string_length = 2322597168634968784, {_M_local_buf = "Евгений", <incomplete sequence \320>,
_M_allocated_capacity = 13101169024955356624}}},
_M_engaged = 146}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>}, DescriptiveLinkKey = {<std::_Optional_base<int>> = {_M_payload = {{_M_empty = {<No data fields>},
_M_payload = -796732994},
_M_engaged = 189}}, <std::_Enable_copy_move<true, true, true, true, std::optional<int> >> = {<No data fields>}, <No data fields>}}},
_M_engaged = false}}, <std::_Enable_copy_move<true, true, true, true, std::optional<gromox::EWS::Structures::mResponseMessageType> >> = {<No data fields>}, <No data fields>}}
MailboxData = <optimized out>
__for_range = <optimized out>
__for_begin = {_M_current = 0x7f5fe4ff6af0}
__for_end = <optimized out>
TimeWindow = <optimized out>
data = {
FreeBusyResponseArray = {<std::_Optional_base<std::vector<gromox::EWS::Structures::mFreeBusyResponse, std::allocator<gromox::EWS::Structures::mFreeBusyResponse> > >> = {_M_payload = {{_M_empty = {<No data fields>},
_M_payload = {<std::_Vector_base<gromox::EWS::Structures::mFreeBusyResponse, std::allocator<gromox::EWS::Structures::mFreeBusyResponse> >> = {
_M_impl = {<std::allocator<gromox::EWS::Structures::mFreeBusyResponse>> = {<__gnu_cxx::new_allocator<gromox::EWS::Structures::mFreeBusyResponse>> = {<No data fields>}, <No data fields>},
_M_start = 0x7f5fe401bef0, _M_finish = 0x7f5fe401bfe0,
_M_end_of_storage = 0x7f5fe401bfe0}}, <No data fields>}},
_M_engaged = true}}, <std::_Enable_copy_move<true, true, true, true, std::optional<std::vector<gromox::EWS::Structures::mFreeBusyResponse, std::allocator<gromox::EWS::Structures::mFreeBusyResponse> > > >> = {<No data fields>}, <No data fields>}}
#4 0x00007f60280d65d8 in process<gromox::EWS::Structures::mGetUserAvailabilityRequest> (request=<optimized out>,
response=0x7f5fe652fcd0, context=...) at exch/ews/ews.cpp:54
#5 0x00007f60280d731b in gromox::EWS::EWSPlugin::dispatch[abi:cxx11](int, HTTP_AUTH_INFO&, void const*, unsigned long) (this=this@entry=0x561fec522690, ctx_id=ctx_id@entry=763, auth_info=..., data=data@entry=0x7f5fe6d87620,
len=len@entry=1662) at exch/ews/ews.cpp:198
responseContainer = 0x7f5fe652fcd0
#6 0x00007f60280d7924 in gromox::EWS::EWSPlugin::proc (this=0x561fec522690, ctx_id=763, content=0x7f5fe6d87620,
len=1662) at exch/ews/ews.cpp:150
start = <optimized out>
#7 0x00007f60280d7b55 in <lambda(int, void const*, uint64_t)>::operator() (len=<optimized out>,
cont=<optimized out>, ctx=<optimized out>, __closure=0x0) at exch/ews/ews.cpp:284
#8 <lambda(int, void const*, uint64_t)>::_FUN(int, const void *, uint64_t) () at exch/ews/ews.cpp:284
#9 0x0000561fea4f37c1 in hpm_processor_proc (phttp=phttp@entry=0x7f60217e5138) at exch/http/hpm_processor.cpp:619
b_result = <optimized out>
#10 0x0000561fea4f5ade in htp_delegate_hpm (pcontext=pcontext@entry=0x7f60217e5138)
at exch/http/http_parser.cpp:850
tmp_len = 0
#11 0x0000561fea4f8b2f in htparse_rdhead_st (pcontext=pcontext@entry=0x7f60217e5138,
actual_read=actual_read@entry=2541) at exch/http/http_parser.cpp:974
line = 0x7f5fd86665d5 "\r\n<?xml version=\"1.0\"?>\r\n<q:Envelope xmlns:ex12t=\"http://schemas.microsoft.com/exchange/services/2006/types\" xmlns:ex12m=\"http://schemas.microsoft.com/exchange/services/2006/messages\" xmlns:q=\"http://"...
#12 0x0000561fea4f8d04 in htparse_rdhead (pcontext=pcontext@entry=0x7f60217e5138)
at exch/http/http_parser.cpp:1073
size = 65536
#10 0x0000561fea4f5ade in htp_delegate_hpm (pcontext=pcontext@entry=0x7f60217e5138)
at exch/http/http_parser.cpp:850
tmp_len = 0
#11 0x0000561fea4f8b2f in htparse_rdhead_st (pcontext=pcontext@entry=0x7f60217e5138,
actual_read=actual_read@entry=2541) at exch/http/http_parser.cpp:974
line = 0x7f5fd86665d5 "\r\n<?xml version=\"1.0\"?>\r\n<q:Envelope xmlns:ex12t=\"http://schemas.microsoft.com/exchange/services/2006/types\" xmlns:ex12m=\"http://schemas.microsoft.com/exchange/services/2006/messages\" xmlns:q=\"http://"...
#12 0x0000561fea4f8d04 in htparse_rdhead (pcontext=pcontext@entry=0x7f60217e5138)
at exch/http/http_parser.cpp:1073
size = 65536
#13 0x0000561fea4fad77 in http_parser_process (pcontext=0x7f60217e5138) at exch/http/http_parser.cpp:1810
ret = <optimized out>
#14 0x00007f604b6c1efc in tpol_thrwork (pparam=0x561fec5b6340) at lib/threads_pool.cpp:211
pdata = 0x561fec5b6340
#15 0x00007f604b0ea6ea in start_thread (arg=0x7f601de20700) at pthread_create.c:477
ret = <optimized out>
#16 0x00007f604a048a6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
!<