Um palpite: o padrão parece ser sempre subtrair 4: 30h mais do que deveria porque o DTEND vem antes do DTSTART (especificamente 5:00 vem antes das 9:30, independentemente do fuso horário e DTSTART-DTEND é igual a exatamente 4: 30h) então talvez assuma o começo & os horários de término são revertidos e, portanto, decide mostrar DTEND (você acha que vê DTSTART, mas na verdade vê DTEND)