Come posso ripetere un evento del calendario ogni x secondi in macOS Sierra?


0

Sto cercando di impostare eventi di calendario nel Calendario di macOS Sierra che si ripetono ogni 2.551.440 secondi (che sembra essere il periodo sinodico della Luna).

Alla fine, voglio un calendario che fornisca il sorgere della Luna e gli orari stabiliti per la mia posizione, e deve anche elencare la fase lunare (ad esempio Luna Piena, Luna Nuova, ecc.). Ho trovato molti esempi su Internet in cui le persone hanno creato manualmente gli eventi, ma è incredibilmente noioso (un evento al giorno per anni!), Ed è basato su diversi fusi orari (e quindi non mi servono).

Ho visto dalle specifiche ICS che il formato del file stesso supporta eventi che si ripetono ogni x secondi. Ho quindi esportato un evento come file ICS, quindi ho modificato il file ICS in TextEdit, ma devo aver sbagliato il codice, poiché non è stato reimportato in macOS Calendar con l'intervallo di ripetizione corretto. Invece, ha importato un singolo evento senza ripetizioni.

Qualcuno può spiegare come procedere?

Ho trovato il generatore RRULE , ma che supporta solo intervalli orari, non secondi, quindi non è abbastanza preciso per le mie esigenze.

Ho considerato l'esecuzione di uno script bash per generare l'evento (che verrebbe eseguito come cron job ogni 2.551.440 secondi), ma ciò darebbe solo un mese di preavviso. Preferirei installarlo indefinitamente.

Un'altra opzione potrebbe essere quella di scrivere uno script in Python per creare singoli file di eventi ICS; questo sarebbe anche noioso ...

Capisco che questo non può essere fatto direttamente in Calendar; molto probabilmente la soluzione sarà modificare manualmente ogni file ICS per impostare correttamente la ricorrenza e quindi importarli in Calendar ... Non so proprio come ...

Grazie in anticipo per ogni pensiero.


Saresti disposto a condividere il motivo per cui devi farlo? Avere quel contesto può aiutare la comunità a trovare una soluzione "fuori dagli schemi" che soddisfi le tue esigenze, ma che potresti non aver preso in considerazione (ad esempio non coinvolgendo l'app Calendar predefinita di macOS Sierra). Inoltre, puoi condividere la tua posizione (ovviamente non esattamente, ma forse la tua città).
Monomeeth

Sicuro. Alla fine, il calendario verrà utilizzato per pianificare l'inquinamento luminoso per gli astronomi dilettanti. Sapere qual è la fase della Luna e quando sorge e tramonta, aiuta le persone a pianificare le loro sessioni fotografiche (per fotografare galassie distanti sono necessari cieli davvero bui e la Luna è una delle principali fonti di inquinamento luminoso). Sono a Melbourne, in Australia; Sto programmando di creare diversi calendari diversi per diversi fusi orari in Australia, però. Grazie! :)
ZPMMaker,

Mi dispiace fare un'altra domanda, ma mi chiedo perché non dovresti semplicemente condividere link come: Brisbane , Melbourne , Adelaide ecc. E scorrere verso il basso per visualizzare la sezione Astronomia (sotto le previsioni di 10 giorni) per pianificare l'inquinamento luminoso? Oppure c'è una funzione particolare che stai cercando di ottenere tramite l'app Calendario?
Monomeeth

Perché le persone vogliono invece una soluzione basata su Calendar.
ZPMMaker,

Risposte:


0

So che questa non sarà la risposta che stavi cercando.

Nella tua domanda hai dichiarato:

Ho quindi esportato un evento come file ICS, quindi ho modificato il file ICS in TextEdit, ma devo aver sbagliato il codice, poiché non è stato reimportato in macOS Calendar con l'intervallo di ripetizione corretto.

Sfortunatamente probabilmente non hai sbagliato il codice.

Mentre hai ragione nel dire che la specifica ICS supporta effettivamente intervalli fino al secondo, il problema è che l'app Calendar macOS predefinita non lo supporta (almeno non in termini di valori di ripetizione o ricorrenza ). Quindi, ciò che vuoi fare non è possibile con l'app Calendario macOS predefinita. In effetti, il problema che hai è duplice, poiché l'app Calendario non riconosce gli intervalli:

  1. meno di un giorno
  2. non rappresentato come numeri interi

Per spiegarlo ulteriormente, il primo problema sopra riportato non sarebbe necessariamente un problema se l'app Calendar accettasse un valore decimale con un numero sufficiente di punti decimali, poiché in tal caso è possibile inserire un evento che si ripete ogni 29,53 giorni.

Tuttavia, anche se l'app avesse accettato un valore decimale, sarebbe probabilmente limitata a non più di una cifra decimale, che non sarà abbastanza precisa quando si tratta di giorni.

Sfortunatamente, MS Outlook non funzionerà neanche per te (non accetta niente di meno degli intervalli giornalieri e anche se puoi inserire valori decimali, li arrotonda solo verso l'alto o verso il basso).

E Fantastical, sebbene un'eccellente app di calendario per macOS, è limitata come il calendario predefinito in questo senso.

Invece, ciò che dovrai fare è:

  • trovare una soluzione che registri intervalli più brevi di un giorno o funzioni con valori decimali oppure
  • scarica uno dei calendari astronomici esistenti per questo scopo e poi modifica manualmente il file ICS per cambiare il fuso orario in base ai vari australiani di cui hai bisogno.

Spiacenti, questo non è quello che stavi cercando, ma forse la seconda opzione "scarica e modifica" funzionerà per te senza troppi sforzi.


Grazie per i tuoi pensieri, @Monomeeth; Lo apprezzo molto. In realtà, ho pensato anche a quello, e ho chiesto a un amico, che mi ha aiutato a scrivere una sceneggiatura per fare un giro e creare gli eventi individualmente piuttosto che creare un singolo evento ripetuto. Detto questo, alla fine non ha aiutato, perché l'orbita della Luna è inclinata rispetto all'equatore terrestre, e quindi non c'è un intervallo costante tra le fasi. Alla fine, il mio amico ha scoperto che la US Navy ha un'API che fornisce tutti i dati di cui ho bisogno . Ciò ha risolto il problema.
ZPMMaker

È fantastico, sono contento che tu abbia trovato una soluzione! :)
Monomeeth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.