Introduction

JsCalendar is a JSON based representation of calendar data. The specification is available as RFC 8984.

Along with the specification a mapping document is being created. This will describe how to map from jsCalendar to iCalendar and vice-versa. This document may be tracked at the IETF Datatracker for jsCalendar-iCalendar

It is hoped this new representation will eventually take over from the current iCalendar.

As an example the following is a simple recurring event in iCalendar:

BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Example//EN
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20200522T142047Z
DTSTART;TZID=America/New_York:20200522T120000
DURATION:PT1H
RRULE:FREQ=DAILY;COUNT=8
SUMMARY:recurring daily 8 times
UID:6252D6C40A8308BFE25BBDEsimpleInvite-1.ics
ORGANIZER:mailto:douglm@mysite.edu
ATTENDEE:mailto:user1@mysite.edu
END:VEVENT
END:VCALENDAR

This will be represented in jsCalendar as:

{
  "@type": "jsgroup",
  "prodId": "//Example//EN",
  "entries": [
    {
      "@type": "jsevent",
      "participants": {
        "1": {
          "@type": "Participant",
          "sendTo": {
            "imip": "mailto:user1@mysite.edu"
          },
          "expectReply": true,
          "roles": {
            "attendee": true
          }
        },
        "2": {
          "@type": "Participant",
          "sendTo": {
            "imip": "mailto:douglm@mysite.edu"
          },
          "roles": {
            "owner": true
          }
        }
      },
      "created": "2021-02-04T19:29:07Z",
      "start": "2020-05-22T12:00:00",
      "timeZone": "America/New_York",
      "duration": "PT1H",
      "replyTo": {
        "imip": "mailto:douglm@mysite.edu"
      },
      "title": "recurring daily 8 times",
      "uid": "6252D6C40A8308BFE25BBDEsimpleInvite-1.ics",
      "recurrenceRules": [
        {
          "@type": "RecurrenceRule",
          "frequency": "daily",
          "count": 8
        }
      ]
    }
  ]
}
Table of Contents
Was this page helpful for you? Please give us Feedback.