Oggi ho creato una delle mie solite cose malate per facilitarmi la vita. Riassunto della storia: ogni settimana compro i biglietti per il Frecciabianca tra Verona e Milano, per spostarmi da casa all’università (non sono pendolare, ma comunque due viaggi a settimana li faccio).
Trenitalia, stupefacentemente, inserisce in allegato alla mail di conferma dell’acquisto un file ICS, che può essere importato in iCal (pardon, Calendario). Questo però ha la fastidiosa particolarità di non essere un normale evento, ma risulta un invito. E poi ha un titolo estremamente lungo, mentre io voglio questo formato: “Treno – CARROZZA.POSTO – PENULTIMA-DEL-PNR”. Cioè tutti i dati che mi serve comunicare al controllore, a portata di Centro Notifiche su iPhone o su iPad.
Finora ho sempre svolto l’operazione in maniera semi-manuale, perché Mail un po’ aiuta riconoscendo data e ora di partenza, basta mettere il mouse sopra l’orario, cliccare la freccia e selezionare aggiungi al calendario.
Decisomi ad automatizzare il tutto, il primo passo è stato creare una regola di Mail, che riconoscesse il file Aggiungi_in_agenda-DATIBIGLIETTO.ics, e lanciasse un AppleScript (che odio, ma è un male necessario) che salvasse il file nella cartella dei download.
L’Apple Script è questo, e va salvato nella ~/Library/Application Scripts/com.apple.mail/ (per raggiungere rapidamente la cartella scegliete “Apri nel Finder” nel menu a tendina che le regole di Mail presentano durante la scelta dell’AppleScript da eseguire).
La regola cercherà invece “Il Tuo Biglietto Trenitalia” nell’oggetto e “agenda” nel nome dell’allegato, ed eseguirà l’AppleScript.
In questo modo verrà salvato nella cartella dei download, pronto per essere elaborato da Hazel.
La regola cerca i file contenenti “Aggiungi_in_agenda” (non controlla l’estensione, ma dubito che mi capitino altri file con quel nome), esegue uno shell script che richiama un altro script PHP (vedi sotto), mostra una notifica e sposta il file nel cestino. Scegliete la voce embedded script, e inserite:
php "/path/to/script.php" $1
Per inserire il path corretto (che, attenzione, va scritto tra virgolette) consiglio di trascinare il file nella finestra di Hazel dove state inserendo lo script da eseguire.
Il cuore di tutto è uno script PHP che legge il file in arrivo e lo riformatta secondo il mio personalissimo gusto. Liberissimi di cambiarlo. Ho scelto PHP perché è il linguaggio che conosco meglio e con cui ho rapidamente potuto creare quanto mi serviva, sfruttando l’ottima classe CalFileParser creata da Michael Mottola.
Come avrete notato dovete inserire nella variabile $saveTo
il percorso dove volete salvare il file. Consiglio la cartella dei download, tanto il file verrà eliminato a breve.
Ultimo passo, dire ad Hazel di aprire il file ICS modificato:
Credo che la regola sia abbastanza auto esplicativa. Notare il fatto che il file viene spostato nel cestino, malgrado questo sia aperto in iCal: molto comodo. Non resta che confermare in Calendario l’aggiunta dell’evento.
7 risposte su “Aggiungere automaticamente i biglietti di Trenitalia al calendario”
Mito! me lo stavo scrivendo da solo ma poi ho trovato questo post… Ha funzionato tutto al primo colpo, complimenti!
Ci contavo che ci fosse qualcuno con lo stesso problema, sono contento di esserti stato utile!
Grazie da un pendolare Roma Napoli
Ciao! Io invece vorrei chiedervi come fare ad eliminare il viaggio trenitalia dal calendario dopo averlo importato in iCal a seguito della ricezione della mail da trenitalia. Grazie mille per l’aiuto!
Purtroppo non avrei idea di come fare, mi spiace 🙁
come si può fare con calendario office con windows?
Temo di non poterti aiutare, non uso Windows