4 votos

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

Soy un desarrollador experimentado, pero muy nuevo en AppleScript.

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

He encontrado la Biblioteca en el Editor de script, y me he dirigido a la sección Calendario. No estoy en absoluto seguro de dónde ir desde aquí.

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

Hasta ahora estoy experimentando con la lectura de lo que hay:

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.

1voto

M Brown Puntos 128

Shane Stanley tiene una biblioteca que permite modificar la zona horaria: https://www.macosxautomation.com/applescript/apps/Script_Libs.html


Actualización de mi respuesta original:

De hecho, tu pregunta me llevó a utilizar la biblioteca y encontré un error en el código de modificación de la zona horaria, que ya está solucionado.

Para crear (o modificar) un evento no se necesita Calendar. Sólo tienes que utilizar esta biblioteca.

El código aquí es casi 100% de los ejemplos, sólo añadí 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

El debate en sí está aquí: https://lists.apple.com/archives/applescript-users/2017/Dec/msg00006.html

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X