michael-bohr
7d580efce9
feat(feed): car rental pickup and drop-off events in the ICS feed
...
Rentals now emit two additional timed markers, Pickup and Drop-off, the
same additive shape hotels already get for check-in/check-out (#1721 ,
last unported piece). The rental's existing single-block event is
untouched.
Sides are derived in priority order: the endpoint role (from = pickup,
to = drop-off, reusing the already-loaded endpoints map); if no
endpoint on the reservation carries either role, positional first/last
by sequence (only once there's more than one endpoint, so a lone
endpoint is never both sides); otherwise reservation_time /
reservation_end_time, since imports frequently carry only that window.
Per side, an event only fires once a usable date and clock resolve;
zone resolution prefers the endpoint's stored timezone, then its
coordinates, then the reservation's linked place.
Follows the hotel `marker` closure's pattern closely (same esc/uid/
dtLine/isDate/isTime/usedZones usage, same Pickup:/Drop-off: summary
convention, same per-kind UID shape) without touching the hotel path
itself.
2026-08-13 16:10:25 +02:00
..
2026-08-07 21:07:14 +02:00
2026-08-07 22:18:14 +02:00
2026-08-10 19:54:46 +02:00
2026-08-07 16:00:12 +02:00
2026-08-13 14:06:35 +02:00
2026-08-07 22:18:14 +02:00
2026-08-07 20:27:19 +02:00
2026-08-07 19:58:12 +02:00
2026-08-11 20:28:49 +02:00
2026-08-07 19:34:31 +02:00
2026-08-07 21:47:21 +02:00
2026-08-13 14:06:35 +02:00
2026-08-13 14:06:35 +02:00
2026-08-10 17:08:54 +02:00
2026-06-16 22:22:45 +02:00
2026-08-10 19:54:46 +02:00
2026-08-09 20:54:39 +02:00
2026-08-10 21:56:13 +02:00
2026-08-09 20:54:39 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 19:54:46 +02:00
2026-08-11 16:42:49 +02:00
2026-08-11 16:42:49 +02:00
2026-06-16 22:22:45 +02:00
2026-07-25 15:12:38 +02:00
2026-08-09 19:46:00 +02:00
2026-08-11 20:58:37 +02:00
2026-08-13 14:06:35 +02:00
2026-08-13 14:06:35 +02:00
2026-07-27 22:34:41 +02:00
2026-08-11 23:01:19 +02:00
2026-08-07 18:01:24 +02:00
2026-08-10 19:54:46 +02:00
2026-08-07 15:14:14 +02:00
2026-08-11 23:01:19 +02:00
2026-08-10 22:16:22 +02:00
2026-08-10 21:33:48 +02:00
2026-08-10 21:33:48 +02:00
2026-08-09 19:46:00 +02:00
2026-08-13 14:06:35 +02:00
2026-08-13 14:06:35 +02:00
2026-08-07 16:00:12 +02:00
2026-08-10 22:02:54 +02:00
2026-08-13 16:10:25 +02:00
2026-08-10 19:54:46 +02:00
2026-07-26 15:28:55 +02:00
2026-08-11 21:13:32 +02:00
2026-08-10 19:54:46 +02:00
2026-08-12 14:14:37 +02:00
2026-08-09 19:46:00 +02:00
2026-08-10 19:54:46 +02:00
2026-08-07 18:42:53 +02:00
2026-08-13 14:06:35 +02:00
2026-06-16 22:22:45 +02:00
2026-08-10 21:49:27 +02:00
2026-07-25 18:14:37 +02:00
2026-07-25 18:14:37 +02:00
2026-08-11 22:14:12 +02:00
2026-08-11 22:14:12 +02:00
2026-08-11 09:58:37 +02:00
2026-08-07 18:42:53 +02:00
2026-08-11 22:23:51 +02:00
2026-06-16 22:22:45 +02:00
2026-08-11 16:42:49 +02:00
2026-08-11 22:23:51 +02:00
2026-08-11 11:15:32 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 19:54:46 +02:00
2026-08-11 09:58:37 +02:00
2026-08-12 12:45:29 +02:00
2026-06-16 22:22:45 +02:00
2026-08-10 17:08:54 +02:00
2026-08-12 15:14:50 +02:00
2026-08-08 23:25:57 +02:00
2026-08-10 17:08:54 +02:00
2026-07-29 20:21:09 +02:00
2026-08-10 12:24:15 +02:00
2026-08-10 12:24:15 +02:00
2026-08-11 17:04:09 +02:00
2026-08-11 22:44:20 +02:00
2026-08-11 23:11:34 +02:00
2026-08-11 23:19:39 +02:00
2026-08-08 22:27:56 +02:00
2026-08-10 19:54:46 +02:00
2026-08-08 22:27:56 +02:00
2026-08-10 13:38:26 +02:00
2026-08-08 12:09:56 +02:00
2026-08-08 12:09:56 +02:00
2026-08-02 11:36:36 +02:00
2026-08-08 12:09:56 +02:00
2026-08-11 21:13:32 +02:00
2026-08-11 22:44:20 +02:00
2026-08-10 19:54:46 +02:00
2026-08-12 17:43:22 +02:00
2026-08-01 18:36:07 +02:00
2026-08-11 16:42:49 +02:00
2026-08-09 19:13:21 +02:00
2026-08-11 09:58:37 +02:00
2026-08-11 16:42:49 +02:00
2026-08-11 23:11:34 +02:00
2026-08-10 17:08:54 +02:00
2026-08-10 17:08:54 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 12:24:15 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 19:54:46 +02:00
2026-08-12 21:37:12 +02:00
2026-07-30 17:07:12 +02:00
2026-08-12 17:43:22 +02:00
2026-08-12 21:37:12 +02:00
2026-08-11 23:01:19 +02:00
2026-08-11 09:58:37 +02:00
2026-08-10 19:54:46 +02:00
2026-08-09 22:43:05 +02:00
2026-08-10 21:49:27 +02:00
2026-08-11 21:13:32 +02:00
2026-08-11 21:13:32 +02:00
2026-08-10 13:38:26 +02:00
2026-07-26 22:24:14 +02:00
2026-08-07 15:14:14 +02:00
2026-08-11 11:15:32 +02:00
2026-08-07 20:27:19 +02:00
2026-08-10 21:49:27 +02:00
2026-06-16 22:22:45 +02:00
2026-08-11 17:00:05 +02:00
2026-08-10 19:54:46 +02:00
2026-07-26 15:28:55 +02:00
2026-08-08 22:27:56 +02:00
2026-08-09 19:13:21 +02:00
2026-08-09 19:13:21 +02:00
2026-08-10 19:54:46 +02:00
2026-08-01 12:45:35 +02:00
2026-07-29 21:39:51 +02:00
2026-08-09 22:43:05 +02:00
2026-08-10 22:02:54 +02:00
2026-08-11 09:58:37 +02:00
2026-08-09 19:13:21 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 13:38:26 +02:00
2026-08-11 16:42:49 +02:00
2026-08-10 13:38:26 +02:00
2026-08-11 21:13:32 +02:00
2026-08-10 19:54:46 +02:00
2026-08-12 00:22:32 +02:00
2026-08-10 21:49:27 +02:00
2026-08-08 22:27:56 +02:00
2026-08-11 16:42:49 +02:00
2026-08-11 10:17:28 +02:00
2026-08-12 00:38:41 +02:00
2026-08-12 00:38:41 +02:00
2026-07-26 14:55:13 +02:00
2026-08-07 21:47:21 +02:00
2026-08-08 11:14:24 +02:00
2026-08-08 11:14:24 +02:00
2026-08-10 13:38:26 +02:00
2026-08-11 09:58:37 +02:00
2026-06-16 22:22:45 +02:00