맨위로가기

아이캘린더

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

아이캘린더(iCalendar)는 1998년 인터넷 엔지니어링 태스크 포스(IETF)의 캘린더 및 스케줄링 워킹 그룹에서 개발된 캘린더 및 일정 정보를 교환하기 위한 파일 형식이다. .ics 또는 .ifb 확장자를 가진 일반 텍스트 파일로, RFC 5545가 현재 표준을 정의한다. iCalendar는 vCalendar를 기반으로 하며, VEVENT, VTODO, VJOURNAL, VFREEBUSY, VTIMEZONE, VALARM 등의 구성 요소와 다양한 속성 및 매개변수를 사용한다. 또한, xCal(XML), jCal(JSON), hCalendar, hEvent 등의 다른 표현 방식과 다양한 프로그래밍 라이브러리를 지원한다.

더 읽어볼만한 페이지

  • 인터넷 표준 - DNSSEC
    DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
  • 인터넷 표준 - IPv6
    IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
  • 파일 포맷 - 바로 가기
    바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다.
  • 파일 포맷 - EXE
    EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
아이캘린더 - [IT 관련 정보]에 관한 문서
개요
종류캘린더 데이터 교환
확장자.ical, .ics, .ifb, .icalendar
MIME 형식text/calendar
장르PIM 데이터 표준
표준RFC 5545 (RFC 5546, RFC 6868, RFC 7529, RFC 7986에 의해 업데이트됨)
공개 여부

2. 역사

iCalendar는 1998년에 만들어졌으며[3] 2009년 9월에 RFC 5545가 RFC 2445를 대체하면서 현재 표준으로 정의되었다. iCalendar 데이터 파일은 .ics 또는 .ifb 파일 확장자를 가진 일반 텍스트 파일이다. iCalendar는 인터넷 메일 컨소시엄(IMC)의 이전 vCalendar를 기반으로 하며[4], vCalendar는 .vcs 파일 확장자를 가지고 있다.

2. 1. 초기 개발

iCalendar는 1998년 인터넷 엔지니어링 태스크 포스(IETF)의 캘린더 및 스케줄링 워킹 그룹에서 만들었으며, 오픈 텍스트사의 아닉 강굴리(Anik Ganguly)가 의장을 맡고, 로터스 개발사의 프랭크 도슨(Frank Dawson)과 마이크로소프트사의 데릭 스테너슨(Derik Stenerson)이 사양서를 작성하였다.[3] iCalendar는 인터넷 메일 컨소시엄(IMC)의 이전 vCalendar를 기반으로 한다.[4] iCalendar 출시 후, 인터넷 메일 컨소시엄은 모든 vCalendar 개발자가 새로운 개방형 표준을 활용하여 vCalendar 1.0과 iCalendar 모두와 호환되는 소프트웨어를 만들도록 권장하였다.[5]

2. 2. 표준화 노력과 CalDAV

"캘린더 액세스 프로토콜"(RFC 4324)[24]은 실시간 캘린더를 만들기 위한 보편적인 시스템을 만들려는 초기 시도였지만, 복잡한 사양으로 인해 구현되지 못하고 중단되었다. 대신 iCalendar는 GroupDAV 및 CalDAV와 같은 ''임시'' 확장이 비공식적인 표준으로 등장하고 클라이언트 및 서버 소프트웨어 패키지에서 일부 채택되면서 이러한 목적으로 사용되었다.

IETF "캘린더 및 스케줄링 워킹 그룹"(ietf-calsify WG)에서 iCalendar 표준을 단순화하려는 첫 번째 시도는 2011년 1월에 채택되지 않고 종료되었다.[6][7] 이 작업은 이후 "캘린더 확장 워킹 그룹"(ietf-calext WG)에서 이어받았다.[8]

2. 3. RFC 문서

iCalendar 구성 요소와 속성


iCalendar는 1998년[3] 오픈 텍스트사(Open Text Corporation)의 아닉 강굴리(Anik Ganguly)가 의장을 맡고, 로터스 개발사(Lotus Development Corporation)의 프랭크 도슨(Frank Dawson)과 마이크로소프트사(Microsoft Corporation)의 데릭 스테너슨(Derik Stenerson)이 저술하여 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force)의 캘린더 및 스케줄링 워킹 그룹에서 만들었다. iCalendar 데이터 파일은 .ics 또는 .ifb (가용성 정보만 포함하는 파일의 경우) 파일 확장자를 가진 일반 텍스트 파일이다. 2009년 9월, RFC 5545는 RFC 2445를 대체하고 현재 표준을 정의한다.

iCalendar는 인터넷 메일 컨소시엄(IMC)의 이전 vCalendar를 기반으로 한다.[4] vCalendar는 .vcs 파일 확장자를 가지고 있다. iCalendar가 출시된 후, 인터넷 메일 컨소시엄은 "모든 vCalendar 개발자가 이러한 새로운 개방형 표준을 활용하여 소프트웨어를 vCalendar 1.0과 iCalendar 모두와 호환되도록 만들기를 희망한다"고 밝혔다.[5]

"캘린더 액세스 프로토콜" 메모(RFC 4324)는 실시간 캘린더를 만들기 위한 보편적인 시스템을 만들려는 초기 시도였지만 결국 중단되었다. 대신 iCalendar는 GroupDAV 및 CalDAV와 같은 ''임시'' 확장이 비공식적인 표준으로 등장하고 클라이언트 및 서버 소프트웨어 패키지에서 일부 채택되면서 이러한 목적으로 사용되었다.

IETF "캘린더 및 스케줄링 워킹 그룹"(ietf-calsify WG)에서 iCalendar 표준을 단순화하려는 첫 번째 시도는 2011년 1월에 채택되지 않고 종료되었다.[6][7] 이 작업은 이후 "캘린더 확장 워킹 그룹"(ietf-calext WG)에서 이어받았다.[8]

3. 기본 사양

iCalendar 형식은 달력 기반 데이터를 전송하기 위해 설계되었으며, 데이터 처리 방법은 의도적으로 명시하지 않는다. 따라서 데이터 처리를 위한 별도 프로그래밍이 필요할 수 있다.[9] iCalendar 객체 교환 프로토콜은 "iCalendar Transport-Independent Interoperability"(iTIP, RFC 2446)에 정의되어 있으며, "캘린더 사용자" 간의 공동 캘린더 및 일정 관리를 지원한다.[9] iTIP는 `PUBLISH`, `REQUEST`, `REPLY`, `ADD`, `CANCEL`, `REFRESH`, `COUNTER`, `DECLINE-COUNTER` 등의 메서드를 정의한다.[9] 표준 인터넷 이메일 기반 전송에서 iTIP 구현은 "iCalendar Message-based Interoperability Protocol (iMIP)"(RFC 2447) 표준을 따른다.[9] "인터넷 캘린더 가이드"(RFC 3283)는 iCalendar와 다른 캘린더 언어의 상호 작용을 설명한다.[9]

iCalendar 구성 요소는 다음과 같다.


  • VEVENT: 캘린더에 예약된 이벤트를 설명한다. 사용자가 이벤트를 수락하면 해당 시간은 사용 중으로 간주되지만, `TRANSPARENT` 설정을 통해 변경할 수 있다. `VEVENT`는 알람(`VALARM`)을 포함할 수 있으며, `DTSTART` (시작 시간)와 `DTEND` (종료 시간)로 시간을 설정한다. 반복 이벤트의 경우 `DTSTART`는 첫 이벤트의 시작을 설정한다.
  • VTODO: 할 일 항목(작업 또는 할당)을 설명한다. 모든 캘린더 응용 프로그램이 `VTODO`를 인식하는 것은 아니다. 특히 Outlook은 `VTODO` 항목을 내보내거나 가져오지 않는다.[14]
  • VJOURNAL: 저널 항목으로, 특정 날짜에 텍스트를 첨부하여 활동, 성과, 할 일 진행 상황 등을 기록한다. `VJOURNAL`은 캘린더 시간을 차지하지 않으므로 사용 가능/불가 시간에 영향을 주지 않는다. `VJOURNAL`을 지원하는 프로그램은 거의 없다.
  • VFREEBUSY: 사용 가능/불가 시간 요청, 응답 또는 게시된 집합이다.
  • 기타: `VAVAILABILITY`, `VTIMEZONE` (시간대), `VALARM` (알람) 등이 있다. 일부 구성 요소는 다른 구성 요소를 포함할 수 있다.


iCalendar는 캘린더 및 일정 정보의 공개 교환을 위한 공통 형식을 제공하지만, 일부 고급 기능에는 문제가 있다. 대부분의 공급업체는 `VJOURNAL`을 지원하지 않으며, `VTODO`도 변환 문제가 있었다.[15]

iCalendar는 그레고리력이 아닌 음력 등 일부 캘린더와 호환되지 않는다. 일대일 매핑이 존재하더라도 `CALSCALE` 값 부족, 날짜 필드 제한 등으로 기본 지원이 어려울 수 있다. 히브리력은 12개월 또는 13개월을 가질 수 있고, 일본 천황 기반 캘린더는 여러 시대를 포함한다.

iCalendar 사양은 인터넷 엔지니어링 태스크 포스 캘린더·스케줄 작업반에서 정했으며, 오픈 텍스트의 아닉 강굴리가 의장을 맡았다. 로터스의 프랭크 도슨, 마이크로소프트의 데릭 스토너슨이 기술했다. iCalendar는 Internet Mail Consortium영어 (IMC)의 '''vCalendar'''에 기반한다.

iCalendar는 플레인 텍스트이며, MIME 유형은 "text/calendar"이다.

3. 1. 파일 형식 및 MIME 유형

iCalendar 데이터는 MIME 콘텐츠 유형 `text/calendar`를 갖는다. 달력 및 일정 정보를 포함하는 파일에는 `.ics` 파일 확장자를 사용하고, 사용 가능/불가 시간 정보를 포함하는 파일에는 `.ifb` 파일 확장자를 사용한다. macOS 환경에서 이에 해당하는 파일 유형 코드는 `iCal` 및 `iFBf`이다.

기본적으로 iCalendar는 UTF-8 문자 집합을 사용한다. "charset" MIME 매개변수를 사용하여 다른 문자 집합을 지정할 수 있다(사용된 전송 방법이 이메일 또는 HTTP와 같은 MIME을 지원하는 경우). 각 줄은 CR+LF (16진수: `0D0A`)로 끝난다. 줄 길이는 75 옥텟 (문자가 아님)으로 제한해야 한다. 데이터 항목이 너무 길어서 한 줄에 맞지 않으면 후속 줄을 공백 문자(16진수: 20) 또는 탭 문자(16진수: 09)로 시작하여 다음 줄로 이어질 수 있다. 데이터 항목의 실제 줄 바꿈은 백슬래시 다음에 문자 n 또는 N (UTF-8에서 `5C6E` 또는 `5C4E`)으로 인코딩된다.

iCalendar 데이터의 MIME 유형은 "text/calendar"이다. 이 MIME 유형을 가진 캘린더·스케줄 데이터 파일에는 확장자 "ics"가 붙는다. (macOS에서는 타입 코드 "iCal"). "free and busy time"(빈 시간과 예정이 있는 시간)을 포함하는 데이터에는 확장자 "ftb"가 부여된다. (macOS에서는 타입 코드 "iFBf").

iCalendar 데이터는 플레인 텍스트이며 기본으로 UTF-8이 사용된다. 다른 문자 인코딩을 사용할 때는 "charset" MIME 파라미터로 지정할 수 있다. 각 행은 CR + LF (16진수: 0D0A)로 개행되며, 각 행 75옥텟의 문자수 제한이 있다. 다음 행으로 이어질 경우 공백 (16진수: 20) 또는 탭 (16진수: 09)으로 행을 시작함으로써 앞 행의 연속임을 명시할 수 있다. 데이터 항목 내에서 개행을 하고 싶을 경우 "백슬래시 + N" (UTF-8에서 `5C6E` 또는 `5C4E`, n)로 코딩한다.

3. 2. 문자 집합 및 줄 바꿈

기본적으로 iCalendar는 UTF-8 문자 집합을 사용한다. "charset" MIME 매개변수를 사용하여 다른 문자 집합을 지정할 수 있다(사용된 전송 방법이 이메일 또는 HTTP와 같은 MIME을 지원하는 경우).[9] 각 줄은 CR+LF (16진수: 0D0A)로 끝난다.[9] 줄 길이는 75 옥텟 (문자가 아님)으로 제한해야 한다.[9] 데이터 항목이 너무 길어서 한 줄에 맞지 않으면 후속 줄을 공백 문자(16진수: 20) 또는 탭 문자(16진수: 09)로 시작하여 다음 줄로 이어질 수 있다.[9] 데이터 항목의 실제 줄 바꿈은 백슬래시 다음에 문자 n 또는 N(UTF-8에서 바이트 5C 6E 또는 5C 4E)으로 인코딩된다.[9]

3. 3. 핵심 객체 (Core Object)

iCalendar의 최상위 요소는 캘린더 및 일정 정보의 모음인 캘린더 및 일정 코어 객체이다. 일반적으로 이 정보는 단일 iCalendar 객체로 구성되지만, 여러 iCalendar 객체를 함께 그룹화할 수 있다. 첫 번째 줄은 `BEGIN:VCALENDAR`이어야 하고, 마지막 줄은 `END:VCALENDAR`이어야 한다. 이 줄 사이의 내용은 "icalbody"라고 한다.[9]

icalbody에는 `PRODID` 및 `VERSION` 캘린더 속성이 포함되어야 하며, 하나 이상의 캘린더 구성 요소를 포함해야 한다.[9] `VERSION:1.0`은 데이터가 이전 vCalendar 형식임을 나타내며,[9] iCalendar 형식의 `VERSION`은 현재 2.0이다.[9]

iCalendar 객체의 본문(icalbody)에는 전체 캘린더에 적용되는 단일 줄의 ''캘린더 속성''과 이벤트, 저널 항목, 알람 또는 여러 다른 유형 중 하나와 같은 ''캘린더 구성 요소''를 각각 정의하는 여러 줄의 블록이 하나 이상 포함되어 있다.

다음은 1997년 7월 14일 오후 5시에 시작하여 다음 날 아침 4시에 끝나는 "바스티유 데이 파티" 이벤트를 포함하는 단일 캘린더가 있는 iCalendar 객체의 예시이다.[10]

```text

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//hacksw/handcal//NONSGML v1.0//EN

BEGIN:VEVENT

UID:uid1@example.com

ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com

DTSTART:19970714T170000Z

DTEND:19970715T040000Z

SUMMARY:Bastille Day Party

GEO:48.85299;2.36885

END:VEVENT

END:VCALENDAR

```

전역적으로 고유한 식별자인 UID 필드는 예약된 이벤트가 변경될 때 업데이트를 배포하는 데 사용된다. 이벤트가 처음 생성될 때 전역적으로 고유한 식별자가 생성되며, 나중에 동일한 UID로 이벤트가 배포되면 원래 이벤트를 대체한다. 예시 UID는 `Y2007S2C131M5@example.edu`일 수 있으며, 이는 가상 대학에서 2학기 131강좌의 5번째 회의를 나타낸다. 이메일 스타일 UID는 현재 권장되지 않으며, 대신 UUID를 사용하는 것이 좋다.[11]

날짜와 시간의 가장 일반적인 표현은 `20010911T124640Z`와 같은 ''tz 타임스탬프''이며, 형식은 `TZ`로 총 16자리의 고정 길이이다. ''Z''는 UTC (Zulu 시간대 참조)의 사용을 나타낸다.[12] `DTSTART` 및 `DTEND` 속성에서 시작 시간은 포함되고 종료 시간은 포함되지 않는다. 이를 통해 이벤트의 종료 시간이 연속하는 이벤트의 시작 시간과 동일하게 하여 해당 이벤트가 겹치지 않고 잠재적으로 (잘못된) 일정 충돌을 만들지 않도록 할 수 있다.[13]

4. 구성 요소 (Components)

iCalendar는 캘린더 및 일정 정보를 교환하기 위한 표준 형식이다. iCalendar 데이터는 일반적으로 ".ics" 확장자를 가진 파일로 저장된다. iCalendar 객체는 "BEGIN:VCALENDAR"로 시작하여 "END:VCALENDAR"로 끝나며, 그 사이에 캘린더 속성 및 구성 요소들이 포함된다.[1]

iCalendar의 주요 구성 요소는 다음과 같다.

iCalendar 주요 구성 요소[1]
이름설명RFC 섹션
VCALENDARiCalendar 객체의 최상위 구성 요소3.4
VEVENT캘린더에 예약된 이벤트3.6.1
VTODO할 일, 작업 항목 또는 할당3.6.2
VJOURNAL특정 날짜에 대한 설명 텍스트 (저널 항목)3.6.3
VFREEBUSY사용 가능/불가 시간 정보3.6.4
VTIMEZONE시간대 정보3.6.5
VALARM알람 설정 (주로 다른 구성 요소 내에 포함)3.6.6
VAVAILABILITY사용 가능 여부 구성 요소RFC 7953 섹션 3.1
AVAILABLEVAVAILABILITY 내에서 사용 가능한 시간 구성 요소RFC 7953 섹션 3.1
PARTICIPANT참여자 구성 요소RFC 9073 섹션 7.1
VLOCATION위치 구성 요소RFC 9073 섹션 7.2
VRESOURCE자원 구성 요소RFC 9073 섹션 7.3



RFC 문서에는 이 외에도 다양한 구성 요소들이 정의되어 있다.

다음은 1997년 7월 14일부터 7월 15일까지의 바스티유 데이 파티를 나타내는 iCalendar 객체의 예시이다.

```text

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//hacksw/handcal//NONSGML v1.0//EN

BEGIN:VEVENT

DTSTART:19970714T170000Z

DTEND:19970715T035959Z

SUMMARY:Bastille Day Party

END:VEVENT

END:VCALENDAR

4. 1. VEVENT (이벤트)

VEVENT 구성 요소는 캘린더에 예약된 이벤트에 대한 속성 집합이다. 구체적인 용건뿐만 아니라 "TRANSPARENT" (투명)와 같이 백지 상태를 나타내는 기술도 가능하다.[1] 알람을 설정하는 경우, VEVENT 내부에 VALARM 구성 요소를 포함한다.[1]

VEVENT는 시작 시간을 정의하는 DTSTART 속성과 종료 시간을 정의하는 DTEND 속성을 가진다.[1] 기념일이나 매일 반복되는 이벤트도 VEVENT로 기술된다. 표준에서는 DATE-TIME에 일시가 기술되지만, DTSTART 속성이 일시 데이터를 가지고, DTEND 속성은 가지지 않는다.[1]

예약을 취소할 때는 UID는 그대로 유지되며, 다른 구성 요소에 <SEQUENCE: 갱신 번호>가 설정된다.[1]

다음은 VEVENT 구성 요소의 예시이다.

```text

BEGIN:VEVENT

DTSTART:19970714T170000Z

DTEND:19970715T035959Z

SUMMARY:Bastille Day Party

END:VEVENT

```

이 예시는 1997년 7월 14일부터 7월 15일까지 진행되는 바스티유 데이 파티를 나타낸다.

4. 2. VTODO (할 일)

VTODO는 할 일 항목, 작업 항목 또는 할당을 설명한다. 일부 캘린더 응용 프로그램은 `VTODO` 항목을 인식하지 못할 수 있다. (예: Outlook)[1]

다음은 1998년 4월 15일의 할 일(ToDo)을 iCalendar영어에 따라 기술한 예시이다.

```text

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//ABC Corporation//NONSGML My Product//EN

BEGIN:VTODO

DTSTAMP:19980130T134500Z

SEQUENCE:2

UID:uid4@host1.com

ORGANIZER:MAILTO:unclesam@us.gov

ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@example.com

DUE:19980415T235959

STATUS:NEEDS-ACTION

SUMMARY:Submit Income Taxes

BEGIN:VALARM

ACTION:AUDIO

TRIGGER:19980403T120000

ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-

files/ssbanner.aud

REPEAT:4

DURATION:PT1H

END:VALARM

END:VTODO

END:VCALENDAR

4. 3. VJOURNAL (저널)

`VJOURNAL`은 특정 캘린더 날짜에 설명 텍스트를 첨부하는 데 사용되는 저널 항목이다. 일상 활동, 성과 기록, 관련 할 일 항목의 진행 상황 설명 등에 사용된다.[1] `VJOURNAL`은 캘린더에서 시간을 차지하지 않으므로 사용 가능/불가 시간에 영향을 미치지 않는다. 실제로 `VJOURNAL` 항목을 지원하는 프로그램은 거의 없다.

플럼 카나리즈 차프 소프트웨어(Plum Canarys Chapp Software)사는 프로젝트 태스크의 진척 관리 솔루션의 데이터 형식으로 `VTODO`와 `VJOURNAL`을 채택하고 있다. 또한, KDE의 일정 관리 프로그램(KOrganizer)도 `VJOURNAL`을 지원하고 있다.

아래는 `VJOURNAL`의 기술 샘플이다.

```

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//ABC Corporation//NONSGML My Product//EN

BEGIN:VJOURNAL

DTSTAMP:19970324T120000Z

UID:uid5@host1.com

ORGANIZER:MAILTO:jsmith@example.com

STATUS:DRAFT

CLASS:PUBLIC

CATEGORY:Project Report, XYZ, Weekly Meeting

DESCRIPTION:Project xyz Review Meeting Minutesn

Agendan1. Review of project version 1.0 requirements.n2.

Definition

of project processes.n3. Review of project schedule.n

Participants: John Smith, Jane Doe, Jim Dandyn-It was

decided that the requirements need to be signed off by

product marketing.n-Project processes were accepted.n

  • Project schedule needs to account for scheduled holidays

and employee vacation time. Check with HR for specific

dates.n-New schedule will be distributed by Friday.n-

Next weeks meeting is cancelled. No meeting until 3/23.

END:VJOURNAL

END:VCALENDAR

4. 4. VFREEBUSY (사용 가능/불가 시간)

VFREEBUSY 구성 요소는 사용 가능/불가 시간, 즉 비어 있는 시간과 예정된 시간을 정의한다.[1] 다음은 예정 시간 정보를 기술한 예시이다. 특정 URL에 위치하는 경우 확장자는 "ifb"가 된다.

```

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//RDU Software//NONSGML HandCal//EN

BEGIN:VFREEBUSY

ORGANIZER:MAILTO:jsmith@example.com

DTSTART:19980313T141711Z

DTEND:19980410T141711Z

FREEBUSY:19980314T233000Z/19980315T003000Z

FREEBUSY:19980316T153000Z/19980316T163000Z

FREEBUSY:19980318T030000Z/19980318T040000Z

URL:http://www.host.com/calendar/busytime/jsmith.ifb

END:VFREEBUSY

END:VCALENDAR

4. 5. VTIMEZONE (시간대)

VTIMEZONE은 아이캘린더에서 시간대 정보를 정의하는 데 사용되는 구성 요소이다.[1] 이 구성 요소는 표준시를 나타내는 `STANDARD`와 일광 절약 시간을 나타내는 `DAYLIGHT` 하위 구성 요소를 포함할 수 있다.[1]

VTIMEZONE 구성 요소[1]
이름종류RFC 섹션MS-OXCICAL 섹션
VTIMEZONE구성 요소3.6.5. 시간대 구성 요소
STANDARD구성 요소3.6.5. 시간대 구성 요소1.1.19.2
DAYLIGHT구성 요소3.6.5. 시간대 구성 요소1.1.19.3


4. 6. VALARM (알람)

VALARM은 알람 설정을 정의하는 구성 요소로, 주로 `VEVENT`와 같은 다른 구성 요소에 포함되어 사용된다.[1]

4. 7. 기타 구성 요소

RFC 7953 섹션 3.1에 VAVAILABILITY 구성 요소와 AVAILABLE 구성 요소가 있다.[1] RFC 9073 섹션 7.1에는 PARTICIPANT 구성 요소,[1] 섹션 7.2에는 VLOCATION 구성 요소,[1] 섹션 7.3에는 VRESOURCE 구성 요소가 있다.[1]

아이캘린더 기타 구성 요소
이름설명
VAVAILABILITYRFC 7953 섹션 3.1
AVAILABLERFC 7953 섹션 3.1
PARTICIPANTRFC 9073 섹션 7.1
VLOCATIONRFC 9073 섹션 7.2
VRESOURCERFC 9073 섹션 7.3


5. 속성 (Properties) 및 매개변수 (Parameters)

iCalendar 구성 요소는 속성과 매개변수를 사용하여 상세 정보를 표현한다. 주요 속성 및 매개변수는 다음과 같다.

iCalendar 주요 속성
이름설명
CALSCALE달력 체계 (기본값: 그레고리력)
METHOD상호 운용 방식 (예: PUBLISH, REQUEST, REPLY)
PRODID생성 프로그램 식별자
VERSIONiCalendar 버전 (현재: 2.0)
ATTACH파일 첨부
CATEGORIES범주 (예: 업무, 개인)
CLASS접근 분류 (예: PUBLIC, PRIVATE, CONFIDENTIAL)
COMMENT주석
DESCRIPTION상세 설명
GEO지리적 위치 (위도, 경도)
LOCATION장소
PERCENT-COMPLETE완료율
PRIORITY우선순위 (0-9, 0: 정의되지 않음, 1: 높음, 9: 낮음)
RESOURCES필요한 자원 (예: 프로젝터, 회의실)
STATUS상태 (예: VEVENT - TENTATIVE, CONFIRMED, CANCELLED; VTODO - NEEDS-ACTION, COMPLETED, IN-PROCESS, CANCELLED; VJOURNAL - DRAFT, FINAL, CANCELLED)
SUMMARY요약
COMPLETED완료된 날짜 및 시간
DTEND종료 날짜 및 시간
DUE마감일
DTSTART시작 날짜 및 시간
DURATION기간
FREEBUSY사용 가능/불가 정보
TRANSP투명도 (OPAQUE: 일정 있음, TRANSPARENT: 일정 없음)
TZID시간대 식별자
TZNAME시간대 이름
TZOFFSETFROM이전 시간대 오프셋
TZOFFSETTO현재 시간대 오프셋
TZURL시간대 URL
ATTENDEE참석자 (이메일 주소 등)
CONTACT연락처 정보
ORGANIZER주최자 (이메일 주소 등)
RECURRENCE-ID반복 일정의 특정 인스턴스 식별자
RELATED-TO연관된 구성 요소의 UID
URL관련 URL
UID고유 식별자
EXDATE예외 날짜 (반복 일정에서 제외되는 날짜)
RDATE반복 날짜 (추가되는 날짜)
RRULE반복 규칙
ACTION알람 동작 (예: AUDIO, DISPLAY, EMAIL)
REPEAT알람 반복 횟수
TRIGGER알람 발생 시점
CREATED생성된 날짜 및 시간
DTSTAMP생성 또는 마지막 수정 날짜 및 시간
LAST-MODIFIED마지막 수정 날짜 및 시간
SEQUENCE수정 횟수
REQUEST-STATUS요청 상태 (예: 2.0;Success)



iCalendar 주요 매개변수
이름설명
ALTREP대체 텍스트 표현 (예: 다른 언어)
CN일반 이름 (예: 참석자 이름)
CUTYPE사용자 유형 (예: INDIVIDUAL, GROUP, RESOURCE, ROOM, UNKNOWN)
DELEGATED-FROM위임한 사람
DELEGATED-TO위임받은 사람
DIR디렉토리 항목 참조 (예: LDAP URL)
ENCODING인코딩 방식 (예: 8BIT, BASE64)
FMTTYPE형식 유형 (예: text/plain, text/html)
FBTYPE사용 가능/불가 유형 (예: FREE, BUSY, BUSY-UNAVAILABLE, BUSY-TENTATIVE)
LANGUAGE언어 (예: ko-KR)
MEMBER그룹 멤버 (이메일 주소)
PARTSTAT참여 상태 (예: NEEDS-ACTION, ACCEPTED, DECLINED, TENTATIVE, DELEGATED)
RANGERECURRENCE-ID 범위 (THISANDFUTURE: 현재 및 이후 인스턴스)
RELATED알람 트리거 관계 (START: 시작 시, END: 종료 시)
RELTYPE관계 유형 (예: PARENT, CHILD, SIBLING)
ROLE참여 역할 (예: CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT, NON-PARTICIPANT)
RSVPRSVP 필요 여부 (TRUE, FALSE)
SENT-BY보낸 사람 (이메일 주소)
TZID시간대 식별자 (DTSTART, DTEND 등에 사용)
VALUE값 데이터 유형 (예: DATE, DATE-TIME, PERIOD)


6. 확장 (Extensions)

vCalendar영어 및 iCalendar영어는 "X-" 접두사를 사용하여 개인 소프트웨어 확장을 지원하며, 이 중 일부는 널리 사용된다.

6. 1. X- 접두어

vCalendar 및 iCalendar는 개인 소프트웨어 확장을 지원하며, "X-" 접두사를 사용하고, 이 중 일부는 널리 사용된다.

이러한 확장 중 일부는 다음과 같다.

  • `X-RECURRENCE-ID`: iCalendar 2.0 RECURRENCE-ID를 모방하는 vCalendar 1.0 확장 (Nokia S60 3rd Edition)
  • `X-EPOCAGENDAENTRYTYPE`: 클라이언트 캘린더 유형을 정의한다.
  • `X-FUNAMBOL-AALARMOPTIONS`
  • `X-FUNAMBOL-ALLDAY`: 종일 이벤트 플래그
  • `X-MICROSOFT-CDO-ALLDAYEVENT`: Microsoft Outlook 종일 이벤트 플래그
  • `X-MICROSOFT-CDO-BUSYSTATUS`: Microsoft Outlook 상태 정보
  • `X-MICROSOFT-CDO-INTENDEDSTATUS`
  • `X-WR-CALNAME`: 캘린더의 표시 이름
  • `X-WR-CALDESC`: 캘린더 설명
  • `X-WR-RELCALID`: 캘린더의 전역 고유 식별자[16]
  • `X-WR-TIMEZONE`
  • `X-PUBLISHED-TTL`: 캘린더 구독에 권장되는 업데이트 간격
  • `X-ALT-DESC`: 이벤트 설명에 HTML 마크업을 포함하는 데 사용된다. 표준 DESCRIPTION 태그는 비 HTML 버전을 포함해야 한다.
  • `X-FMTTYPE`, `X-FILEDATE`, `X-NAME`, `X-CN`, `X-STATUS`, `X-ROLE`, `X-SENTBY`, `X-SYMBIAN-DTSTAMP`, `X-METHOD`, `X-RECURRENCE-ID`, `X-EPOCALARM`, `X-SYMBIAN-LUID`, `X-EPOCAGENDAENTRYTYPE`[17]

7. 다른 표현 (Other representations)

xCal은 아이캘린더 데이터를 XML로 표현한 것이며, jCal은 아이캘린더 데이터를 JSON으로 표현한 것이다. hCalendar는 마이크로포맷을 사용하여 아이캘린더 데이터의 하위 집합을 (x)HTML로 표현한 것이고, hEvent는 hCalendar 형식의 일부 접근성 문제를 해결하기 위해 마이크로포맷을 사용하여 아이캘린더 데이터의 하위 집합을 HTML로 표현한 것이다.

7. 1. xCal

xCal은 iCalendar 데이터를 XML로 표현한 것이다.[1]

7. 2. jCal

jCal은 에 정의된 iCalendar 데이터를 JSON으로 표현한 것이다.

7. 3. hCalendar & hEvent

hCalendar는 마이크로포맷을 사용하여 iCalendar 데이터의 하위 집합을 (x)HTML로 표현한 것이다. hEvent는 hCalendar 형식의 일부 접근성 문제를 해결하기 위해 마이크로포맷을 사용하여 iCalendar 데이터의 하위 집합을 HTML로 표현한 것이다.

8. 라이브러리

iCalendar 데이터 파일 생성을 위해 다양한 프로그래밍용 라이브러리가 공개되어 있다.

참조

[1] 간행물 Internet Calendaring and Scheduling Core Object Specification (iCalendar) https://icalendar.or[...] Internet Engineering Task Force 2018-12-07
[2] 웹사이트 IBM Lotus Notes 8.5 iCalendar: Interoperability, implementation, and application http://www.ibm.com/d[...] IBM DeveloperWorks 2015-04-05
[3] 웹사이트 iCalendar.org https://icalendar.or[...] Z Content 2018-03-28
[4] 웹사이트 vCalendar: The Electronic Calendaring and Scheduling Exchange Format, Version 1.0 http://www.imc.org/p[...] Internet Mail Consortium 2018-03-28
[5] 웹사이트 vCalendar: The Basis for Cross-Platform Scheduling https://www.imc.org/[...] Internet Mail Consortium 2016-02-28
[6] 웹사이트 Calendaring and Scheduling Standards Simplification (calsify) https://datatracker.[...] IETF 2015-04-05
[7] 웹사이트 the end of calsify working group– not the end of the mailing list http://lists.osafoun[...] 2015-04-05
[8] 웹사이트 Calendaring Extensions (calext) https://datatracker.[...] IETF 2016-12-01
[9] 간행물 Internet Calendaring and Scheduling Core Object Specification (iCalendar) 2020-07-01
[10] 문서 From RFC 2445
[11] 간행물 iCalendar Property Extensions 2022-10-03
[12] 간행물 Internet Calendaring and Scheduling Core Object Specification (iCalendar)
[13] 간행물 Internet Calendaring and Scheduling Core Object Specification (iCalendar)
[14] 웹사이트 '[RFC5546] Section 3.4 Methods for VTODO Components' https://msdn.microso[...] 2015-08-07
[15] 문서 CalConnect, 2004
[16] 웹사이트 '[MS-OXCICAL]: Property: X-WR-RELCALID' https://msdn.microso[...] 2016-02-23
[17] 웹사이트 iCal and vCal Properties http://devlib.symbia[...] 2023-11-17
[18] 웹사이트 '[MS-OXCICAL]: 2.1.3 Processing Rules' https://learn.micros[...] 2023-11-16
[19] 웹사이트 '{{IETF RFC|5545}}, Internet Calendaring and Scheduling Core Object Specification (iCalendar)' https://datatracker.[...] 2011-11-03
[20] 웹사이트 '{{IETF RFC|2445}}, Internet Calendaring and Scheduling Core Object Specification (iCalendar)' https://datatracker.[...] 2011-11-03
[21] 웹사이트 '{{IETF RFC|5546}}, iCalendar Transport-Independent Interoperability Protocol (iTIP)' https://datatracker.[...] 2011-11-03
[22] 웹사이트 '{{IETF RFC|6047}} , iCalendar Message-Based Interoperability Protocol (iMIP)' https://datatracker.[...] 2011-11-03
[23] 웹사이트 '{{IETF RFC|3283}} , Guide to Internet Calendaring' https://datatracker.[...] 2011-11-03
[24] 웹사이트 '{{IETF RFC|4324}} , Calendar Access Protocol (CAP)' https://datatracker.[...] 2011-11-03
[25] 문서 iCalendar is a standard (RFC 5545) for calendar data exchange. The standard is sometimes referred to as "iCal", which also is the name of the [[애플|Apple Inc.]] calendar program (see [[iCal]]) that provides one of the implementations of the standard.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com