go-webdav/caldav/caldav.go

73 lines
1.2 KiB
Go
Raw Normal View History

2020-01-30 12:18:05 +00:00
// Package caldav provides a client and server CalDAV implementation.
//
// CalDAV is defined in RFC 4791.
package caldav
2020-01-30 12:51:02 +00:00
2020-02-03 16:26:55 +00:00
import (
"time"
2020-02-05 17:05:48 +00:00
2020-02-24 16:52:25 +00:00
"github.com/emersion/go-ical"
2020-02-03 16:26:55 +00:00
)
2020-01-30 12:51:02 +00:00
type Calendar struct {
Path string
Name string
Description string
MaxResourceSize int64
SupportedComponentSet []string
2020-01-30 12:51:02 +00:00
}
2020-02-03 16:26:55 +00:00
type CalendarCompRequest struct {
Name string
AllProps bool
Props []string
AllComps bool
Comps []CalendarCompRequest
}
type CompFilter struct {
Name string
IsNotDefined bool
Start, End time.Time
Props []PropFilter
Comps []CompFilter
}
type ParamFilter struct {
Name string
IsNotDefined bool
TextMatch *TextMatch
}
type PropFilter struct {
Name string
IsNotDefined bool
Start, End time.Time
TextMatch *TextMatch
ParamFilter []ParamFilter
}
type TextMatch struct {
Text string
NegateCondition bool
}
2020-02-03 16:26:55 +00:00
type CalendarQuery struct {
CompRequest CalendarCompRequest
CompFilter CompFilter
2020-02-03 16:26:55 +00:00
}
2020-05-13 15:45:10 +01:00
type CalendarMultiGet struct {
Paths []string
CompRequest CalendarCompRequest
}
2020-02-03 16:26:55 +00:00
type CalendarObject struct {
Path string
ModTime time.Time
ETag string
2020-02-05 17:05:48 +00:00
Data *ical.Calendar
2020-02-03 16:26:55 +00:00
}