Posso modificare i dettagli degli eventi del calendario con AppleScript?

4

Sono uno sviluppatore esperto, ma molto nuovo per AppleScript.

Vorrei modificare alcuni dettagli di un evento in un calendario.

Ho trovato la libreria nello Script Editor e sono entrato nella sezione Calendario. Non sono affatto sicuro di dove andare da qui.

In particolare, vorrei modificare un dettaglio che è non elencato nella libreria, quindi non sono del tutto ottimista. Questo dettaglio è il fuso orario , in particolare per i tempi di inizio e fine. Questa informazione è nei dati ical vevent che si trova nei dati non elaborati.

Finora sto ancora sperimentando la lettura di ciò che è presente:

set calendarName to "Work Travel"
set now to date "Wednesday, 1 March 2017 at 12:00:00 am"

tell application "Calendar" to tell calendar calendarName
    set currentEvents to get every event where its start date ≥ now
    repeat with e in currentEvents
        set start to start date of e
    end repeat
end tell

Il mio sistema attuale è MacOS 10.12 Sierra.

    
posta Manngo 04.03.2017 - 04:15
fonte

1 risposta

2

Shane Stanley ha una libreria che ti permette di modificare il fuso orario: link

Aggiornamento alla mia risposta originale:

In effetti, la tua domanda mi ha spinto a usare la libreria e ho trovato un bug nel codice di modifica del fuso orario, che ora è stato corretto.

Per creare (o modificare) un evento che non è necessario Calendario. Usa questa libreria.

Il codice qui è quasi al 100% dagli esempi, ho appena aggiunto la riga sulla modifica del fuso orario:

use script "CalendarLib EC" -- put this at the top of your scripts
use scripting additions

    set d1 to current date
    set d2 to d1 + 1 * hours
    set theStore to fetch store
    set theCal to fetch calendar "test" cal type cal cloud event store theStore -- change to suit
    set theEvent to create event event store theStore destination calendar theCal event summary "A test event" starting date d1 ending date d2 event location "Around here" event description "some notes" without runs all day
    set theEvent to modify zone event theEvent time zone "Asia/Tokyo"
    store event event theEvent event store theStore
    return event identifier for event theEvent

Puoi trovare i fusi orari disponibili in questo modo:

use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions

current application's NSTimeZone's knownTimeZoneNames() as list

La discussione stessa è qui: link

    
risposta data 04.12.2017 - 15:31
fonte

Leggi altre domande sui tag