iCalendar Rule Lab

iCalendar Rule Lab

All-day DATE VEVENT only. Timed/TZID events, DST conversion, calendar account access and invitation sending are unsupported.

1. All-day event and recurrence

Dates are limited to 1970–2099. Duration is 1–30 days; DTEND is an exclusive boundary.

Example: FREQ=WEEKLY;COUNT=8;BYDAY=MO,WE. COUNT or UNTIL=YYYYMMDD is required. Leave blank for a single event.

List YYYY-MM-DD dates separated by commas or newlines. DTSTART itself can be excluded.

The sample UID is replaced when run. Imported UIDs are preserved. Reusing a UID may update an existing event in some calendar apps.

2. Limited ICS import

One all-day VEVENT only. Timed data, zones, alarms, attendees and extra events are rejected. Maximum 32 KiB.

Comments & questions

iCalendar Rule Lab

Edit an all-day VEVENT's start date, duration, recurrence rule and exception dates, then compute actual occurrence dates. The supported DATE subset is DAILY/WEEKLY/MONTHLY plus INTERVAL, COUNT or UNTIL, BYDAY and monthly BYMONTHDAY. Unsupported ICS properties are rejected rather than silently discarded. This is calendar interchange work, unlike job cron or business-day counting.

Key features

  • Compute actual DATE recurrence starts and exclusive all-day ends
  • Apply EXDATE precedence and inspect COUNT/UNTIL boundaries
  • Strictly import one all-day VEVENT and export CRLF/folded UTF-8 ICS
  • Explicitly reject timed, time-zone, alarm and attendee data
  • Preview at most 100 occurrences and signal the 2099 horizon

How to use

  1. Enter an all-day title, start date and duration, or load the sample.
  2. Enter a RRULE with COUNT or UNTIL and any exception dates.
  3. Calculate and review occurrences, exclusions and preview limits.
  4. Optionally paste one all-day VEVENT ICS file for strict import.
  5. Copy or download the validated ICS and recheck it in the target calendar.

Use cases

  • Exclude one meeting from a twice-weekly series with EXDATE
  • See how monthly day 31 skips months without that date
  • Inspect and re-export a limited all-day VEVENT ICS file

Frequently asked questions

Does this calculate time zones or DST?

No. Only VALUE=DATE all-day events are supported. Dates have no time, TZID or UTC offset, so no DST wall-time conversion is performed. Timed DTSTART, TZID and VTIMEZONE are rejected.

Which RRULE parts are supported?

DAILY, WEEKLY and MONTHLY; INTERVAL 1–24; COUNT 1–120 or DATE UNTIL; plain BYDAY abbreviations; and monthly BYMONTHDAY. Weeks start Monday. BYSETPOS, ordinal weekdays, YEARLY and sub-day rules are unsupported.

What happens with an infinite recurrence?

Exactly one of COUNT or UNTIL is required; an unbounded RRULE is rejected. Preview stops at 100 shown occurrences or the end of 2099 and signals when it has not shown the full sequence.

How do EXDATE and UNTIL work?

UNTIL is inclusive and DTSTART is the first COUNT occurrence. Recurrence is counted before EXDATE removal, so the visible set may have fewer dates than COUNT. For all-day events DTEND is the exclusive next date.

Can I edit every ICS file?

No. Only one VERSION 2.0 all-day VEVENT with UID, DTSTAMP, SUMMARY, DATE DTSTART/DTEND, a supported RRULE and DATE EXDATE is accepted. Alarms, attendees, location, description and multiple events are rejected to avoid silent data loss.

Does saving ICS send invitations?

No. It only creates or downloads a local file; no email, invitation or sync occurs. Imported UIDs are retained and a fresh UID replaces the sample UID on export.

Privacy

ICS text and schedule calculations stay in the browser. No upload, calendar account connection or invitation sending occurs.

References

Related Tools

Business Day CalculatorCron Expression GeneratorGantt Dependency PlannerDOCX Style AuditorCitation ManagerDocument Search IndexSigned PDF InspectorPDF/A Archival PreflightPrint Preflight AuditorSearchable Scan PDF MakerPublication Accessibility AuditorResearch Evidence MatrixPDF Form DesignerPDF Annotation StudioPDF Object InspectorPDF Outline EditorEPUB Authoring WorkbenchDocument Version ComparatorBooklet Imposition DesignerSensitive Text RedactorHanja Reading WorkbenchGrammar Production LabDialogue Script EditorBook Index BuilderBilingual QA CheckerText Diagram EditorANSI Art StudioEmail Thread ExplorerPDF Redaction StudioRich Text SanitizerFixed Width Record DesignerPresentation Rehearsal StudioText Tokenization LabThree Way Text MergeKorean & English Braille ConverterText to SpeechTyping speed testKorean Text Pattern ReviewKorean Spelling QuizFont Preview and ComparisonHTML to MarkdownMojibake RepairSort LinesFind & ReplaceReverse TextRoman Numeral ConverterHangul Jamo ConverterKorean Initial ConsonantsAdd or Remove Line NumbersNumber to Korean WordsMorse Code ConverterROT13 & Caesar ConverterURL Slug GeneratorHTML Tag RemoverEmoji CollectionCharacter CounterUnit ConverterFile Size ConverterColor Code ConverterText DiffPDF Merge/SplitvCard Address Book EditorJPG to PDFKorean Name RomanizerOrganize PDF PagesFancy Font GeneratorContrast CheckerColor Palette GeneratorPDF to JPGLorem Ipsum GeneratorText Template WorkbenchKorean-English Typo ConverterText CleanerOnline NotepadWord Cloud GeneratorPDF UnlockEnglish Address ConverterPDF Compressor
Explore all Text/Convert tools →Image/Media →Life/Fun →Dev Tools →