달력에 사용되는 iCalendar 형식 part1 정보

iCalendar 파일은 달력 등에서 데이트를 읽을 때 사용하는 형식입니다.
다른 사람과 예약을 공유하는 등 수단이 많지만 iCalendar 파일을 통해 읽는 것은 모든 사람의 환경에 상관없이 할 수 있는 좋은 방법이라고 생각합니다.
그런 iCalendar 파일을 살짝 조사해 봤기 때문에 간단하게 요약해 보겠습니다.
iCalendar 파일의 특징
  • 스케줄링을 위한 표준 형식
  • MIME 유형은 "text/callendar"
  • 확장자로 사용할 수 있습니다.ics 사용
  • 내용은 순수한 텍스트이고 문자 코드는utf-8을 표준으로 한다
  • 내용은 텍스트 데이터, 텍스트 편집기로 편집, 확장자 ics로 제작.
    운영체제에 따라 다소 다르지만 기본적으로 iCalendar 파일을 열면 표준 달력 프로그램에 예약을 등록할 수 있다.
    다음은 문서 내용의 기술 방법을 설명한다.
    간단한 일정
    iCalendar 파일의 사용에 대한 내용은 RFC-245에서 요약합니다.
    이 규격서에서 iCalendar 파일의 가장 간단한 예는 다음과 같다.
    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
    
    딱 봐도 뭔지 알 수 없는'1997년 7월 14일~15일 베이스틸 데이 파티(파리 페스티벌)'라는 계획을 추가할 수 있는 문서다.
    를 클릭하고 실제 파일을 열면 달력에 다음 내용이 추가됩니다.

    기본적으로 HTML과 같은 태그 형식입니다.
    그럼 아까 iCalendar 파일에 대한 설명을 조금만 성형해 보세요.
    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
    
    나는 움츠려 넣으려고 했다.실제로 들여쓰기를 사용하면 정확하게 읽을 수 없습니다.
    이것을 보면 BEGIN: 0 0, END: 0 의 기술 가운데 한 영역이 있음을 알 수 있다.
    HTML과 마찬가지로 iCalendar도 시작과 끝으로 둘러싸야 한다.
    가장 바깥쪽은 VCLALENDAR로 불리는 직업 바티다.
    이것은 HTML의 <>와 같다.
    바로 아래
  • VERSION:2.0
  • PRODID:-//hacksw/handcal//NONSGML v1.0//EN
  • BEGIN:VEVENT → END:VEVENT
  • 이런 견해가 있다.
    3의 EVENT는 가입 예정일, 시간, 제목 등의 기초 부분으로 상세한 내용은 잠시 후에 설명한다.
    1과 2는 파일 형식에 대한 총결산으로 HTML에서 말한 머리 정보이다.
    요소는'전문명칭:값'으로 기술한다.
    VERSION 및 PRODID 정보
    필수 항목입니다.
    VERSION 예.ics 형식의 버전을 나타낸다.RFC-2445는 2.0으로 기본적으로 이렇다.
    PRODID는 파일 제작자에 대한 정보로, 어쨌든 누가 만든 이름을 기재할 수 있는 부분이다.
    예를 들어'-//hacksw/handcal/NONSGML v1.0/EN'은 특별히 규정된 형식이 없는 것 같다.
    자주 쓰는 것은'////회사명/개인명(제품명)/국명'인 것 같다.누가 만들었는지 알면 돼, 좋아하는 거 써.
    EVENT 정보
    이것은 예정된 상세한 상황에 대한 총결산 부분이다.
    자세한 내용은 VEVENT→END: VEVENT로 둘러싸인 환경에 기술되어 있습니다.
    여러 예약을 읽으려면 비긴-VEVENT→END:VENT를 추가하면 됩니다.
    예에서 다음과 같은 사진이 나왔다.
  • DTSTART:19970714T170000Z
  • DTEND:19970715T035959Z
  • SUMMARY:Bastille Day Party
  • DTSTART·DTEND는 각각 예정된 시작·종료 시간을 표시하고, SUMMARY는 예정된 제목이라는 것은 이해할 수 있을 것 같다.
    이외에도 자주 사용하는 것은 LOCATION, URL, DESCRIPTION 등 속성으로 장소, URL, 노트의 기술을 각각 추가할 수 있다.
    기본적으로 어떤 문자열이든 상관없지만 DTSTART·DTEND의 날짜와 시간 표시는 좀 특수하다. 아래에 설명해 보자.
    DTSTART 및 DTEND의 날짜 및 시간 태그 정보
    날짜와 시간의 기재는 ISO-88601의 국제 표기 규정 형식을 채택하여 다음과 같은 특징을 가지고 있다.
  • 날짜는 서력 4위, 월 2위, 일 2위 총 8위(yyymmdd)
  • 시간은 시, 분, 초 각각 2위, 총 6위(hmmss)
  • 날짜와 시간 사이에 "T"
  • 표시
  • 말미의'Z'는 세계협정시(UTC)
  • 를 나타낸다
    즉 그 DTSTART에 적힌 1997714T170000Z는 "UTC에서 1997년 7월 14일 17시 00분 00초"라고 밝혔다.
    UTC는 경도 0도의 시간으로, 일본(동경 135도)의 표준시(JST)가 9시간 앞선다.
    아까 그림을 보면 맥의 달력에 등록했을 때도 9시간 차이의 일본 시간으로 수정된 것을 알 수 있다.
    시간대 정보
    그나저나 일본에서 9시간 차이의 날짜를 써야 하니 귀찮다.
    글로벌화 계획이라면 차치하고 일본에 있는 사람들과 계획을 공유하는 게 기본이죠.
    이 경우 날짜와 시간의 시간대를 다음과 같이 설정할 수 있다.
    DTSTART;TZID=Asia/Tokyo:20180514T200000
    
    속성에서 세미콜론(;)그런 다음 TZID=(지역 이름)을 추가합니다.이번에는'아시아/Tokyo'로,'재팬'등에서도 읽을 수 있다.
    마지막으로 UTC의 끝을 나타내는 "Z"를 삭제하면 TZID가 설정한 영역의 시간대 내에서 읽습니다.
    끝맺다
    이번 내용은 iCalendar 파일의 최소한의 기능일 뿐입니다.
    달력 애플리케이션에 사용되는 기능으로는 중복과 예정된 시간에 대한 경보 기능 등 다양한 기능이 있다.
    part2에서 경보 기능을 조사하고 정리했다.
    장문의 글과 졸렬한 글이지만 여기까지 읽어주셔서 감사합니다
    참고 자료
    iCalendar - Wikipedia
    RFC-2445

    좋은 웹페이지 즐겨찾기