Description
Audit repeated explicit UID/RECURRENCE-ID identity pairs without interpreting recurrence rules, time zones or replacement precedence.
iCalendar separates content-line framing, property values, parameters and component nesting. TEXT escaping protects separators, while line folding is based on encoded octets. DATE, floating time, UTC and named-zone representations carry different information; a token-level operation does not resolve a timezone or expand recurrence rules.1
Audit repeated explicit UID/RECURRENCE-ID identity pairs without interpreting recurrence rules, time zones or replacement precedence.
When to use this tool
Use this tool to audit repeated explicit UID/RECURRENCE-ID identity pairs without interpreting recurrence rules, time zones or replacement precedence.
How to use the tool and how it works
- Enter eventsJson using the field definitions below. For JSON text, serialize the explicit records in the shown shape.
- Run the operation. Correct input errors before interpreting an output.
- Read result.duplicates. Use the ordering, boundary rules and absence conditions described below.
Group event records by exact UID and recurrenceId strings and report repeated pairs with their original indexes.2
| Input field | Meaning and units | Accepted input |
|---|---|---|
| eventsJson | JSON text encoding array of {uid: string, recurrenceId: string}. Keep the record keys and value types shown in the decoded example below. | Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies. |
These are the decoded structures used in the example’s JSON text fields. Supply the corresponding serialized JSON strings as input.
{
"eventsJson": [
{
"uid": "x",
"recurrenceId": "20260101"
},
{
"uid": "x",
"recurrenceId": "20260101"
}
]
} | Output field | Interpretation |
|---|---|
| result | Object containing the named fields below. |
| result.duplicates | Repeated UID/recurrence-ID pairs or uppercase parameter names with original indexes. |
{
"input": {
"eventsJson": "[{\"uid\":\"x\",\"recurrenceId\":\"20260101\"},{\"uid\":\"x\",\"recurrenceId\":\"20260101\"}]"
},
"output": {
"result": {
"duplicates": [
{
"key": "[\"x\",\"20260101\"]",
"indexes": [
0,
1
]
}
]
}
}
} Limitations and assumptions
- The recurrence IDs are not parsed as dates, expanded through recurrence rules or normalized across timezones.
- Content spans use zero-based UTF-16 offsets; fold limits use UTF-8 bytes including the continuation space. Token helpers handle the stated subset only, without a timezone database, recurrence engine or calendar import.
- Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.
Alternative or Complementary methods
Keep content-line syntax, value escaping and timezone interpretation separate. Use a complete iCalendar implementation for recurrence expansion, timezone transitions and property-specific validation.
References
Similar or alternative tools
- iCalendar Parameter Duplicate Audit
Audit explicit iCalendar parameter occurrences under case-insensitive names, preserving caller-supplied values and occurrence indexes; no HTTP parameter grammar reused.
- iCalendar Component Boundary Stack Audit
Audit explicit iCalendar BEGIN/END boundary tokens using a stack, retaining mismatches and unclosed components; not complete property/component semantic validation.