There should be a timezone declaration in the ical file you can use.
The RFC places this on the DTSTART
, for example:
DTSTART;TZID=America/New_York:19980119T020000
But ical is not a very exact "science", it seems like everybody uses it different. I've seen timezone declarations like this:
X-WR-TIMEZONE:Europe/Berlin
which only show up once in the ical file.
After creating a DateTime object you can use DateTime::setTimezone to set it. Example from the PHP documentation:
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";