¿Puedo cambiar los detalles del evento del calendario con AppleScript?

4

Soy un desarrollador experimentado, pero muy nuevo en AppleScript.

Me gustaría cambiar algunos de los detalles de un evento en un calendario.

Encontré la Biblioteca en el Editor de secuencias de comandos y me dirigí a la sección Calendario. No estoy seguro de a dónde ir desde aquí.

En particular, me gustaría cambiar un detalle que no aparece en la Biblioteca, por lo que no soy del todo optimista. Ese detalle es la zona horaria , en particular para las horas de inicio y finalización. Esta información se encuentra en los datos ical vevent que están en los datos sin procesar.

Hasta ahora sigo experimentando con leer lo que hay allí:

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

Mi sistema actual es MacOS 10.12 Sierra.

    
pregunta Manngo 04.03.2017 - 04:15

1 respuesta

2

Shane Stanley tiene una biblioteca que te permite modificar la zona horaria: enlace

Actualizar a mi respuesta original:

De hecho, su pregunta me instó a usar la biblioteca y encontré un error en el código de modificación de la zona horaria, que ahora está arreglado.

Para crear (o modificar) un evento que no necesita Calendario. Solo usa esta biblioteca.

El código aquí es casi el 100% de los ejemplos, acabo de agregar la línea sobre la modificación de la zona horaria:

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

Puede encontrar las zonas horarias disponibles de esta manera:

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 discusión en sí está aquí: enlace

    
respondido por el brandelune 04.12.2017 - 15:31

Lea otras preguntas en las etiquetas