Обновите подписанный календарь Google

Во-первых, позвольте мне объяснить требования, что я должен сделать.

Я работаю с проектом Laravel. Проект Laravel предоставит пользователям веб-URL. Пользователь подпишется на этот календарь в календаре Google с помощью функции Добавить URL. Теперь, когда какие-либо события обновляются в проекте Laravel, это также должно быть отражено в календаре Google.

Теперь, с какой проблемой я сталкиваюсь.

Пользователь успешно подписывается на календарь. Но при обновлении любого события это обновление не отражается в календаре Google. Я знаю, это не отразится в ближайшее время. Надо подождать, пока гугл проверит наличие обновлений (думаю, это один день). Но я должен установить этот период времени в файле календаря (например, 1 час). Так гугл календарь должен проверять наличие обновлений каждый час.

Некоторые моменты, которые я знаю (я не уверен, что они правильные или неправильные)

  • URL календаря должен иметь webcal://не http://
  • Вы можете установить время обновления в файле .ics
  • Google автоматически проверяет наличие обновлений через некоторое время (возможно, 3 часа или день)

Что я сделал

Я создал URL (т.е. https://example.com/icalendar) который возвращает файл .ics

Вот код (я использовал https://github.com/markuspoerschke/iCal пакет)

$prodID = 'https://example.com/icalendar';

$vCalendar = new Calendar($prodID);
$vCalendar->setName('PlanetX Leaves');
$vCalendar->setPublishedTTL('PT1H');

$vEvent = new Event('EVENT1ID');
$vEvent
->setDtStart(new \DateTime('2018-11-06'))
->setDtEnd(new \DateTime('2018-11-06'))
->setSummary('Test Event 1')
->setNoTime(true);
$vCalendar->addComponent($vEvent);


$vEvent = new Event('EVENT2ID');
$vEvent
->setDtStart(new \DateTime('2018-11-14'))
->setDtEnd(new \DateTime('2018-11-16'))
->setSummary('Event 2')
->setNoTime(true);
$vCalendar->addComponent($vEvent);

return response($vCalendar->render())->withHeaders([
'Content-Type'        => 'text/calendar; charset=utf-8',
'Content-Disposition' => 'attachment; filename="example-calendar.ics"',
]);

Пользователь подписывается на календарь webcal://example.com/icalendar URL. Календарь успешно подписан. Но проблема в том, что я проверяю обновления календаря Google на день. Я должен установить это время 1 час. Я гуглил, а также искал по стеку overflow. Но я не нахожу для этого никакого пути. Если кто-то знает ответ, он будет оценен.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector