A CalDAV (rfc4791) and iCalendar client for Go
This project contains several modules, all of which work together to to allow for calendaring using CalDAV:
- An HTTP Client
- A WebDAV Client and Mapping Layer
- A CalDAV Client and Mapping Layer
- An iCalendar (Un)Marshaler
To install the library into your project, add caldev-go into your
$ go get github.com/taviti/caldav-go
Then, in your go application, include the caldav client and start making requests:
import "github.com/taviti/caldav-go/caldav" // create a reference to your CalDAV-compliant server var server = caldav.NewServer("http://my-caldav-host.net:8008") // create a CalDAV client to speak to the server var client = caldav.NewClient(server, http.DefaultClient) // start executing requests! err := client.ValidateServer()
To test the client, you must first have access to (or run your own) caldav-compliant server. On the machine
you wish to test on, ensure that the
CALDAV_SERVER_URL environment variable is set to the host and path of the
account you wish to run tests on. Afterwords, the standard
go test command will run the tests for the whole library.
For instance, if you have a server running locally on port 8008, you could run the tests in one command:
CALDAV_SERVER_URL='http://localhost:8008/calendars/users/admin/calendar/' go test ./...
HTTP Basic authentication can be baked into the URL as well:
CALDAV_SERVER_URL='http://admin:admin@localhost:8008/calendars/users/admin/calendar/' go test ./...