Implement uploading and downloading

The uploading and downloading is just normal webdav operations, not specific to caldav, so we can build and test that before using a caldav client. Its generally much easier to get this part working with webdav clients first.

As you can see we're asking for the ical data as a byte array, although we could have asked for it as an InputStream. We're also getting the requested name for the event and its very important that you use this name. The supplied Calendar argument is the parent object in which the event is being created. Note that we assign a unique ID to the meeting, this is will be required in the next section

So that method will create a new meeting, but what if the user wants to update (ie replace) an existing meeting? In this case we want a method which will be given the meeting to update: