Description
The queryEvents() method with month filter uses the indices.byMonth index (keyed using local dates from _indexEvent() at line 686), but does not convert the month/year filter through the requested timezone.
Impact
When querying events for a specific month in Asia/Tokyo timezone, events indexed in December UTC are missed because the index lookup doesn't account for timezone offset. This causes silent data loss in month-scoped queries, particularly affecting month view rendering.
Example: January 31 11:59 PM UTC = February 1 in Asia/Tokyo. A query for 'January' in Tokyo timezone misses events occurring on January 31 UTC.
Code Location
- EventStore.js:236-239 (queryEvents month filter)
- EventStore.js:686 (_indexEvent - indexes in local date)
Root Cause
The month index is built using local calendar dates from _indexEvent(), but queryEvents() filter doesn't convert the requested timezone when looking up the index.
Description
The queryEvents() method with month filter uses the
indices.byMonthindex (keyed using local dates from_indexEvent()at line 686), but does not convert the month/year filter through the requested timezone.Impact
When querying events for a specific month in Asia/Tokyo timezone, events indexed in December UTC are missed because the index lookup doesn't account for timezone offset. This causes silent data loss in month-scoped queries, particularly affecting month view rendering.
Example: January 31 11:59 PM UTC = February 1 in Asia/Tokyo. A query for 'January' in Tokyo timezone misses events occurring on January 31 UTC.
Code Location
Root Cause
The month index is built using local calendar dates from _indexEvent(), but queryEvents() filter doesn't convert the requested timezone when looking up the index.