Tiny Online Tools logoTiny Online ToolssearchПоиск инструментов…grid_viewВсе инструменты
Главнаяchevron_rightИнструменты для почты и календаряchevron_rightРазворачивание повторяющихся событийРазворачивание повторяющихся событий

Разворачивание повторяющихся событий

Разверните правило RRULE из iCalendar в даты, которые оно на самом деле порождает, с учётом EXDATE, RDATE и часовых поясов.

Откуда берётся правилоСобрать или вставить правилоИз файла календаряОба режима разворачивают одинаково. Файл вдобавок приносит собственные VTIMEZONE, EXDATE и RDATE.Примерыbolt День благодарения (США)bolt Последняя пятница месяцаbolt Каждый второй вторник и воскресеньеbolt Ежедневная планёрка по буднямbolt 29 февраляbolt Невыполнимое правилоКонструктор правилавспнвтсрчтптсбОставьте пустым, чтобы решала частота. С порядковым номером ниже это означает «энный день недели».Оставляет только энное совпадение внутри каждого периода. -1 — последнее.RRULEС префиксом RRULE: или без него. Правка этого текста снова разбирает правило в конструктор выше.DTSTARTСчитать датой без времениДополнительные датыПо одной в строке или через запятую. Принимаются и 2026-03-16 09:30, и 20260316T093000.Сколько и когдаЖёсткий предел 2000. Бесконечное правило обрезается здесь и помечается как усечённое.

Похожие инструменты

Инспектор календаря ICS

Инспектор календаря ICS

Откройте файл .ics и изучите его события, правила повторения, часовые пояса, напоминания и участников.

Просмотр файлов электронной почты

Просмотр файлов электронной почты

Откройте файлы EML и Outlook MSG в браузере: заголовки, отрисованное тело письма, структуру MIME и вложения — без почтового клиента.

Просмотр контактов VCF

Просмотр контактов VCF

Откройте файл vCard и прочитайте каждое его поле, включая фотографии, не импортируя его в адресную книгу.

Просмотр почтовых архивов MBOX

Просмотр почтовых архивов MBOX

Просматривайте архив MBOX прямо в браузере: ищите по списку писем, читайте любое и сохраняйте его — ничего никуда не импортируя.

ASCII в Изображение

ASCII в Изображение

Рендеринг ASCII-арта как загружаемого изображения PNG или JPG с пользовательским стилем.

Markdown в HTML

Markdown в HTML

Мгновенно преобразуйте Markdown в HTML с живым предпросмотром.

Декодер Base64

Декодер Base64

Декодирует текст, закодированный в Base64.

apps

Больше инструментов

Просмотрите нашу полную коллекцию бесплатных онлайн-инструментов.

Правило повторения — это программа, а не дата

RRULE:FREQ=MONTHLY;BYDAY=-1FR;COUNT=12 не содержит ни одной даты. Оно содержит указания, как их получить, и единственный честный способ ответить на вопрос когда это происходит на самом деле — выполнить эти указания. Этот инструмент их выполняет.

Что применяется

Всё из RFC 5545 §3.3.10: FREQ, INTERVAL, COUNT, UNTIL, WKST, все девять частей BY*, включая отрицательные порядковые номера вроде -1FR («последняя пятница»), и BYSETPOS. Поверх правила EXDATE убирает даты, а RDATE добавляет их, и каждая строка говорит, откуда она взялась: дата, существующая лишь потому, что кто-то вписал её вручную, — это не то же самое, что дата, порождённая правилом.

Зачем столбец со смещением UTC

Еженедельная встреча в 09:00 остаётся в 09:00 и после перевода часов. Момент сдвигается на час, показания настенных часов — нет. Именно этого требует RFC 5545, и именно это наивное «прибавить 7 × 86 400 000 миллисекунд» портит дважды в год. Поэтому у каждого повторения показаны оба значения рядом: местное время и настоящий момент UTC вместе со смещением, которое его дало. Если у двух повторений смещения разные, инструмент говорит об этом прямо.

Пояса определяются по базе IANA вашего браузера, когда TZID — настоящее имя зоны, и по блоку VTIMEZONE внутри файла в остальных случаях: так придуманные Microsoft имена вроде Romance Standard Time по-прежнему разрешаются верно. Когда не срабатывает ни то ни другое, смещение показывается как неизвестное, а не молча принимается за UTC.

Границы, названные прямо

Бесконечное правило разворачивается до заданного вами предела, и результат помечается как усечённый. Правило с невыполнимыми условиями — FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=30 записывается законно и не может совпасть ни с одним настоящим днём — не даёт ничего, и инструмент объясняет почему, вместо того чтобы показать пустую таблицу.

Конфиденциальность

Всё выполняется в вашем браузере. Файл календаря никуда не загружается, и ничто здесь не обращается к сети.