Skip to content

Main content

iCalendar UTF-8 Line Fold Plan

Fold a single iCalendar content line without splitting Unicode code points, budgeting UTF-8 octets including one continuation space; limit 5–75, no CRLF terminator added.

Loading tool…

Description

Fold a single iCalendar content line without splitting Unicode code points, budgeting UTF-8 octets including one continuation space; limit 5–75, no CRLF terminator added.

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

Fold a single iCalendar content line without splitting Unicode code points, budgeting UTF-8 octets including one continuation space; limit 5–75, no CRLF terminator added.

When to use this tool

Use this tool to fold a single iCalendar content line without splitting Unicode code points, budgeting UTF-8 octets including one continuation space; limit 5–75, no CRLF terminator added.

How to use the tool and how it works

  1. Enter line, limit using the field definitions below.
  2. Run the operation. Correct input errors before interpreting an output.
  3. Read result.lines, result.folded. Use the ordering, boundary rules and absence conditions described below.

Walk Unicode code points and count their UTF-8 bytes. Fold before exceeding the supplied 5–75 byte limit, prefix continuation lines with one space, and join lines with CRLF.2

Input fieldMeaning and unitsAccepted input
lineOne unfolded content line without CR or LF.Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies.
limitPhysical fold-line limit in UTF-8 bytes, integer 5–75 including continuation space.A finite safe integer within the operation’s stated bounds.
Output fieldInterpretation
resultObject containing the named fields below.
result.linesFolded physical-line strings; continuation lines begin with a space.
result.foldedPhysical lines joined by CRLF.
json
{
  "input": {
    "line": "abcdéx",
    "limit": 5
  },
  "output": {
    "result": {
      "lines": [
        "abcd",
        " éx"
      ],
      "folded": "abcd\r\n éx"
    }
  }
}

Limitations and assumptions

  • The continuation space counts toward the limit; this preserves code points without validating full property semantics.
  • 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

  1. RFC 5545: Internet Calendaring and Scheduling Core Object Specification — RFC Editor

  2. Tool behavior and example: iCalendar UTF-8 Line Fold Plan — tool.io

Similar or alternative tools

  • iCalendar Content Line Name Parameter Split

    Split an unfolded iCalendar content line at its unquoted first colon and semicolon parameter boundaries; value remains opaque, raw parameters retain quote-aware spelling, no RFC 6868 decoding or component validation.

  • iCalendar Content Line Record Formatter

    Format one unfolded iCalendar content line from explicit raw already-encoded parameter/value tokens; rejects CRLF injection, no automatic TEXT escaping or RFC 6868 parameter encoding.