package main import ( "fmt" "strings" ics "github.com/arran4/golang-ical" ) func main() { read_config() init_dav_client() calDavData := get_caldav_data(serverConfig.Username, serverConfig.Password) fmt.Println() fmt.Printf("Users display name: %s\n", calDavData.DisplayName) fmt.Printf("Calandar Count: %d\n", len(calDavData.Calandars)) for i := range len(calDavData.Calandars) { calDavData.Calandars[i] = get_calandar_data(calDavData.Calandars[i], serverConfig.Username, serverConfig.Password) fmt.Printf("Cal %d is named %s\n", i, calDavData.Calandars[i].DisplayName) fmt.Printf("\tLink to cal: %s\n", calDavData.Calandars[i].Link) fmt.Printf("\tEvent count: %d\n", len(calDavData.Calandars[i].Events)) for j := range len(calDavData.Calandars[i].Events) { cal, err := ics.ParseCalendar(strings.NewReader(calDavData.Calandars[i].Events[j].CalData)) if err != nil { fmt.Print(err.Error()) } events := cal.Events() for k := range len(events) { name := events[k].GetProperty(ics.ComponentProperty(ics.PropertySummary)).Value date, _ := events[k].GetStartAt() fmt.Printf("\t\tEvent name: %s\n", name) fmt.Printf("\t\t\tEvent date: %s\n", date.UTC().String()) } } } }