Estoy tratando de escribir un AppleScript bastante simple para automatizar el proceso de repetición de eventos del Calendario de forma masiva. Específicamente, quiero que cada evento en un calendario dado dentro de un lapso de tiempo dado tenga su repetición programada para ser quincenal.
Esto parece una tarea bastante rutinaria y rápida, pero la secuencia de comandos a continuación, cuando se ejecuta en aproximadamente 30 eventos en un lapso de una semana, toma aproximadamente una hora y media. Además, esto solo es cierto si dejo la computadora intacta mientras se ejecuta el script; si trato de usar la computadora portátil a la vez, la secuencia de comandos falla con un error que indica que el evento Apple se agotó.
De hecho, iterar a través de los eventos del calendario y acceder o modificar cualquiera de sus propiedades parece tomar un tiempo astronómicamente largo en AppleScript (por ejemplo, simplemente llamando a log
en el summary
de cada evento). He intentado mover la recuperación de eventos a una variable separada y usar atributos distintos a las fechas de eventos para obtener los eventos, pero nada parece mejorar el rendimiento.
¿Cuál es la razón de esta increíble lentitud y qué se puede hacer para aliviarla? ¿O es esto simplemente una parte inherente de AppleScript / macOS Scripting Bridge / Calendar?
Aquí está el script en cuestión:
tell application "Calendar"
set cal to calendar 1 whose name is "Schedule"
set theStartDate to date "Sunday, January 27, 2019 at 00:00:00"
set theEndDate to date "Saturday, February 2, 2019 at 00:00:00"
repeat with e in (every event of cal whose start date is greater than theStartDate and start date is less than theEndDate)
set esStartDate to e's start date
set theWeekday to weekday of esStartDate
set lower to text 1 thru 2 of (theWeekday as string)
set upper to do shell script "echo " & lower & " | tr [:lower:] [:upper:]"
set e's recurrence to "FREQ=WEEKLY;INTERVAL=2;UNTIL=20190602T035959Z;BYDAY=" & upper & ";WKST=SU"
end repeat
end tell
Al observar la consola de "Respuestas", el script se ralentiza tanto en el Evento de Apple inicial count every event of calendar id "[ID]"
como en cada intento de modificar la repetición de un evento.
Estoy ejecutando macOS Mojave 10.14.2 (Calendario 11.0) en una MacBook Pro a principios de 2015.