Я не знаю ни одной встроенной функции PHP или формата даты, поэтому вам нужно создать свою собственную функцию.Примерно так:
function getIcalDate($time, $inclTime = true)
{
return date('Ymd' . ($inclTime ? '\THis' : ''), $time);
}
Как указал Хакре в комментарии, средство форматирования даты не может различить дату со временем и дату без времени - вам придется решить логику, стоящую за этим.