Skip to content

iCal4j Serializer - JOT Notation

The JOT notation is JSON format derived from iCalendar and vCard properties, that may be used to construct and modify iCalendar and vCard objects.


JOT does not provide a complete representation of iCalendar and vCard, but rather is used to convey concise information to construct and modify object data as would be commonly found in a REST-ful API.

For example, if we want to create a new event, rather than providing a complete iCalendar object (as would be the case with xCal/jCal/JSCalendar, etc.) we can provide just the required information:

  "summary": "Monthly financial debrief",
  "rrule": "FREQ=MONTHLY;BYDAY=-1FR"

Obviously there is a lot of missing information required to construct a complete iCalendar object, but the serializer implementation may be used to fill in those blanks.

JSON Structure

JOT notation represents a list of properties that may be used to construct a calendar, component or card object from the iCalendar and vCard specifications.

Each property may take one of two forms: Scalar and Object.

Scalar Notation

Scalar notation is used to represent a simple property or parameter consisting of a name/value pair. This notation supports string values for all properties, in addition to boolean and integer where applicable. Binary values should be encoded as a BASE64 string.

  "summary": "Monthly financial debrief",
  "priority": 6,
  "attendee": {
    "rsvp": true

Object Notation

Object notation is used to represent a complex property that contains one or more parameters. This notation defines properties as nested JSON objects with scalar notation used to describe parameters and the property value.

  "dtstart": {
    "value": "date",
    "date": "2024-01-01"
  "organizer": {
    "cn": "John Doe",
    "cal-address": "mailto:[email protected]"