본문 바로가기
GTD

OmniFocus 사용법 3 : OmniFocus와 iCal 연동하기

by 맥쓰는풍경/송호정 2012. 7. 30.

OmniFocus 사용법 3 - OmniFocus와 iCal 연동하기



 

 
 


(2014.03.14 내용 수정 : 매버릭스에서 스크립트의 동작 여부)

 

0. 개요

 

이번에는 OmniFocus와 iCal의 연동에 대하여 알아보도록 하겠습니다.

OmniFocus와 iCal을 연동시키기 위해서는 AppleScript를 사용해야 합니다.

OmniFocus와 iCal을 연동시킬 수 있다는 정보를 얻고(페이스북 MacMania 그룹)

연동을 해보기 위하여 자료 검색을 해보았습니다.

사이트는 기억 나지 않지만 몇가지 AppleScript 소스를 구했습니다.

하지만 마음에 들지는 않더군요...

어떤 것은 특정 Context를 설정해 놓고 해당 Context에 해당하는 할일만 iCal로 보내는 소스...

어떤 것은 iCal의 미리알림(일종의 todo)으로 보내는 소스...

그래서 몇가지 소스를 짜집기 하고 입맛에 맞게 수정을 하였습니다.

그래서 만든것이 iCalEvent와 iCalTodo.

 

본 소스는 절대 필자가 개발 한 것이 아닙니다.

단지, 돌아다니는 소스를 조금 수정한 것 뿐입니다.

그러므로 본 소스의 저작권은 최초 개발자에게 있음을 알려드립니다.

 

1. AppleScript 소스 다운받기

 

우선 필자가 수정한 소스를 다운 받습니다.                     

 

OmniFocus2iCal(hjsong).zip

 

 

 

압축을 풀면 iCalEvent.scpt와 iCalTodo.scpt 두개의 스크립트 파일이 나옵니다.

여기서,

   - iCalEvent.scpt : 옴니포커스 할일을 iCal의 이벤트로 보내는 스크립트(라이언, 마운틴 라이언, 매버릭스 모두 동작)

   - iCalTodo.scpt : 옴니포커스 할일을 iCal의 미리알림(todo)로 보내는 스크립트(라이언 에서만 동작, 마운틴 라이언, 매버릭스 동작 불가; 마운틴 라이언으로 오면서 미리알림이 독립적인 앱이 되었습니다. 소스의 수정이 필요하네요. 차후 소스 수정 예정)

 

2. AppleScript 소스 수정하기



다운받은 소스를 더블클릭하면 다음과 같이 애플스크립트 편집기가 열립니다.

여기서 rememberCal 값을 변경합니다.

rememberCal은 iCal의 캘린더 이름입니다.

기본값으로 OmniFocus라는 이름으로 입력해 놓았습니다. 여러분의 iCal 이름으로 변경하시면 됩니다.

(주의; 우선은 OmniFocus라는 이름의 iCal 캘린더를 새로 추가 한 후 테스트하기기 바랍니다. 만약의 경우를 대비해서…)

(참고, iCal에서 새로운 캐린더 생성하기 : 파일 / 새로운 캘린더 / 나의 Mac)

 

 

혹시 표시되는 내용이 마음에 들지 않는다면 다음 부분을 수정하시면 됩니다.

표시는 두군데만 했지만, 조건문 별로 모두 수정해야 합니다.

현재는 "[프로젝트] 할일" 형식으로 iCal에 표시됩니다. (조금만 자세히 보시면 알 수 있을 것 입니다.)

또한 시작날짜나 끝날짜가 있을 경우 해당 날짜에 표시를 하고, 둘 다 있을 경우는 전체 날짜에 모두 표시됩니다.

그리고 날짜가 없을 경우는 오늘 날짜의 '하루종일' 이벤트로 표시됩니다.

 

3. AppleScript 소스 복사하기

    * 저도 아직 초보라 처음에는 Finder에서 Library 폴더가 보이지 않아 그냥 터미널에서 사용하는 방법으로 설명하였는데, 여러분들이 잘 안된다는 댓글을 달아주셔서 Finder에서 복사하는 방법을 찾아보고 아래에 추가하였습니다.

    * Mountain Lion도 AppleScript 복사 폴더는 Lion과 같습니다. 만일 해당 폴더가 없으면 만드시면 됩니다.

 

OmniFocus에서 애플 스크립트를 사용하기 위해서는 특정 폴더에 애플 스크립트를 복사해 놓아야 합니다.

  1) 터미널에서 복사하기

       - 우선 터미널을 실행시킵니다.

       - AppleScript를 복사할 폴더를 만듭니다. 해당 경로는 ~/Library/Scripts/Applications/OmniFocus 입니다.

       - 기본적으로 Library 폴더에 Scripts 폴더가 없습니다. Scripts->Applications->OmniFocus 폴더를 만듭니다.


       cd ~/Library                                           ; 작업 경로를 홈디렉토리 밑에 Library로 이동

                                                                     ; 여기서 '~'의 의미는 홈디렉토리. 즉 /Users/userid를 의미함

       mkdir Scripts                                         ; Scripts 폴더를 만듬

       mkdir Scripts/Applications                    ; Scripts 아래에 Applications 폴더를 만듬

       mkdir Scripts/Application/OmniFocus  ; Scripts 아래 Applications 아래에 OmniFocus 폴더를 만듬

  


       - AppleScript 파일을 ~/Library/Scripts/Applications/OmniFocus 폴더로 복사합니다.



       cd ~/Downloads/OmniFocus2iCal(hjsong)                  ; 작업 경로를 홈디렉토리 밑에 Downloads 밑에 

                                                                                            ; OmniFocus2iCal(hjsong)로 이동

       pwd                                                                              ; 현재 작업 디렉토리 확인(실행 안해도 됨)

       cp *.scpt ~/Library/Scripts/Applications/OmniFocus   ; 확장자가 scpt인 모든 파일을 

                                                                                            ; ~/Library/Scripts/Applications/OmniFocus  로 복사

  

 
 

  2) Finder에서 복사하기

       - 라이언부터는 Finder에서 Library 폴더가 보이지 않습니다.

         하지만, Finder에서 메뉴바의 이동을 선택한 상태에서 Option 키를 누르면 [라이브러리]가 보입니다.

         이 [라이브러리]를 누르면 라이브러리 폴더로 바로 갑니다. 

 

                 

                    Option 버튼 누르기 전                          Option 버튼 누른 화면

 

       - 라이브러리 폴더가 열린 모습

 

 

       - 다운로드 받은 스크립트 파일의 압축을 푼 후, [Library/Scripts/Applications/OmniFocus] 폴더로 복사합니다.

         * 기본적으로 Library 폴더에 Scripts 폴더가 없습니다. Scripts->Applications->OmniFocus 폴더 만드시면 됩니다.

 

 

4. 툴바에 AppleScript 아이콘 가져오기

 

다음과 같이 툴바에 마우스 오른쪽 버튼을 누른 후 [Customize Toolbar]를 선택한 후

그림과 같이 iCalEvent와 iCalTodo를 끌어다 원하는 위치에 놓습니다.

 

5. 할일 iCal로 보내기

 

iCal로 보내고 싶은 할일을 선택한 후 iCalEvent나 iCalTodo 아이콘을 클릭하면 됩니다.

우선 여름휴가가기(캠핑)을 선택한 후 iCalEvent를 클릭합니다.

 

다음과 같이 iCal에 표시되는 것을 볼 수 있습니다.

 

다음에는 자동차점검을 선택한 후 iCalTodl 아이콘을 클릭합니다.

 

다음과 같이 iCal의 미리알림에 할일이 표시되는 것을 확인할 수 있습니다.

 

'캠핑용품 구매하기'와 '여름휴가 짐꾸리기'도 미리알림으로 보내보았습니다.


6. 캘린더 설정하기

 

테스트가 모두 끝났으면 Downloads에 있는 iCalEvent 스크립트에서 'rememberCal'을 본인의 iCal 캘린더 이름으로 수정한 후 저장(옵션+S) 한 후 다시 복사합니다.

필자의 경우에는 구글캘린더와 연동이 되고 있고 캘린더 이름은 '송호정 일정' 입니다.

이와같이 해놓으면 OmniFocus의 할일을 iCal로 보낼 수 있고, 그 내용이 다시 구글캘린더와 동기화 됩니다.

(주의, 구글캘린더와 iCal과의 할일 싱크가 안되는지 에러가 나기 때문에 iCalTodo 스크립트는 그냥 OmniFocus라는 캘린더 이름으로 그냥 사용하시기 바랍니다. 혹시 해결방법 아시는 분은 댓글 부탁드립니다.)




반응형

댓글