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 {
|
2022-04-12 08:18:59 +01:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2020-02-05 16:36:18 +00:00
|
|
|
type CompFilter struct {
|
2022-03-31 21:15:04 +01:00
|
|
|
Name string
|
|
|
|
IsNotDefined bool
|
|
|
|
Start, End time.Time
|
|
|
|
Props []PropFilter
|
|
|
|
Comps []CompFilter
|
|
|
|
}
|
|
|
|
|
|
|
|
type ParamFilter struct {
|
|
|
|
Name string
|
|
|
|
IsNotDefined bool
|
|
|
|
TextMatch *TextMatch
|
2020-02-05 16:36:18 +00:00
|
|
|
}
|
|
|
|
|
2020-02-05 17:38:46 +00:00
|
|
|
type PropFilter struct {
|
2022-03-31 21:15:04 +01:00
|
|
|
Name string
|
|
|
|
IsNotDefined bool
|
|
|
|
Start, End time.Time
|
|
|
|
TextMatch *TextMatch
|
|
|
|
ParamFilter []ParamFilter
|
2020-02-05 17:38:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type TextMatch struct {
|
2022-03-31 21:15:04 +01:00
|
|
|
Text string
|
|
|
|
NegateCondition bool
|
2020-02-05 17:38:46 +00:00
|
|
|
}
|
|
|
|
|
2020-02-03 16:26:55 +00:00
|
|
|
type CalendarQuery struct {
|
2020-02-05 16:36:18 +00:00
|
|
|
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
|
|
|
}
|