Unexpected behaviour from the new TimeZone function

This is hard for me to explain but I will do my best.

I'm using the new TimeZone function to display calendar event times in their local time zones.

For example: I'm flying from Boston to Hong Kong on the 3rd of Sept.
Currently I am in Hong Kong (home) and it is 10AM on the 1st of September.
That means the flight is the 1st event, on day 3 of my calendar. (a0d = 1 Sept, a1d = 2 Sept, a2d = 3 Sept)

$ci(title, 0, a2d)$
$df(hh:mm, ci(start, 0, a2d))$

If I leave the TimeZone field in default. It will display the correct title and the time of the flight in Hong Kong time (current location). Like this:


What I want to do however, is show the flight time in Boston time.
So I then change the TimeZone field to "America/New_York".

But now it displays the title and time of the first event on the day before (2nd Sept).
I guess this happens because it is 10AM on the 1st right now in Hong Kong. But in New York it is still the 31st of Aug (10PM). So a2d is now referencing the events on the 1st of September in stead of the 2nd.
In two hours from now, when New York goes to 1st of Sept, the correct information shows. But not now.

I have no idea how to solve this problem.
Any help is appreciated.

Will give a look into this, unfortunately Calendar and TZs are very complex to deal with