From 338d6ea0676a4237162b3b8a2acf1e749bb73c31 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Tue, 15 Jul 2025 15:31:05 +0200 Subject: [PATCH] Fix Schengen time tracking to use arrival date for long-haul flights MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use arrival date instead of departure date when entering Schengen countries to correctly handle overnight flights that cross date boundaries. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- agenda/schengen.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/agenda/schengen.py b/agenda/schengen.py index 81a9fad..8e8fc3a 100644 --- a/agenda/schengen.py +++ b/agenda/schengen.py @@ -142,7 +142,7 @@ def extract_schengen_stays_from_travel( if current_location and is_schengen_country(current_location): # Currently in Schengen if to_country and not is_schengen_country(to_country): - # Exiting Schengen + # Exiting Schengen - use departure date if entry_date: stays.append( SchengenStay( @@ -156,8 +156,15 @@ def extract_schengen_stays_from_travel( else: # Currently outside Schengen if to_country and is_schengen_country(to_country): - # Entering Schengen - entry_date = travel_date + # Entering Schengen - use arrival date for long-haul flights + entry_travel_date = travel_date + if item.get("arrive"): + arrive_date = item.get("arrive") + if isinstance(arrive_date, datetime): + arrive_date = arrive_date.date() + elif isinstance(arrive_date, date): + entry_travel_date = arrive_date + entry_date = entry_travel_date current_location = to_country