Еще один способ решения этой проблемы - вместо вызова AppleScript из PHP и попытки программирования вокруг всех крайних случаев, которые могут привести к сбою (пользователь делает что-то еще на сервере, пользователь не вошел в систему, AppleScript тоже принимаетдолго работать и т. д.) будет означать, что сервер просто записывает файл iCal для каждой встречи в определенную директорию.Затем выполните действие iCal / Automator, которое выполняется периодически (например, каждые 5 минут), которое импортирует новый файл iCal встреч из указанного каталога и удаляет его после его импорта в iCal.
Что касается создания файлов iCal изПохоже, PHP существует во многих библиотеках, которые предлагают эту функциональность, включая: Benuu , qCal , iCalcreator , iCal Maker и, вероятно, больше.Любой из них должен позволить вам создать файл .ics
или .ical
, который совместим с iCal и легко импортируется.Файл iCal, безусловно, более переносим, чем попытка передать различные биты данных, такие как имя, дата и время, местоположение и т. Д., В AppleScript.
И для периодического запуска действия AppleScript / Automator вам необходимоможно использовать отличное приложение Lingon , хотя это App Store только сейчас.Также можно вручную написать файлы launchd
.plist
(см. man launchd.plist
).