일치하는 첫 날짜로 시작하기
예제는 규칙에 맞는 DTSTART를 포함합니다. 월요일을 매월 두 번째 화요일로 바꿨다면 시작 날짜도 바꾸세요. 모드 전환은 다른 입력을 덮어쓰지 않습니다. 예제와 지우기는 변경 내용을 검토한 후 적용하며 한 번 되돌릴 수 있습니다.
날짜와 시간
시작 시각과 시간대를 지정하고 반복 조건 또는 기존 문자열에서 날짜를 확인합니다.
BYDAY: MO,WE 또는 2TU,-1FR. 순번은 월·연 반복에서만 사용합니다. BYMONTHDAY: −31…−1, 1…31; BYMONTH: 1…12; BYSETPOS: −366…−1, 1…366이며 다른 BY 조건이 필요합니다. 목록은 쉼표로 구분하고 빈 조건은 생략합니다.
입력은 이 브라우저에서 처리되며 서버로 전송되지 않습니다.
시작은 초를 포함한 현지 ISO 날짜·시간(2026-09-14T09:00:00)입니다. UNTIL은 Z가 붙은 UTC 시간입니다. DTSTART 자체가 반복 조건과 일치해야 합니다.
서머타임으로 없는 시간은 전환 전 오프셋으로 해석해 이동된 시각을 보여 줍니다. 중복 시간은 첫 번째를 사용하고 없는 달력 날짜는 건너뜁니다.
일·주·월·연 반복만 지원합니다. 입력 8,192 UTF-16 단위, 예외 100개, COUNT 최대 10,000. 미리보기 1–1,000개, DTSTART부터 10년 및 2099년까지, 계산 제한 5초.
입력 또는 옵션이 변경되었습니다. 결과를 갱신한 뒤 내보내세요.
격주 회의와 매월 말일 결제는 날짜를 늘리는 방식이 다릅니다. RRULE 생성기는 반복 규칙을 실제 날짜로 펼쳐 시작이 조건에 맞는지, 짧은 달에 일정이 사라지는지를 확인하도록 돕습니다. 이미 있는 반복 이벤트를 검사할 때도 같은 맥락을 사용할 수 있습니다.
RRULE 빌더의 폼과 분석 텍스트는 따로 남습니다. 날짜는 오늘이 아니라 DTSTART부터 계산하므로 과거 시작을 가진 시리즈도 확인할 수 있습니다. 실제 달력에 등록하기 전에 종료 조건과 시간대를 함께 살펴보세요.
RRULE 생성기는 고정 날짜와 월말을 구분합니다. BYMONTHDAY=31이면 31일이 없는 달을 건너뛰고, BYMONTHDAY=-1이면 매달 마지막 날짜를 선택합니다. 2월 결과를 보면 결제일에 어떤 조건이 필요한지 쉽게 확인할 수 있습니다.
먼저 COUNT로 원래 시리즈를 제한하고 EXDATE로 정확한 시각을 제외합니다. 다섯 번 중 한 번을 취소하면 네 번이 남습니다. 결과의 제외 횟수로 해당 예외가 실제 발생과 일치했는지 확인할 수 있습니다.
예제는 규칙에 맞는 DTSTART를 포함합니다. 월요일을 매월 두 번째 화요일로 바꿨다면 시작 날짜도 바꾸세요. 모드 전환은 다른 입력을 덮어쓰지 않습니다. 예제와 지우기는 변경 내용을 검토한 후 적용하며 한 번 되돌릴 수 있습니다.
시작과 폼의 예외는 선택한 IANA 시간대의 초 단위 ISO 시간입니다. UNTIL은 Z가 붙은 UTC입니다. 입력에 DTSTART가 있으면 보조 입력보다 우선하며 적용된 시작과 시간대는 결과에서 확인합니다.
자동 계산은 350 ms 후 실행됩니다. 끄면 실행 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 변경 시 이전 결과의 내보내기가 잠깁니다. 화면은 50개씩 보여 주지만 보고서와 JSON은 계산된 전체 미리보기를 담습니다.
INTERVAL은 일·주·월·연 빈도의 간격입니다. BYDAY는 요일 코드를 사용하며 월·연 규칙에서는 순번도 허용합니다. WKST가 바뀌면 격주에 속하는 날짜도 달라질 수 있습니다.
BYMONTH는 월을, BYMONTHDAY는 월초나 월말에서 센 날짜를 고릅니다. BYSETPOS는 해당 주기 후보의 위치입니다. 월요일부터 금요일과 -1을 조합하면 마지막 평일을 고르지만 공휴일 달력은 반영하지 않습니다.
단일 규칙은 화면의 시작과 시간대를 사용합니다. 명시한 DTSTART에는 Z나 TZID가 필요합니다. 정규화된 조각에도 실제 시작을 남겨 다른 코드로 옮길 때 반복 기준이 빠지지 않도록 합니다.
각 행은 현지 시각, 오프셋, UTC를 표시합니다. 서머타임 공백으로 이동한 경우 요청했던 시각도 보여 줍니다. 보통 오전 회의는 현지 시간을 유지하면서 대응하는 UTC가 변합니다.
RRULE 안의 매개변수가 아니라 별도 EXDATE 속성을 사용합니다. 폼에는 현지 시각을 한 줄에 하나씩 쓰고, 분석에서는 Z나 TZID가 붙은 줄을 입력합니다. 정규화된 제외 시각은 UTC로 출력됩니다.
IANA 지역의 현지 시간을 기준으로 날짜를 해석해 UTC가 달라질 수 있습니다. 없는 시간은 전환 전 오프셋으로 해석하며 시계가 되돌아간 중복 시간은 처음 발생한 순간을 사용합니다.
BYMONTHDAY=31은 짧은 달을 건너뜁니다. 매달 마지막 날짜가 필요하면 BYMONTHDAY=-1을 사용하세요. 가까운 날짜로 자동 보정하면 의미가 달라지므로 그렇게 처리하지 않습니다.
이 도구는 오류를 표시합니다. 종료 이후인 시작 날짜를 억지로 첫 발생으로 넣지 않습니다. 시간대 때문에 날짜 표기가 달라질 수 있으니 UTC의 실제 순간을 비교하세요.
생성하지 않습니다. 출력은 반복 속성 조각입니다. UID, DTSTAMP, 제목, 종료 시각 같은 이벤트 정보는 소비하는 애플리케이션에서 추가해야 하며 이 페이지는 전체 ICS 유효성을 판단하지 않습니다.
예상과 다른 실행 시각인가요?
RRULE 생성기로 시작, 종료, 예외와 실제 날짜를 함께 검토하세요. 현지 시각과 UTC가 모두 의도와 맞을 때 조각을 복사할 수 있습니다.