Синхронизация нескольких iCalendars (Airbnb, Flipkey, Календарь Google и т. Д.)

Я разрабатываю сайт для аренды квартир. Я использую тему WordPress, которую я настраивал, вместо «комнат» он использует «квартиры» и плагин для бронирования. Каждая из этих квартир также рекламируется в Airbnb и FlipKey.

Мне нужно синхронизировать все календари, так что, например, кто-то заказывает квартиру в Airbnb, эта квартира автоматически помечена как «не доступная» как на веб-сайте, так и на Flipkey. Это делается с использованием фидов, которые предоставляются обеими компаниями. Существует выходной канал и входной канал для обоих, поэтому, если я вставляю вывод на входе другого и наоборот, вещь работает отлично.

Теперь мне нужен способ централизовать календарь в одной системе и использовать эту систему для подачи вкладов Airbnb, Flipkey и моего собственного плагина бронирования wordpress. Я пробовал это с:

PHP iCalendar (он может, как календарь Google, получать каналы, но это не так, насколько я знаю, – обеспечивает единый вывод). Службы, как 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-файлов, сколько хотите.