JSON is a simple key-value format, but it needs to be strictly valid. You can verify the validity of your event data files by running them through jsonlint.com's validator. An even better way to check your JSON file is to use the kwalify tool along with the skedu schema.

Here are some example data files:

You can use these as templates for creating your own event data files.

Once you have created the data file, simply put it somewhere on the web and then download it into Skedu via the Add Event facility. If your event is imported correctly, and you have set it to be public (see below), it will now show up in the list of available events for others! If you're not sure where to put the file to make it available for download, check out something like gist.github.com. Note, that if you paste your JSON into gist, be sure to use the URL for the 'raw' view. If your URL is long (like the gist raw view URLs), it's probably a good idea to run it through a link shortening service like bit.ly so that you don't have to type as much on the mobile keyboard.

Finally, it is a good idea to keep your "public" setting to "no" until you're sure you've worked out all the kinks in your data file.

Here is a short example of a data file for an event with two venues and four sessions :

        {
            "name": "My Event",
            "url": "http://example.com/",
            "contact": "dav@example.com",
            "public": "no",
            "dataVersion": "1",
            "description": "This is my example event. This description can have HTML in it. It is displayed in the app on the details tab for the event.",
            "basic_description": "This is my example event. This description can NOT have HTML in it",
            "backgroundImageURL": "http://example.com/custom_bg.png",
            "navbarImageURL": "http://example.com/custom_navbar.png",
            "venues": [
              {
                  "venue": "Main Stage",
                  "description": "The big stage",
                  "location": {
                      "address1": "",
                      "address2": "",
                      "city": "San Francisco",
                      "region": "California",
                      "postalCode": "94107"
                  },
                  "phoneNumber": "",
                  "sessions": [
                     {
                       "title": "First Session",
                       "startTime": "2009-11-19 9:00",
                       "endTime": "2009-11-19 10:15",
                       "category": "",
                       "speaker": "",
                       "description": "Something happens.",
                       "audio_urls": [ "http://example.com/session1.mp3" ]
                      }
                    ,
                      {
                       "title": "Second Session",
                       "startTime": "2009-11-19 10:25",
                       "endTime": "2009-11-19 11:05",
                       "category": "",
                       "speaker": "Adam Keys",
                       "description": "Another thing happens.",
                       "audio_urls": [ "http://example.com/session1.mp3" ]
                      }
                    ]
              },
              {
                  "venue": "Alternative Stage",
                  "description": "The other stage",
                  "sessions": [
                     {
                       "title": "First Show",
                       "startTime": "2009-11-19 9:00",
                       "endTime": "2009-11-19 10:15",
                       "description": "Something alternative happens.",
                       "audio_urls": [ "http://example.com/show1.mp3" ]
                      }
                    ,
                      {
                       "title": "Second Show",
                       "startTime": "2009-11-19 10:25",
                       "endTime": "2009-11-19 11:05",
                       "description": "Another a;ternative thing happens.",
                       "audio_urls": [ "http://example.com/show2.mp3" ]
                      }
                    ]
              }
           ]
        }
    

The custom background image should be 320x342 and the navbar image should be 320x45.

There are length limitations for some fields. For URLs it is 256, for many others it is 80 or 40. A comprehensive list is coming soon.

The "public" keyword determines if your event file should be listed in the public directory of recently loaded events.