2013-07-04 1 views
0

iCal을 사용하여 내 교대를 추적합니다. 이벤트 정보는 동일한 세 가지 표준 교대 유형이며 일반적으로 패턴이 없으므로 복사하고 붙여 넣습니다.세트 iCal 이벤트를 작성하는 Applescript

나는 그것을 해결하기 위해 AppleScript로 사용하고 있습니다. 일부 날짜를 입력하고 Shift 키를 누른 채 유형을 선택하면 Applescript에서 이벤트를 만듭니다. 점점 밖으로 실행하는 원본을

Reading iCal info from file to make iCal event

예를 그래서 난 그냥 날짜의 목록을 가지고 있지만도 가져올 수 없습니다 :

은 내가 각 시프트 유형이 적응할 수 있는지 시도 유효하지 않은 날짜 오류.

답변

0

date "7/4/2013 6:00 PM"과 같은 날짜 개체를 만들 수 있지만 인식 된 형식은 시스템 환경 설정에서 선택한 지역 또는 날짜 형식에 따라 다릅니다.

set input to "7/4 night 
7/5 day" 

set y to year of (current date) 
set text item delimiters to " " 
repeat with l in paragraphs of input 
    set d to text item 1 of l 
    set type to text item 2 of l 
    if type is "night" then 
     set sd to date (d & "/" & y & " 5:00 PM") 
     set ed to date (d & "/" & y & " 11:00 PM") 
    else if type is "day" then 
     set sd to date (d & "/" & y & " 9:00 AM") 
     set ed to date (d & "/" & y & " 5:00 PM") 
    end if 
    tell application "Calendar" to tell calendar "test" 
     make new event with properties {start date:sd, end date:ed, summary:"work"} 
    end tell 
end repeat 
+0

감사합니다. 나는 그것을 추가하여 adapeted했다 : "Enter Shifts"기본 응답 "day/month shift" 입력을 (결과의 텍스트가 반환 된) 어쨌든 모든 것이 반복되도록하기 위해 어쨌든 그것을 저장할 수있다. 신청? – Rob

+0

실제로 그것을 밖으로 일했다. 다만 적당한 장소에있는 반복을 추가해야했다. – Rob

2

하나의 방법이 있습니다. 참고 내가 Mountain Lion에있어 앱이 iCal이 아닌 Calendar 인 경우 iCal을 사용하는 경우에도 명령이 동일합니다. 대부분의 경우 날짜 오류는 날짜가 AppleScript 날짜 형식이어야하기 때문입니다. 여기서는 처음에 문자열 형식의 시작 날짜와 종료 날짜를 가져 와서 Calendar에 이벤트를 추가하기 전에 날짜를 AppleScript 날짜로 변환합니다.

set calendarName to "Home" 
set theSummary to "Event Title" 
set theDescrption to "The notes for the event" 
set theLocation to "Karl's House" 
set startDate to "July 4, 2013 6:30:00 PM" 
set endDate to "July 5, 2013 1:00:00 AM" 


set startDate to date startDate 
set endDate to date endDate 

tell application "Calendar" 
    tell (first calendar whose name is calendarName) 
     make new event at end of events with properties {summary:theSummary, start date:startDate, end date:endDate, description:theDescrption, location:theLocation} 
    end tell 
end tell