Supportvragen Mac > macOS (en OS X) en software daarvoor

Automator-actie voor Agenda werkt niet goed

<< < (2/3) > >>

Marjeasoft:
Het lukt inderdaad met recente activiteiten. Maar activiteiten in een verleden (2012) worden niet gevonden, terwijl ze er wel zijn. Het is voor mij wel belangrijk om die activiteiten wel te vinden zodat ik ze kan verwijderen.

Op een of andere manier heeft het systeem, tijdens het synchroniseren met mijn iphone, bepaalde activiteiten honderden keren gedupliceerd (in het verleden). Wat ik nu doe, is per maand deze activiteiten handmatig selecteren en vervolgens verwijderen. Per actie is het systeem een kwartier bezig. Tussendoor maak ik vóór elke actie een backup van mijn agenda met de export functie, want het is ook gebeurd dat na een actie mijn agenda helemaal leeg was. Dit is wel omslachtig!

Ook al geef ik een datum in het verleden bij de zoek/filter actie, wordt niets gevonden. Onbegrijpelijk! De activiteiten staan toch in de agenda?!

mcmt:
Bug, performantie-redenen, stiefmoederlijke behandeling van Automator, ... Er kunnen verschillende factoren meespelen. Zoeken op naam naar oude events binnen Agenda lukt bijv. blijkbaar wel.

Onderstaande JavaScript code laat toe om te zoeken naar events die een bepaalde titel bevatten, met startdatum / einddatum in een bepaalde periode. Het script kan gebruikt worden in Automator als JavaScript taak (of stand-alone in de ScriptEditor).


--- Code: ---// true => list events to be deleted
// false => delete events found (use with care!)
retrieveOnly = true

function run(input, parameters) {
const application = Application("Calendar")
const calendar = application.calendars.byName("Automator")
const condition = {summary: {_contains: "test automator"}, startDate: {_greaterThanEquals: new Date("2023-06-01")}, endDate: {_lessThan: new Date("2023-07-01")}}
const events = calendar.events.whose(condition)()

if (retrieveOnly) {
return events
} else {
for (const event of events) {
event.delete()
}

return `Deleted ${events.length} events`
}
}

--- Einde van code ---

Aan te passen criteria:
- naam kalender is "Automator"
- titel bevat "test automator"
- startdatum en einddatum liggen in de maand juni 2023.

Het script doorloopt de events van de gekozen kalender, dus of het lang duurt kan nogal verschillen (als er tenminste geen timeout bijkomt).

De interactie tussen JavaScript en de Automator / Calendar verwijder stap lijkt echter ook niet consistent te werken, maar je kan events ook met scripting verwijderen, en dan is Automator niet meer nodig.

Marjeasoft:
Ik heb de script uitgevoerd, maar ik krijg steeds een time-out. Ook met events van vandaag.

nnsa:
Een totaal andere benadering zou kunnen zijn, om te kijken of deze doublures zich voordoen binnen één agenda-account, of dat er meerdere agenda’s zijn met dezelfde items. Zo’n extra agenda kan je uitvinken en dan het resultaat beoordelen (alvorens zo’n overtollige agenda definitief te verwijderen).

Daarnaast kan het helpen om met een agenda te werken, die je ook als lijst kan bekijken en kan sorteren, zodat je doublures snel kan selecteren en kan verwijderen.

Dan ben je je eigen Automator. Ik begrijp dat het niet een antwoord op je basis vraag is.

mcmt:

--- Citaat van: Marjeasoft,  1 juni 2023 - 09:10 ---Ik heb de script uitgevoerd, maar ik krijg steeds een time-out. Ook met events van vandaag.

--- Einde van citaat ---

Ook als je de Agenda app eerst manueel opent (en de app een venster heeft)?

Navigatie

[0] Berichtenindex

[#] Volgende pagina

[*] Vorige pagina

Naar de volledige versie