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



 

OmniFocus 사용법 1 : 기본 사용법
OmniFocus 사용법 2 : 툴바에 Perspectives 추가하기, 시간개념 도입하기
OmniFocus 사용법 3 : OmniFocus와 iCal 연동하기
OmniFocus 사용법 4 : Alfred에서 OmniFocus로 할일 보내기 스크립트
 
 


(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라는 캘린더 이름으로 그냥 사용하시기 바랍니다. 혹시 해결방법 아시는 분은 댓글 부탁드립니다.)




top
  1. Guju 2012.07.30 23:47 신고 댓글주소 | 수정/삭제 | 댓글

    좋은 팁 감사합니다. 캘린더에서 새 캘린더 생성하는 것부터 난관이네요. 새로 생성은 되는데, 이름 변경이 안 되는 문제가 발생했습니다. 라이언에서는 잘 됐던 것 같은데, 마운틴 라이언으로 바꾼 뒤라 그런 걸까요?

    • 맥쓰는풍경/송호정 2012.07.31 10:25 신고 댓글주소 | 수정/삭제

      방금 다시 해 보았는데, 라이언은 새 캘린더 잘 만들어지고 이름 변경도 잘 됩니다.
      (이름 변경은 '정보 가져오기' 에서 할 수 있네요)
      마운틴 라이언은 아직 제가 업글을 하지 않아서 모르겠네요...
      차후 업글 한 후 확인해 보도록 하겠습니다.

  2. serendip 2012.08.08 23:46 신고 댓글주소 | 수정/삭제 | 댓글

    엇 감사합니다. 구글과 동기화가 가능한 방법이 있다는 것에 너무 좋습니다!! 옴니에서 액션 스크립트 가져오는 부분에서 막혀서 헤매고 있긴 하지만, 차근 차근 하다보면 되겠죠;;;

  3. bhealer 2012.08.09 21:36 신고 댓글주소 | 수정/삭제 | 댓글

    감사합니다. 설정에대한것들도 강의해주셨음 합니다^^ 프로젝트의 구조 같은것도요..^^

  4. 인어공주 2012.08.27 23:59 신고 댓글주소 | 수정/삭제 | 댓글

    3. 애플 스크립트 복사하기 부터 막힙니다. 설명이 자세하게 안되어 있는거 같아요.
    이글을 보고 있는 사람은 컴퓨터를 아주 잘아는 ,,,,,, 특히나 맥은 더더욱 몰라서 인터넷으로 검색해서 알아가고 있다는 점을 이해해 주셨으면 감사합니다.
    좋은 블로그 만들어주셔서 감사합니다.
    항상 자주 들르겠습니다.

  5. ㅇㅇ 2012.08.28 00:02 신고 댓글주소 | 수정/삭제 | 댓글

    잘 된다고 글 썼다고 차단하나여?

    • 맥쓰는풍경/송호정 2012.08.28 12:56 신고 댓글주소 | 수정/삭제

      네? 무슨 차단을 했다는 건지요?
      저는 차단 같은거 하지 않았습니다.
      글을 쓰셨는데 삭제가 되었나요? 아니면 글이 안써지나요?
      죄송하지만, 제가 특별히 조치 취한것은 없는데요... ㅠ.ㅠ
      이용에 불편하셨다면 죄송합니다...

    • 맥쓰는풍경/송호정 2012.08.28 18:59 신고 댓글주소 | 수정/삭제

      아래 인어공주님 글 복구하였습니다.
      관리자 모드로 들어가서 여러 메뉴들 살펴보다 휴지통을 확인해보니 삭제되어 있던데요...
      같은글이 인어공주님 이름으로 2번, ㅇㅇ님 이름으로 2번.
      그런데, 저 절대 삭제하지 않았어요...
      전 어제 블로그 방문도 하지 않아서 댓글 보지도 못했는걸요... ㅠ.ㅠ
      이 댓글도 오늘 점심때 보았습니다.
      그래서 아까 무슨내용인지 몰라 그냥 댓글 남기고...
      지금 퇴근하기 전에 한번 관리자모드 뒤져보다 휴지통 보게 된겁니다.
      제가 댓글을 왜 삭제하겠습니까?
      악성 댓글 단것도 아니고... ^^;
      제 블로그 방문해서 보시고 의견 남겨준 소중한 글인데...

      해킹을 당했나???
      암튼 무슨 이유에서건 삭제가 된건 확실한 것 같네요... ㅠㅠ
      이용에 불편 드려서 죄송합니다...
      그래도 자주 들려주세요... ^*^

      아래 중복된 댓글은 삭제하겠습니다.(이건 정말 제가 삭제하는 겁니다... ㅎㅎ)

  6. 하루 2012.08.28 00:04 신고 댓글주소 | 수정/삭제 | 댓글

    3.번부터 막혀서 안되네요.
    무슨 뜻인지도 이해가 안갔는데, 실행도 안되네요.
    다시 확인하시고, 수정 부탁합니다.

    • 맥쓰는풍경/송호정 2012.08.28 13:21 신고 댓글주소 | 수정/삭제

      3번 내용 조금 수정하였습니다.
      제 생각만 하고 그냥 생략하고 작성했네요... 죄송 ^^;
      내용을 몇줄 더 추가하였습니다.
      그림도 다시 캡쳐하고요...
      다시한번 따라해 보시기 바랍니다.

  7. simmg 2012.09.05 23:44 신고 댓글주소 | 수정/삭제 | 댓글

    잘보고 잘배우고 갑니다.
    스크립트 폴더와 하위 폴더의 위치를 찾을수 없습니다.
    혹시 폴더상에서 위치를 찾을수 있는 방법은 없나요?

    • 맥쓰는풍경/송호정 2012.09.10 18:48 신고 댓글주소 | 수정/삭제

      라이언 부터는 Finder에서 Library 폴더가 보이지 않습니다.
      하지만, Finder 에서 [Option+메뉴바의 이동/라이브러리]를 선택하시면 됩니다.
      본문에 Finder에서 복사하는 방법 추가하였습니다.

  8. serendip 2012.09.08 10:38 신고 댓글주소 | 수정/삭제 | 댓글

    마운틴 라이언인데요. 3번의 경로가 라이언과 조금 다른 듯 합니다. 대충 맞는 곳을 찾아 위치 시켰는데, 4번에서 처럼 스크립트가 보이지 않네요. 혹시 마운틴 라이언을 사용 중이신지 문의 드립니다.

  9. 2012.09.20 06:02 신고 댓글주소 | 수정/삭제 | 댓글

    와 캘린더하고 연동되니 정말 좋네요.
    감사합니다.

  10. 우왕 2012.09.22 16:43 신고 댓글주소 | 수정/삭제 | 댓글

    안녕하세용. 많은 도움되고 있습니다.
    궁금한게 있어서 댓글 남겨용
    그~~~~ ical로 이벤트 보내는건 성공했는데
    시작날짜와 완료날짜를 둘다 입력했는데도 기간동안 하루종일 이벤트로
    생성이 안되요; 시간을 입력해서 그런거 같은데 포커스에서 시작,종료의
    시간을 지정안하는 방법은 없나요?
    아니면 기간동안 하루종일 이벤트로 설정하는 방법을 다시한번만 부탁드립니당

    • 맥쓰는풍경/송호정 2012.09.22 22:38 신고 댓글주소 | 수정/삭제

      시작날짜나 완료날짜가 있는 할일은 iCal의 해당 시작날짜와 완료날짜에 해당하는 이벤트로 생성되게 프로그램 되어 있습니다.
      하루종일 이벤트로 설정하실려면 시작날짜와 완료날짜를 모두 설정하지 않으면 오늘 날짜의 하루종일 이벤트로 생성됩니다.
      만일 시작날짜나 완료날짜 하나만 있는 경우 하루종일 이벤트로 생성하려면 AppleScript를 약간 수정하시면 됩니다.

  11. 2012.10.17 05:50 신고 댓글주소 | 수정/삭제 | 댓글

    안녕하세요. 하나 여쭈어 볼 것이 있어서 댓글 답니다.
    이 글이 쓰인 시점이 라이언일 때인 거 같은데 마운틴 라이언에서도 잘 되는지요?
    이상하게 저는 icaltodo 스크립트가 오류가 납니다.
    캘린더는 Omnifocus로 했고 event는 잘 되는데 todo만 안됩니다.

    • 맥쓰는풍경/송호정 2012.10.17 09:34 신고 댓글주소 | 수정/삭제

      마운틴 라이언으로 오면서 iCal의 미리알림이 분리되어 독립적인 미리알림 앱으로 바뀌었습니다. 그러므로 본 강좌의 icaltodo는 라이언에서만 동작하고 마운틴 라이언의 미리알림에서는 동작하지 않습니다.
      물론 할 수 없는 것은 아니지만, 제가 현재 OmniFocus에서 미리알림으로 보내는 기능이 필요하지 않아서 소스 수정 작업을 하고있지 않습니다.
      차후 icaltodo에 대한 소스 수정을 한 후 올려 놓도록 하겠습니다. ^^

  12. 동2 2014.03.13 23:50 신고 댓글주소 | 수정/삭제 | 댓글

    현재 매버릭스에서도 위 두개의 파일이 작동하나요??

    • 맥쓰는풍경/송호정 2014.03.14 10:10 신고 댓글주소 | 수정/삭제

      OS X가 매버릭스로 판올림 한지 꽤 되었는데 아직 수정을 안해놓았네요...ㅠㅠ
      이에 대한 내용 수정하도록 하겠습니다. ^^

      - iCalEvent.scpt는 매버릭스 에서도 잘 동작합니다.
      - iCalTodo.scpt는 마운틴 라이언에서부터 계속 사용 불가입니다.

Write a comment