この問題に対処する別の方法は、PHP から AppleScript を呼び出して、失敗の原因となる可能性のあるすべてのエッジ ケース (ユーザーがサーバーで何か他のことをしている、ユーザーがログインしていない、AppleScript の実行に時間がかかりすぎる) を回避するようにプログラムしようとすることです。など)、特定のディレクトリへの予定ごとにサーバーに iCal ファイルを書き出すだけにすることです。次に、定期的に (たとえば 5 分ごとに) 実行される iCal/Automator アクションを用意します。このアクションは、新しい予定の iCal ファイルを上記のディレクトリからインポートし、iCal にインポートされると削除します。
PHP から iCal ファイルを作成する限り、この機能を提供する多くのライブラリが存在するようです。たとえば、 Benuu、qCal、iCalcreator、iCal Makerなどがあります。これらのいずれかを使用すると、iCal と互換性があり、簡単にインポートできるファイル.ics
またはファイルを生成できます。.ical
iCal ファイルは、名前、日付と時刻、場所などのさまざまなデータを AppleScript に渡そうとするよりも、確かに移植性が高くなります。
また、AppleScript/Automator アクションを定期的に実行するには、優れたLingonアプリケーションを使用できますが、現在は App Store のみです。launchd
.plist
ファイルを手動で書き込むこともできます (「参考文献」を参照man launchd.plist
)。