title: From iCal to JSON then to a HTML/jQuery Calendar View
body: <p>I've successfully converted an ICS file (iCalendar) to jSON:</p>
  
  <pre><code>{
    "vcalendar": [
      {
        "method": "PUBLISH",
        "prodid": "Microsoft Exchange Server 2010",
        "version": "2.0",
        "x-wr-calname": "Website",
        "vtimezone": [
          {
            "tzid": "GMT Standard Time",
            "standard": [
              {
                "dtstart": "16010101T020000",
                "tzoffsetfrom": "+0100",
                "tzoffsetto": "+0000",
                "rrule": "FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10"
              }
            ],
            "daylight": [
              {
                "dtstart": "16010101T010000",
                "tzoffsetfrom": "+0000",
                "tzoffsetto": "+0100",
                "rrule": {
                  "freq": "YEARLY",
                  "interval": "1",
                  "byday": "-1SU",
                  "bymonth": "3"
                }
              }
            ]
          }
        ],
        "vevent": [
          {
            "summary": "test event",
            "dtstart": [
              "20140624T140000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "dtend": [
              "20140624T150000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "uid": "040000008200E00074C5B7101A82E00800000000AA6D0AFA958FCF0100000000000000001000000054D58145BFBC024DB6FFCA2E760D16C4",
            "class": "PUBLIC",
            "priority": "5",
            "dtstamp": "20140717T105947Z",
            "transp": "OPAQUE",
            "status": "CONFIRMED",
            "sequence": "0",
            "location": "",
            "x-microsoft-cdo-appt-sequence": "0",
            "x-microsoft-cdo-busystatus": "BUSY",
            "x-microsoft-cdo-intendedstatus": "BUSY",
            "x-microsoft-cdo-alldayevent": "FALSE",
            "x-microsoft-cdo-importance": "1",
            "x-microsoft-cdo-insttype": "0",
            "x-microsoft-disallow-counter": "FALSE"
          },
          {
            "description": "Test\\n",
            "summary": "Test Event 1",
            "dtstart": [
              "20140709T150000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "dtend": [
              "20140709T160000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "uid": "040000008200E00074C5B7101A82E00800000000C1F07C325A9BCF010000000000000000100000007DA6DF5B9E26DD40BFA577BFC9833825",
            "class": "PUBLIC",
            "priority": "5",
            "dtstamp": "20140717T105947Z",
            "transp": "OPAQUE",
            "status": "CONFIRMED",
            "sequence": "0",
            "location": "",
            "x-microsoft-cdo-appt-sequence": "0",
            "x-microsoft-cdo-busystatus": "BUSY",
            "x-microsoft-cdo-intendedstatus": "BUSY",
            "x-microsoft-cdo-alldayevent": "FALSE",
            "x-microsoft-cdo-importance": "1",
            "x-microsoft-cdo-insttype": "0",
            "x-microsoft-disallow-counter": "FALSE"
          },
          {
            "description": "\\n",
            "summary": "Test Event 2",
            "dtstart": [
              "20140710T110000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "dtend": [
              "20140710T120000",
              {
                "tzid": "GMT Standard Time"
              }
            ],
            "uid": "040000008200E00074C5B7101A82E008000000000080863A5A9BCF01000000000000000010000000532737AA9F20CD479A2B424CBB66F0F6",
            "class": "PUBLIC",
            "priority": "5",
            "dtstamp": "20140717T105947Z",
            "transp": "OPAQUE",
            "status": "CONFIRMED",
            "sequence": "0",
            "location": "",
            "x-microsoft-cdo-appt-sequence": "0",
            "x-microsoft-cdo-busystatus": "BUSY",
            "x-microsoft-cdo-intendedstatus": "BUSY",
            "x-microsoft-cdo-alldayevent": "FALSE",
            "x-microsoft-cdo-importance": "1",
            "x-microsoft-cdo-insttype": "0",
            "x-microsoft-disallow-counter": "FALSE"
          }
        ]
      }
    ]
  }
  </code></pre>
  
  <p>Now I want to parse jSON so that I can create a calendar view, like this parses an ics file and displays a calendar view <a href="http://www.instantcal.com/isc/js/cvu.html" rel="nofollow">http://www.instantcal.com/isc/js/cvu.html</a>.</p>
  
  <p>How do I loop through vevents so that I can create a simple list of all the events, and the days they start? </p>