날짜와 시간

RRULE 생성기 · 실제 반복 날짜를 확인하세요

시작 시각과 시간대를 지정하고 반복 조건 또는 기존 문자열에서 날짜를 확인합니다.

RRULE 생성기

반복 조건

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 생성기로 날짜를 확인하는 이유

31일과 말일은 다릅니다

RRULE 생성기는 고정 날짜와 월말을 구분합니다. BYMONTHDAY=31이면 31일이 없는 달을 건너뛰고, BYMONTHDAY=-1이면 매달 마지막 날짜를 선택합니다. 2월 결과를 보면 결제일에 어떤 조건이 필요한지 쉽게 확인할 수 있습니다.

고정 31일은 짧은 달을 건너뛰고 말일 규칙은 모든 달의 마지막 날짜를 남기는 두 달력 흐름.

예외를 지워도 횟수는 늘지 않습니다

먼저 COUNT로 원래 시리즈를 제한하고 EXDATE로 정확한 시각을 제외합니다. 다섯 번 중 한 번을 취소하면 네 번이 남습니다. 결과의 제외 횟수로 해당 예외가 실제 발생과 일치했는지 확인할 수 있습니다.

다섯 발생 표시 중 하나를 지우고 추가 표시 없이 네 개를 남긴 순서도.

시작과 반복 조건을 맞추는 방법

01

일치하는 첫 날짜로 시작하기

예제는 규칙에 맞는 DTSTART를 포함합니다. 월요일을 매월 두 번째 화요일로 바꿨다면 시작 날짜도 바꾸세요. 모드 전환은 다른 입력을 덮어쓰지 않습니다. 예제와 지우기는 변경 내용을 검토한 후 적용하며 한 번 되돌릴 수 있습니다.

02

현지 반복과 UTC 종료 구분하기

시작과 폼의 예외는 선택한 IANA 시간대의 초 단위 ISO 시간입니다. UNTIL은 Z가 붙은 UTC입니다. 입력에 DTSTART가 있으면 보조 입력보다 우선하며 적용된 시작과 시간대는 결과에서 확인합니다.

03

저장 전 중단 이유 확인하기

자동 계산은 350 ms 후 실행됩니다. 끄면 실행 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 변경 시 이전 결과의 내보내기가 잠깁니다. 화면은 50개씩 보여 주지만 보고서와 JSON은 계산된 전체 미리보기를 담습니다.

날짜를 결정하는 조건

주 경계를 포함한 반복 간격

INTERVAL은 일·주·월·연 빈도의 간격입니다. BYDAY는 요일 코드를 사용하며 월·연 규칙에서는 순번도 허용합니다. WKST가 바뀌면 격주에 속하는 날짜도 달라질 수 있습니다.

후보 날짜에서 위치 선택

BYMONTH는 월을, BYMONTHDAY는 월초나 월말에서 센 날짜를 고릅니다. BYSETPOS는 해당 주기 후보의 위치입니다. 월요일부터 금요일과 -1을 조합하면 마지막 평일을 고르지만 공휴일 달력은 반영하지 않습니다.

시작 정보를 담은 조각

단일 규칙은 화면의 시작과 시간대를 사용합니다. 명시한 DTSTART에는 Z나 TZID가 필요합니다. 정규화된 조각에도 실제 시작을 남겨 다른 코드로 옮길 때 반복 기준이 빠지지 않도록 합니다.

현지 시각과 UTC를 나란히

각 행은 현지 시각, 오프셋, UTC를 표시합니다. 서머타임 공백으로 이동한 경우 요청했던 시각도 보여 줍니다. 보통 오전 회의는 현지 시간을 유지하면서 대응하는 UTC가 변합니다.

지원 범위와 계산 한계

일정 전체를 검증하지 않습니다
DTSTART, RRULE 한 개, EXDATE 최대 100개만 받습니다. VEVENT, VCALENDAR, RDATE, EXRULE, 공급자 확장, 종일 DATE와 명시적인 부동 시간은 거부합니다. .txt는 조각이며 가져올 수 있는 완전한 ICS 일정이 아닙니다.
네 가지 달력 빈도
초·분·시간 단위 빈도와 BYHOUR, BYMINUTE, BYSECOND, BYYEARDAY, BYWEEKNO는 지원하지 않습니다. 하루의 시각은 DTSTART에서 가져옵니다. 알 수 없는 필드는 버리지 않고 오류를 표시합니다.
시작 일치와 종료 조건
DTSTART 자체가 규칙에 맞아야 합니다. COUNT는 1–10,000이며 UNTIL과 함께 쓸 수 없습니다. UNTIL은 시작 이후의 UTC 시각이고 끝점과 정확히 일치하는 발생도 포함합니다.
날짜 누락과 시간 누락 구분
없는 날짜는 건너뛰고 COUNT에 넣지 않습니다. 서머타임 공백은 RFC 5545의 검증된 정오표 4271에 따라 전환 전 오프셋으로 해석합니다. 중복 시간은 첫 순간을 선택합니다. 시간대 데이터는 브라우저에 따릅니다.
정확한 시각만 제외
EXDATE는 DTSTART 자체도 제외할 수 있지만 하루 전체를 지우거나 횟수를 채우지 않습니다. 중복 예외는 정리됩니다. 공휴일 건너뛰기나 취소된 일정을 다른 날로 옮기는 기능은 없습니다.
유한한 미리보기
입력은 8,192 UTF-16 단위까지입니다. 시작 연도 1970–2099, 최대 1,000개, DTSTART부터 10년 이내이며 2099년까지 검색합니다. 5초 제한과 함께 개수 도달, 실제 종료, 검색 범위 도달을 구분합니다.

RRULE 생성기 자주 묻는 질문

특정 날짜를 제외하려면 어떻게 하나요?

RRULE 안의 매개변수가 아니라 별도 EXDATE 속성을 사용합니다. 폼에는 현지 시각을 한 줄에 하나씩 쓰고, 분석에서는 Z나 TZID가 붙은 줄을 입력합니다. 정규화된 제외 시각은 UTC로 출력됩니다.

서머타임은 반복 일정에 어떤 영향을 주나요?

IANA 지역의 현지 시간을 기준으로 날짜를 해석해 UTC가 달라질 수 있습니다. 없는 시간은 전환 전 오프셋으로 해석하며 시계가 되돌아간 중복 시간은 처음 발생한 순간을 사용합니다.

31일이 없으면 가까운 날짜를 사용할 수 있나요?

BYMONTHDAY=31은 짧은 달을 건너뜁니다. 매달 마지막 날짜가 필요하면 BYMONTHDAY=-1을 사용하세요. 가까운 날짜로 자동 보정하면 의미가 달라지므로 그렇게 처리하지 않습니다.

UNTIL이 DTSTART보다 과거면 날짜를 반환하나요?

이 도구는 오류를 표시합니다. 종료 이후인 시작 날짜를 억지로 첫 발생으로 넣지 않습니다. 시간대 때문에 날짜 표기가 달라질 수 있으니 UTC의 실제 순간을 비교하세요.

완전한 VEVENT를 생성하나요?

생성하지 않습니다. 출력은 반복 속성 조각입니다. UID, DTSTAMP, 제목, 종료 시각 같은 이벤트 정보는 소비하는 애플리케이션에서 추가해야 하며 이 페이지는 전체 ICS 유효성을 판단하지 않습니다.

예상과 다른 실행 시각인가요?

다음 반복 일정을 확인하세요

RRULE 생성기로 시작, 종료, 예외와 실제 날짜를 함께 검토하세요. 현지 시각과 UTC가 모두 의도와 맞을 때 조각을 복사할 수 있습니다.