Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Daten aus Numbers in Kalender eintragen

Daten aus Numbers in Kalender eintragen

hidalgo27.12.1222:11
Ich möchte gerne aus einer Tabelle in Numbers Ereignisse im Kalender eintragen. Ich habe hier einen Skript gefunden
Leider bin ich zu blöd, diesen auf meine Bedürfnisse anzupassen.
Ich möchte in Numbers die Vorlage «Reiseplanung» und dort die Tabelle «Aktivitäten» verwenden.
Wer kann mir helfen?
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0

Kommentare

_mäuschen
_mäuschen28.12.1213:13
Der script funktioniert wie gewünscht bis auf den iCal Eintrag.

Den habe ich folgendermassen korrigieren müssen
0
_mäuschen
_mäuschen28.12.1214:02
Oh, ich vergass zu erwähnen, dass ich auch den Kalender angepasst habe.

property theCalendar : "Personnel"

property theCalendar : "Name_meines_gewünschten_Kalenders"
0
hidalgo28.12.1222:02
Vielen Dank erstmal für deine Bemühungen. Leider funktioniert der Skript bei mir immer noch nicht. Erhalte immer noch die gleiche Fehlermeldung (siehe Anhang).

Noch eine Idee?
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
_mäuschen
_mäuschen28.12.1223:18
mach mal

0
hidalgo28.12.1223:47
Vielen Dank. Durch Einfügen von

tell calendar theCalendar

und dann natürlich

end tell

lief es dann. Interessant wäre nun, wenn man den Skript noch ein wenig ausbauen könnte. In meiner Numbers-Tabelle habe ich folgende Spalten:
- Datum
- Uhrzeit
- Endzeit (Dauer)
- Aktivität

Der Kalendereintrag müsste jetzt als Titel die Aktivität tragen und das Startdatum müsste sich aus dem Datum und der Uhrzeit, das Enddatum aus der Endzeit (oder Dauer) und dem Datum zusammensetzen.

Kannst du mir nochmals helfen?
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
_mäuschen
_mäuschen29.12.1200:50
Entfernen von 'every calendar whose name is' hätte genügt.
0
hidalgo29.12.1204:03
So, habe mich nochmals dahinter geklemmt und dabei sind noch ein paar Erweiterungen herausgekommen. Zuerst hier Anzahl Spalten eingeben
property nbItemsPerEvent : 7
und dann diese Ergänzungen vornehmen:
on makeEvent({datum, sTime, eTime, descr, city, kontakt, notes})
    
    set startString to date string of (datum) & " " & time string of (sTime)
    set endString to date string of (datum) & " " & time string of (eTime)
    
    set startDate to (date startString) - (time to GMT)
    set endDate to (date endString) - (time to GMT)
    
    
    tell application "Calendar"
        make new event at the end of calendar theCalendar with properties {summary:descr, start date:startDate, end date:endDate, location:city, description:notes, allday event:false}
    end tell
    
end makeEvent
Jetzt wird auch der Ort und die Notizen ausgefüllt.
Vielleicht hilft das auch jemand anderen.

Danke nochmals _mäuschen für deine Hilfe.
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
_mäuschen
_mäuschen29.12.1210:02
YEAH

Genau so
0
hidalgo29.12.1216:39
Wenn ich in Numbers anstelle der Endzeit eine Dauer (Format 0:00) eingebe, kann ich den Skript anpassen
set startString to date string of (datum) & " " & time string of (sTime)
    
    set startDate to (date startString) - (time to GMT)
    set endDate to startDate + (eTime * hours)
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
hidalgo30.12.1215:36
Jetzt habe ich doch noch ein kleines Problemchen. Wenn eine Zelle leer ist (z. B. Ort) sollte auch kein Wert im Kalender eingetragen werden. Jetzt erscheint dort eine 0.
Wo kann ich das definieren.
Toll wäre auch, wenn keine Zeit angegeben wird, ein ganztägiger Termin eingetragen würde.
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
_mäuschen
_mäuschen30.12.1218:56
on makeEvent({datum, sTime, eTime, descr, city, kontakt, notes})

set startString to short date string of (datum) & " " & time string of (sTime)
set startDate to (date startString) - (time to GMT)

set wholeDay to false
try
if time string of eTime is "0.0" then
end if
on error
set endDate to startDate
set wholeDay to true
end try
if not wholeDay then
set endString to short date string of (datum) & " " & time string of (eTime)
set endDate to (date endString) - (time to GMT)
end if

if city is 0 then set city to "" --nada

tell application "iCal" …
0
hidalgo30.12.1222:12
Vielen Dank für die weiter Hilfe. Hoffe, dass der Skript bald alle Eventualitäten abdeckt. Musste noch ein paar Änderungen vornehmen; z. B. muss ganz am Anfang abgefragt werden, ob ein Wert in der Zeitspalte vorhanden ist. Der Teil sieht jetzt so aus:
on makeEvent({datum, sTime, eTime, descr, city, kontakt, notes})
    
    try
        if sTime is not "" then
            set startString to date string of (datum) & " " & time string of (sTime)
            set startDate to (date startString) - (time to GMT)
            set wholeDay to false
        end if
    on error
        set startString to date string of (datum) & " 0:00"
        set startDate to (date startString)
        set endDate to startDate
        set wholeDay to true
    end try
    
    if not wholeDay then set endDate to startDate + (eTime * hours)
    
    if city is 0 then set city to ""
    
    tell application "Calendar"
        make new event at the end of calendar theCalendar with properties {summary:descr, start date:startDate, end date:endDate, location:city, description:notes, allday event:wholeDay}
    end tell
    
end makeEvent
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0
_mäuschen
_mäuschen31.12.1200:38
try
set startString to date string of (datum) & " " & time string of (sTime)
set startDate to (date startString) - (time to GMT)
set wholeDay to false
on error
set startString to date string of (datum) & " 0:00"
set startDate to (date startString)
set endDate to startDate
set wholeDay to true
end try

if not wholeDay then
try
set endString to short date string of datum & " " & time string of eTime
set endDate to (date endString) - (time to GMT)
on error
set endDate to startDate + (eTime * hours)
end try
end if

if city is 0 then set city to ""


So kann Feld eTime mit Format Zeit, Format Zahl oder leer verwendet werden.

Absolute oder berechnete Endzeit
0
hidalgo31.12.1201:20
Wie geil ist das denn?!

Super, vielen Dank. Ich musste nur noch bei der berechneten Zeit die Stunden durch Minuten ersetzen, damit ich bei der Eingabe entweder auf die Angabe der Einheit verzichten kann bzw. nicht «0 h 30 m» für 30 Minuten schreiben müsste.

Ganz, ganz toll!

Danke.
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.