Linus Rath
a002b09e02
fix: query calendar ranges in the right time zone and past the limits
...
CalendarEvent/query reads `after`/`before` as local date-times in the
request's `timeZone`, and Stalwart silently drops a `Z` or offset. The
proactive alert fetch and the contact activity panel sent UTC strings,
so their windows were shifted by the user's UTC offset (two hours in
Berlin in summer). UTC and offset bounds are now converted to the wall
clock of the request time zone before the query is sent.
With server-side expansion, a range with more than
`maxRecurrenceExpansions` occurrences (a daily series over ten years)
failed the whole query with `invalidArguments`, and the calendar showed
nothing. The query now falls back to the unexpanded series, which the
calendar expands on the client as it does for older servers.
The query also stopped at a fixed 1000 ids. Without an explicit limit it
now pages until the range is complete.
2026-09-22 20:42:07 +02:00
..
2026-06-19 23:52:42 +02:00
2026-07-04 14:51:46 +02:00
2026-08-13 23:01:41 +02:00
2026-09-10 10:14:25 +02:00
2026-08-25 18:39:07 +02:00
2026-08-16 23:48:58 +02:00
2026-09-10 10:45:45 +02:00
2026-09-17 20:16:51 +02:00
2026-09-17 20:48:42 +02:00
2026-09-17 20:48:42 +02:00
2026-09-09 19:21:40 +02:00
2026-06-12 00:23:00 +02:00
2026-06-19 23:52:42 +02:00
2026-08-26 23:02:19 +02:00
2026-09-19 13:01:07 +02:00
2026-09-07 16:52:20 +02:00
2026-09-07 16:52:20 +02:00
2026-06-19 23:52:42 +02:00
2026-08-12 17:34:20 +03:00
2026-07-07 23:26:36 +02:00
2026-08-25 19:16:20 +02:00
2026-08-16 21:18:57 +02:00
2026-09-03 22:12:15 -07:00
2026-03-31 00:11:04 +02:00
2026-03-27 18:46:20 +01:00
2026-09-07 16:48:26 +08:00
2026-09-09 18:27:01 +02:00
2026-06-19 23:53:20 +02:00
2026-08-25 18:50:50 +02:00
2026-02-17 01:09:57 +01:00
2026-08-16 21:32:23 +02:00
2026-09-20 19:59:37 +02:00
2026-09-22 20:37:16 +02:00
2026-04-25 18:40:54 +02:00
2026-09-01 20:55:13 +02:00
2026-08-20 15:55:44 +02:00
2026-08-03 15:31:17 +02:00
2026-07-09 13:51:12 +02:00
2026-09-17 21:42:16 +02:00
2026-08-31 20:41:45 +02:00
2026-08-16 22:25:15 +02:00
2026-08-25 19:36:04 +02:00
2026-08-31 21:03:08 +02:00
2026-07-21 23:03:34 +02:00
2026-07-21 20:59:20 +02:00
2026-09-17 21:08:37 +02:00
2026-04-30 01:25:04 +02:00
2026-06-19 23:52:42 +02:00
2026-08-13 21:24:09 +02:00
2026-08-20 16:49:31 +02:00
2026-09-07 22:34:47 +02:00
2026-09-17 21:08:37 +02:00
2026-08-25 18:47:22 +02:00
2026-07-29 13:31:56 +12:00
2026-03-19 18:50:59 +01:00
2026-05-31 16:28:22 +02:00
2026-06-15 23:15:04 +02:00
2026-05-21 23:35:58 +02:00
2026-08-16 23:02:27 +02:00
2026-03-30 21:12:05 +02:00
2026-07-23 14:55:34 +02:00
2026-09-07 22:34:47 +02:00
2026-08-12 17:34:20 +03:00
2026-09-22 20:42:07 +02:00
2026-08-29 11:03:48 +02:00
2026-09-08 23:19:24 +09:00
2026-09-06 17:47:00 +02:00
2026-08-29 18:23:09 +02:00
2026-09-09 18:56:51 +02:00
2026-08-29 17:15:50 +02:00
2026-08-12 17:34:20 +03:00
2026-08-25 19:16:20 +02:00
2026-09-22 20:31:53 +02:00
2026-08-20 13:25:25 +02:00
2026-09-07 22:34:47 +02:00
2026-07-30 19:40:25 +02:00
2026-07-07 23:59:19 +02:00
2026-08-12 17:34:20 +03:00
2026-09-22 00:17:44 +02:00
2026-08-29 11:03:48 +02:00
2026-02-16 18:51:30 +01:00
2026-08-25 19:36:52 +02:00
2026-08-12 22:47:00 +08:00
2026-08-18 08:15:22 +05:00
2026-08-25 19:20:48 +02:00
2026-09-07 22:34:47 +02:00
2026-09-22 20:27:16 +02:00
2026-04-21 17:29:23 +02:00
2026-08-06 19:19:18 +02:00
2026-08-25 19:09:21 +02:00
2026-07-16 17:58:19 +02:00
2026-09-07 22:34:47 +02:00
2026-09-02 08:34:31 +02:00
2026-07-21 23:26:51 +02:00
2026-08-06 18:44:14 +02:00
2026-07-29 17:18:38 +02:00
2026-07-29 17:18:42 +02:00
2026-09-19 13:01:07 +02:00
2026-09-19 13:01:07 +02:00
2026-09-19 00:53:53 +02:00
2026-09-17 23:54:33 +02:00
2026-09-19 00:53:53 +02:00
2026-09-21 23:45:08 +02:00
2026-09-21 23:45:08 +02:00
2026-09-19 00:53:53 +02:00
2026-09-17 23:54:33 +02:00
2026-09-17 23:54:33 +02:00
2026-08-16 22:11:26 +02:00
2026-06-24 19:32:13 +02:00
2026-05-22 11:51:25 +02:00
2026-06-19 12:29:43 +02:00
2026-09-17 20:55:39 +02:00
2026-06-19 23:52:42 +02:00
2026-08-25 19:20:48 +02:00
2026-07-22 17:22:20 +02:00
2026-09-09 18:30:59 +02:00
2026-09-09 01:29:25 +09:00
2026-09-08 19:17:18 +00:00
2026-07-16 17:56:19 +02:00
2026-09-07 22:34:47 +02:00
2026-06-02 00:15:50 +02:00
2026-02-26 00:08:57 +01:00
2026-08-20 13:59:57 +02:00
2026-09-17 20:01:35 +02:00
2026-08-17 00:18:59 +02:00
2026-08-13 21:17:05 +08:00
2026-09-07 16:52:20 +02:00
2026-08-06 14:08:07 +02:00
2026-06-19 23:53:20 +02:00
2026-09-07 16:52:20 +02:00
2026-09-17 20:31:39 +02:00
2026-09-17 20:31:39 +02:00
2026-06-19 23:53:20 +02:00
2026-09-07 22:34:47 +02:00
2026-03-25 00:44:03 +01:00
2026-09-07 16:52:20 +02:00
2026-07-24 18:10:37 +02:00
2026-08-23 19:44:56 +06:00
2026-04-28 15:39:13 +02:00
2026-05-12 20:49:05 +02:00
2026-08-29 12:35:38 +02:00
2026-09-17 21:08:37 +02:00
2026-09-07 22:34:47 +02:00
2026-08-16 23:04:22 +02:00
2026-07-22 19:17:23 +02:00
2026-06-25 00:25:28 +02:00
2026-06-19 12:31:07 +02:00
2026-08-29 11:03:48 +02:00
2026-08-16 21:24:52 +02:00
2026-08-25 21:13:34 +02:00
2026-09-09 19:27:08 +02:00
2026-08-16 21:12:21 +02:00
2026-08-06 19:19:18 +02:00
2026-09-22 17:25:43 +02:00
2026-08-29 17:47:23 +02:00
2026-08-25 20:09:18 +02:00
2026-08-29 18:20:21 +02:00
2026-08-26 23:02:19 +02:00
2026-06-19 23:52:42 +02:00
2026-09-09 18:40:15 +02:00
2026-05-31 15:52:27 +02:00
2026-09-19 13:32:41 +02:00
2026-04-16 17:22:52 +02:00
2026-03-15 16:07:45 +01:00
2026-08-16 22:20:49 +02:00
2026-09-17 20:01:35 +02:00
2026-07-16 22:51:07 +02:00
2026-09-07 22:34:47 +02:00
2026-09-22 20:28:01 +02:00
2026-05-01 01:48:39 +02:00
2026-08-18 15:48:05 +02:00
2026-08-25 20:50:35 +02:00
2026-08-16 02:09:38 +02:00
2026-08-16 22:20:49 +02:00
2026-08-06 18:23:21 +02:00
2026-04-28 15:39:13 +02:00
2026-04-28 15:39:13 +02:00
2026-08-16 02:19:04 +02:00
2026-09-18 18:33:02 +02:00
2026-08-25 19:18:16 +02:00
2026-06-19 23:52:42 +02:00
2026-09-07 22:34:47 +02:00
2026-08-12 17:53:35 +03:00
2026-09-02 22:15:50 +02:00
2026-07-11 21:14:39 +02:00
2026-09-22 17:25:43 +02:00
2026-09-17 22:26:52 +02:00
2026-06-25 00:25:00 +02:00
2026-08-23 19:44:56 +06:00
2026-08-26 22:11:06 +02:00
2026-08-26 22:11:06 +02:00
2026-07-08 15:41:46 +02:00
2026-08-31 23:53:24 +02:00
2026-08-26 22:11:06 +02:00
2026-09-17 20:48:42 +02:00
2026-08-29 12:46:39 +02:00
2026-05-16 18:11:52 +02:00
2026-08-26 21:56:58 +02:00
2026-08-25 19:16:20 +02:00
2026-09-17 20:16:51 +02:00
2026-08-31 23:16:19 +02:00