일정 텍스트의 모습
iCalendar 일정은 BEGIN:VEVENT와 END:VEVENT 사이에 라벨이 붙은 줄이 모인 거예요. 이 형식은 2009년에 발행된 RFC 5545에 정의되어 있고 .ics 캘린더 파일이 쓰는 것과 같아요.
QR 크기의 예시는 이래요. BEGIN:VEVENT, SUMMARY:Bread baking class, DTSTART:20261015T170000Z, DTEND:20261015T190000Z, LOCATION:Maple Street Bakery, Portland, END:VEVENT. 완전한 캘린더 파일은 일정을 BEGIN:VCALENDAR로 감싸고 UID, DTSTAMP 같은 필드를 더하지만, QR코드는 공간을 아끼려고 일정 블록만 담는 경우가 많아요.
- SUMMARY: 일정 제목
- DTSTART와 DTEND: YYYYMMDDTHHMMSS 형식의 시작과 종료
- LOCATION: 장소나 주소
- DESCRIPTION: 더 긴 메모
- 끝의 Z는 시간이 UTC라는 뜻이에요
시간을 정확히 쓰기
끝에 Z를 붙인 UTC로 시간을 쓰는 것이 모든 사람에게 올바른 현지 시간으로 일정이 나타나게 하는 가장 간단한 방법이에요. Z가 없는 시간은 부동 현지 시간으로 취급되어 다른 시간대의 사람들에게는 어긋날 수 있고, 이름이 있는 시간대는 추가 데이터가 필요해서 코드가 커져요.
종일 일정은 DTSTART;VALUE=DATE:20261015처럼 날짜만 있는 값을 쓸 수 있어요.
지원과 대안
기본 카메라 앱의 일정 코드 지원은 달라요. 일정을 바로 추가하겠냐고 묻는 앱도 있고, 텍스트를 보여 주거나 스캐너 앱이 필요한 경우도 있어요. 인쇄 전에 사용자가 쓰는 휴대폰에서 확인해 볼 만해요.
흔한 대안은 호스팅된 .ics 파일이나 캘린더 추가 버튼이 있는 일정 페이지로 연결하는 QR코드예요. 링크를 쓰면 코드를 인쇄한 뒤에도 시간이나 장소를 고칠 수 있어요.