2016-11-30 50 views
0

我試圖在macOS Sierra's Calendar中設置日曆事件,每隔2,551,440秒(恰好是月亮的朔望期)重複。該系統使用ICS規範。最終,我想要一個日曆,爲我的位置提供月亮升起和固定時間,並且還需要列出月球階段(例如滿月,新月等)。我在互聯網上發現了大量人工創建事件的例子,但是這非常乏味(一年中每天有一個事件!),並且它們基於不同的時區(因此對我來說沒有用處) 。如何每隔x秒在ICS文件中重複事件?

我從ICS規範中看到,文件格式本身支持每隔x秒重複出現的事件。我將事件作爲ICS文件(來自日曆)導出,然後在文本編輯器中編輯ICS文件,但我必須弄錯代碼,因爲它沒有以正確的重複間隔重新導入macOS日曆。相反,它導入了一個沒有重複的事件。這也有可能,我得到的代碼是正確的,但日曆丟棄後,進口...

有人可以請解釋如何去做這件事嗎?

我發現the RRULE Generator,但它只支持每小時間隔,而不是秒,所以對於我的需求不夠精確。

我認爲運行一個bash腳本來生成事件(每2551,440秒鐘就會運行一個cron作業),但那隻會給出一個月的通知。我寧願讓它無限期地建立。

另一種選擇可能是在Python中編寫腳本來創建單個ICS事件文件;這也將是單調乏味的......

據我所知,這不能直接在日曆中完成;該解決方案將最有可能手動編輯每個ICS文件,以設置正確的循環,然後將其導入日曆...我只是不知道如何...

...或有日曆應用程序在哪裏可以讓你設置每隔x秒重複出現的事件?如果是這樣,我可以創建該事件,導出它,然後將其導入日曆...

在此先感謝您的任何想法。

回答

0

所以,我想出了這一個。

  1. Apple日曆,Google日曆以及幾乎所有的日曆應用程序都不支持每隔x秒重複的事件。 ICS格式本身,而不是程序。

  2. 月球處於傾斜的軌道,所以這是我不想要的解決方案。

  3. 發佈月球上升/下降和相位數據的US Navy has an API。我保存了來自這個頁面的響應(一個JSON文件),並且執行了一些Python代碼來提取所需的數據,然後創建了一個Python腳本爲每個事件創建單獨的.ICS文件(每個Moonrise一個事件)(即不是一個事件每隔x秒重複一次)。然後我將這些ICS文件導入到macOS日曆中。

希望這可以幫助其他人誰需要應對未來類似的情況......