我正在开发一个公寓出租网站。我使用的是我调整过的 wordpress 酒店主题,因此它使用“公寓”和一个预订插件而不是“房间”。这些公寓中的每一个也在 Airbnb 和 FlipKey 上做广告。

我需要的是能够同步所有日历,例如,如果有人在 Airbnb 预订公寓,该公寓会在网站和 Flipkey 中自动标记为“不可用”。这是使用两家公司提供的提要 .ics 完成的。两者都有一个输出提要和一个输入提要,所以如果我将输出粘贴到另一个的输入中,反之亦然,事情就完美了。

现在,我需要的是一种将日历集中在一个系统中并使用该系统来提供 Airbnb、Flipkey 和我自己的 wordpress 预订插件的输入的方法。我已经尝试过:

PHP iCalendar(它可以像谷歌日历一样获取提要,但它不 - 据我所知 - 提供统一的输出)。
作为 http://www.accommodationcalendar.com 的服务只获得输入,但也没有输出。

也许 http://www.davical.org/ 可能是一个不错的选择,但由于我使用的是共享主机,我无法安装它(据我所知)-原因是共享主机只有 MySql 而不是 PostgreSQL。

有谁知道如何解决这个问题?

谢谢你!

最佳答案

经过一番研究,我找到了这个解决方案:

1)使用这个库:http://kigkonsult.se/iCalcreator/

2)获取ICS提要并合并它们,然后创建一个新的ICS(创建“导入”和“导出”文件夹并赋予它们写入权限)。

require_once('../classes/iCalcreator/iCalcreator.class.php');

$config2 = array("unique_id" => "kigkonsult2.se",
     "directory" => "import",
);
$vcalendar2 = new vcalendar($config2);

$vcalendar2->setConfig("url" , "https://someweb/cal.ics");

$vcalendar2->parse();

$vcalendar2->setConfig("url" , "https://anotherurl/cal2.ics");
$vcalendar2->parse();

$vcalendar2->setConfig("directory", "export");
$vcalendar2->setConfig("filename", "icalmerge3.ics");
$vcalendar2->saveCalendar();


echo "done";

3) 创建一个 CRON 调度器来循环运行这个文件。将 Airbnb 和 Flipkey 都指向创建提要的 URL。您可以根据需要使用任意数量的输入 ICS 文件。

关于php - 同步多个 iCalendar(Airbnb、Flipkey、Google 日历等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27239722/

10-10 22:49