jEvent / jTodo format

Calendars within Bongo are stored as collections, with the individual events being documents within the collection. Relevant attributes of an event are attached as properties on the document for the purposes of searching.

jEvent / jTodo format is loosely based on iCal / RFC 2445, representing the same data but within a UTF-8 JSON structure.

Example representation

There are a couple of examples given in the RFC. One of the VEVENTS stripped from a calendar is this one:

  BEGIN:VEVENT
  DTSTAMP:19970324T1200Z
  SEQUENCE:0
  UID:uid3@host1.com
  ORGANIZER:MAILTO:jdoe@host1.com
  ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com
  DTSTART:19970324T123000Z
  DTEND:19970324T210000Z
  CATEGORIES:MEETING,PROJECT
  CLASS:PUBLIC
  SUMMARY:Calendaring Interoperability Planning Meeting
  DESCRIPTION:Discuss how we can test c&s interoperability\n
  using iCalendar and other IETF standards.
  LOCATION:LDB Lobby
  ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/
  conf/bkgrnd.ps
  END:VEVENT

This would be transformed into jEvent in the following manner:

  {
  'jEvent' : 2.0,
  'dateStamp' : '1997-03-24 12:00',
  'sequence' : 0,
  'uid' : 'uid3@host1.com',
  'organizer' : 'mailto:jdoe@host1.com',
  'attendees' : [
    {
      'rsvp' : 'true',
      'mailto' : 'jsmith@host1.com'
    }
  ],
  'dateStart' : '1997-03-24 12:30',
  'dateEnd' : '1997-03-24 21:00',
  'categories' : ['meeting','project'],
  'class' : 'public', 
  'summary' : 'Calendaring Interoperability Planning Meeting',
  'description' : 'Discuss how we can test c&s interoperability using iCalendar and other IETF standards.',
  'location' : 'LDB Lobby',
  'attachments' : [
    {
      'format' : 'application/postscript',
      'uri' : 'ftp://xyzCorp.com/pub/conf/bkgrnd.ps'
    }
  ]
  }