From 88fe09795e81de0ba0ec0a76698a41d6c8b7ba19 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 2 Apr 2018 13:20:48 +0200 Subject: [PATCH] Support wholeDay creation --- src/calanonsync/calanonsync.go | 2 +- src/calanonsync/caldav.go | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/calanonsync/calanonsync.go b/src/calanonsync/calanonsync.go index 3f21ba3..8c467cf 100644 --- a/src/calanonsync/calanonsync.go +++ b/src/calanonsync/calanonsync.go @@ -82,7 +82,7 @@ func main() { // No anonymization? Fine. title = ewsItem.Subject } - ical := CreateICal(ewsItem.Hash(), title, ewsItem.Start, ewsItem.End) + ical := CreateICal(ewsItem.Hash(), title, ewsItem.Start, ewsItem.End, ewsItem.IsAllDayEvent) calDavItem := CalDAVItem{HRef: uid + ".ics", ICal: ical} err := c.UploadItem(calDavItem) diff --git a/src/calanonsync/caldav.go b/src/calanonsync/caldav.go index 2516809..9fd76ff 100644 --- a/src/calanonsync/caldav.go +++ b/src/calanonsync/caldav.go @@ -223,7 +223,7 @@ func ParseICal(r io.Reader) (*ICal, error) { // Create a new empty ICal structure with the given parameters. // Currently only supports time based events; date-only is not // supported. -func CreateICal(uid, summary string, start, end time.Time) *ICal { +func CreateICal(uid, summary string, start, end time.Time, wholeDay bool) *ICal { model := struct { UID string Summary string @@ -249,6 +249,13 @@ func CreateICal(uid, summary string, start, end time.Time) *ICal { // Internal stuff, so this really should not fail. panic(err) } + + if wholeDay { + // To not duplicate the wholeDay logic here (or in the template), + // simply postprocess the generated ical. + ical.Update(start, end, wholeDay) + } + return ical }