Skip to content

Main content

iCalendar Basic Time Token Parser

Parse strict iCalendar basic time with optional UTC marker and allowed second 60; does not validate leap-second scheduling or resolve time zones.

Loading tool…

Description

Parse strict iCalendar basic time with optional UTC marker and allowed second 60; does not validate leap-second scheduling or resolve time zones.

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

Parse strict iCalendar basic time with optional UTC marker and allowed second 60; does not validate leap-second scheduling or resolve time zones.

When to use this tool

Use this tool to parse strict iCalendar basic time with optional UTC marker and allowed second 60; does not validate leap-second scheduling or resolve time zones.

How to use the tool and how it works

  1. Enter token using the field definitions below.
  2. Run the operation. Correct input errors before interpreting an output.
  3. Read result.hour, result.minute, result.second, result.utc. Use the ordering, boundary rules and absence conditions described below.

Require six basic time digits with optional uppercase Z, validate hour/minute/second ranges and return components with a UTC flag.2

Input fieldMeaning and unitsAccepted input
tokenOne complete basic date/time or duration token under the stated operation.Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies.
Output fieldInterpretation
resultObject containing the named fields below.
result.hourBasic-time hour 0–23.
result.minuteBasic-time minute 0–59.
result.secondBasic-time second 0–60 without real leap-second verification.
result.utcWhether the token ended with uppercase Z.
json
{
  "input": {
    "token": "235960Z"
  },
  "output": {
    "result": {
      "hour": 23,
      "minute": 59,
      "second": 60,
      "utc": true
    }
  }
}

Limitations and assumptions

  • Second 60 is accepted syntactically without verifying a real leap second; no date or timezone conversion is performed.
  • 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 Basic Time Token Parser — tool.io

Similar or alternative tools