I get my teaching schedule and term plans in word doc table. I would like to know if there is a way to get this data into iCal. It will take me much longer to create events in iCal than what it would to copy these tables into an excel file and import to iCal from there.
The data would be one day events ie House-Gala Friday 22/02/2013 and the rest of the data will be 2 weeks or 3 weeks events ie 3 Weeks – Gr.10 Maths – Topic:Exponents (these events will be a 5 day event (Monday to Friday) repeated for three weeks.)
This is a script I got from the internet – but the first error it gives is me is that it can’t convert the .csv file text into type Unicode.
Another issue later in the script will be to get those 5 day events to repeat for 3 or 2 weeks.
Any help would be greatly appreciated. This is what I have thus far:
--Convert CSV file to iCal events
--Prompts for file, then processes
--expects date,start time,end time,event name,xxxx,calendar name
--eg 12/01/2006,20:30,22:00,Water Committee,,TestCal
--change the various text item ns if data order in a file line is different
--blank lines skipped
--if other data present (eg location, notes ...) add a line in the tell calendar Calno loop
--to include it eg set location to text item 5 of ThisLine
set OldDelimiters to AppleScript's text item delimiters
set LF to ASCII character 10
set theFile to choose file with prompt "Select CSV calendar file"
set theLines to read theFile
set AppleScript's text item delimiters to {LF}
set theLines to paragraphs of theLines
set AppleScript's text item delimiters to {","}
repeat with ThisLine in theLines
if (count of ThisLine) > 0 then --ignore blanks
set StartDate to date (text item 1 of ThisLine & " " & text item 2 of ThisLine)
set EndDate to date (text item 1 of ThisLine & " " & text item 3 of ThisLine)
set CalName to word 1 of text item 6 of ThisLine
tell application "Calendar"
set CalList to title of every calendar
if CalName is in CalList then
repeat with CalNo from 1 to count of CalList
if CalName is item CalNo of CalList then exit repeat
end repeat
else
set NewOne to make new calendar at end of calendars with properties {title:CalName}
set CalNo to 1 + (count of CalList)
end if
tell calendar CalNo
set newItem to make new event at end of events with properties {start date:StartDate}
set summary of newItem to text item 4 of ThisLine
set end date of newItem to EndDate
end tell --calendar
end tell --iCal
end if
end repeat
set AppleScript's text item delimiters to OldDelimiters
Ok thanks for the replies, this is what I have thus far, I can’t get the recurrence to use NumberCount as the COUNT for the repeat of the event:
set text item delimiters to ";"
repeat with l in paragraphs of (read "/Users/pienaar0/Desktop/test.csv" as «class utf8»)
if contents of l is not "" then
set sd to date (text item 1 of l & " ")
set ed to date (text item 2 of l & " ")
set NumberWeeks to (text item 4 of l & " ")
set NumberCount to NumberWeeks - 1
tell application "Calendar" to tell calendar "Test"
make new event with properties {allday event:true, start date:sd, end date:ed, summary:text item 3 of l, recurrence:"FREQ=WEEKLY;COUNT=2 * NumberCount"}
end tell
end if
end repeat
test.csv: