Не удается добавить событие календаря с помощью ‘.ics’ в Outlook 365

#php #laravel

#php #laravel

Вопрос:

Кажется, я не могу заставить свой файл ‘.ics’ работать с Outlook 365 для Mac. Когда я пытаюсь щелкнуть правой кнопкой мыши и открыть Outlook, он просто прикрепляет его к пустому электронному письму. Я также пытался просто перетащить его в свой календарь, но, похоже, это не работает.

Он работает для iCal от Apple, и вся информация передается туда должным образом.

Я создаю файл на PHP следующим образом:

 header("Content-Type: text/Calendar; charset=utf-8");
header("Content-Disposition: attachment; filename=TestEvent.ics");
$file = "BEGIN:VCALENDARn";
$file .= "VERSION:2.0n";
$file .= "PRODID:myappidn";
$file .= "METHOD:PUBLISHn";
$file .= "BEGIN:VEVENTn";
$file .= "UID:somerandomIDIgeneraten";
$file .= "DTSTAMP:" . Carbon::now() . "n";
$file .= "DTSTART:" . gmdate("YmdTHisZ", strtotime($event->begin_time)) . "n";
$file .= "DTEND:" . gmdate("YmdTHisZ", strtotime($event->end_time)) . "n";
$file .= "LOCATION:" . $event->location . "n";
$file .= "SUMMARY:" . $event->summary . "n";
$file .= "DESCRIPTION:" . $event->description . "n";
$file .= "END:VEVENTn";
$file .= "END:VCALENDARn";
echo $file;
  

Комментарии:

1. он попытается прикрепиться к пустому электронному письму, если файл ical недействителен. можете ли вы показать содержимое фактического файла, который вы сгенерировали, вместо кода php. также ваш DTSTAMP должен иметь формат gmdate

2. Это содержимое фактического файла

3. Похоже, что изменение DTSTAMP на gmdate(«Ymd THis Z», strtotime(Carbon::now ())) открыло его как новую встречу, которую я должен был сохранить. Спасибо за помощь.