일정 iCalendar 형식

    iCalendar 데이터 형식은 인터넷 사용자가 이메일을 사용하여 일정 등을 공유할 때 .ics 확장자로 파일을 공유할 수 있게 하는 파일 형식이다. iCalendar 데이터 파일을 받은 사람은 이메일 클라이언트나 캘린더 프로그램 등을 이용하여 보낸 사람에게 쉽게 응답할 수 있고 다른 일정을 다시 제안할 수도 있다.

    자세한 내용은 다음 페이지를 참고한다.

    샘플코드

    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:Naver Calendar
    CALSCALE:GREGORIAN
    BEGIN:VTIMEZONE
    TZID:Asia/Seoul
    BEGIN:STANDARD
    DTSTART:19700101T000000
    TZNAME:GMT+09:00
    TZOFFSETFROM:+0900
    TZOFFSETTO:+0900
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    SEQUENCE:0
    CLASS:PUBLIC
    TRANSP:OPAQUE
    UID:6E12DA93-8B43-4576-9A8A-31B4BDC8BDCF_xell_1409882048@example.com
    DTSTART;TZID=Asia/Seoul:20140905T110000
    DTEND;TZID=Asia/Seoul:20140905T120000
    SUMMARY:매주반복 샘플
    DESCRIPTION:상세 설명영역
    LOCATION:여기에서
    RRULE:FREQ=WEEKLY;BYDAY=FR;INTERVAL=1;UNTIL=20141030T120000
    ORGANIZER;CN=홍길동:mailto:gildong.hong@example.com
    ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=참석자:mailto:user01@example.com
    CREATED:20140905T015408Z
    LAST-MODIFIED:20140905T015408Z
    DTSTAMP:20140905T015409Z
    END:VEVENT
    END:VCALENDAR
    

    코드 설명

    속성 설명
    UID 일정의 고유한 ID 값. 단일 캘린더 ID에서는 iCalendar의 UID가 고유해야 한다.
    UID는 일반적으로 iCalendar 데이터를 최초 생성할 때 사용자 ID, 타임스탬프, 도메인 등의 정보를 조합해서 만든다.
    이때 특수 기호 % 문자는 이스케이프 문제로 지원되지 않으니 주의한다.
    DTSTART 일정이 시작된 날짜 및 시간.
    별도의 표준시간대를 사용하지 않는다면 'T' 이하의 시간 값만 수정해서 사용할 수 있다.
    DTEND 일정이 종료된 날짜 및 시간.
    별도의 표준시간대를 사용하지 않는다면 'T' 이하의 시간 값만 수정해서 사용할 수 있다.
    SUMMARY 일정 제목
    DESCRIPTION 일정의 상세 내용
    LOCATION 장소 정보
    RRULE 반복 정보
    ORGANIZER 캘린더 시스템 이메일.
    기본 캘린더에 약속 생성 시, 캘린더 API 서버에 의해서 기본 캘린더 Owner 이메일로 설정된다.
    공유 캘린더에 약속 생성 시, 캘린더 API 서버에 의해서 캘린더 시스템 이메일로 설정된다.
    약속 수정 시에는 조회된 ORGANIZER를 그대로 사용해야 한다.
    약속이 아니면 ORGANIZER를 빼고 iCalendar 데이터를 생성한다.
    ATTENDEE 약속인 경우 참석자 정보.
    약속이 아니면 ATTENDEE를 빼고 iCalendar 데이터를 생성한다.
    CREATED 일정이 생성된 날짜 및 시간
    LAST-MODIFIED 일정이 최종 수정된 날짜 및 시간
    DTSTAMP 일정을 iCalendar 데이터로 변환한 날짜 및 시간(현재는 중요하지 않게 취급).