首先,让我解释一下我需要做的事情。
我正在使用Laravel项目。 Laravel项目将为用户提供Webcal URL。用户将通过“添加URL”功能在Google日历中订阅该日历。现在,当任何事件在Laravel项目中更新时,它也应反映在Google日历中。
现在,我要面对什么问题。
用户已成功订阅日历。但是在更新任何事件时,该更新都不会反映在Google日历中。我知道这不会很快反映出来。我们必须等到谷歌检查更新(我认为是一天)。但是我必须在日历文件中设置该时间段(例如1小时)。因此,Google日历应该每隔一小时检查一次更新。
我知道一些观点(我不确定这些观点是对还是错)
webcal://
,而不是http://
我做了什么
我已经创建了一个返回.ics文件的URL(即https://example.com/icalendar)
这是代码(我使用过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小时。我已经谷歌搜索,也搜索了计算器。但是我没有找到任何办法。如果有人知道答案,将不胜感激。