caldav

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2026 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CalendarFilter

type CalendarFilter struct {
	CompFilter *CompFilter `xml:"urn:ietf:params:xml:ns:caldav comp-filter"`
}

type CalendarMultigetRequest

type CalendarMultigetRequest struct {
	XMLName xml.Name           `xml:"urn:ietf:params:xml:ns:caldav calendar-multiget"`
	Prop    *CalendarQueryProp `xml:"DAV: prop"`
	Hrefs   []string           `xml:"DAV: href"`
}

CalendarMultigetRequest represents a calendar-multiget REPORT request

type CalendarQueryProp

type CalendarQueryProp struct {
	GetETag      *struct{} `xml:"DAV: getetag"`
	CalendarData *struct{} `xml:"urn:ietf:params:xml:ns:caldav calendar-data"`
}

type CalendarQueryRequest

type CalendarQueryRequest struct {
	XMLName xml.Name           `xml:"urn:ietf:params:xml:ns:caldav calendar-query"`
	Prop    *CalendarQueryProp `xml:"DAV: prop"`
	Filter  *CalendarFilter    `xml:"urn:ietf:params:xml:ns:caldav filter"`
}

CalendarQueryRequest represents a calendar-query REPORT request

type Comp

type Comp struct {
	Name string `xml:"name,attr"`
}

type CompFilter

type CompFilter struct {
	Name       string       `xml:"name,attr"`
	TimeRange  *TimeRange   `xml:"urn:ietf:params:xml:ns:caldav time-range"`
	PropFilter []PropFilter `xml:"urn:ietf:params:xml:ns:caldav prop-filter"`
	CompFilter *CompFilter  `xml:"urn:ietf:params:xml:ns:caldav comp-filter"`
}

type FreeBusyQueryRequest

type FreeBusyQueryRequest struct {
	XMLName   xml.Name   `xml:"urn:ietf:params:xml:ns:caldav free-busy-query"`
	TimeRange *TimeRange `xml:"urn:ietf:params:xml:ns:caldav time-range"`
}

FreeBusyQueryRequest represents a free-busy-query REPORT request

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler handles CalDAV-specific requests

func NewHandler

func NewHandler(logger *zap.Logger, calendarService domain.CalendarService, eventService domain.EventService, userService *service.UserService) *Handler

NewHandler creates a new CalDAV handler

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements http.Handler interface

func (*Handler) SetTaskService

func (h *Handler) SetTaskService(taskService domain.TaskService)

SetTaskService sets the task service for VTODO support

type MkCalProp

type MkCalProp struct {
	DisplayName              string `xml:"DAV: displayname"`
	CalendarDescription      string `xml:"urn:ietf:params:xml:ns:caldav calendar-description"`
	CalendarTimezone         string `xml:"urn:ietf:params:xml:ns:caldav calendar-timezone"`
	CalendarColor            string `xml:"http://apple.com/ns/ical/ calendar-color"`
	SupportedCalendarCompSet *SupportedCalendarComponentSet
}

type MkCalSet

type MkCalSet struct {
	Prop MkCalProp `xml:"DAV: prop"`
}

type MkCalendarRequest

type MkCalendarRequest struct {
	XMLName xml.Name   `xml:"urn:ietf:params:xml:ns:caldav mkcalendar"`
	Set     *MkCalSet  `xml:"DAV: set"`
	Prop    *MkCalProp `xml:"urn:ietf:params:xml:ns:caldav prop"` // Alternative structure
}

MkCalendarRequest represents a MKCALENDAR request body (RFC 4791)

type PropFilter

type PropFilter struct {
	Name      string     `xml:"name,attr"`
	TextMatch *TextMatch `xml:"urn:ietf:params:xml:ns:caldav text-match"`
}

type SupportedCalendarComponentSet

type SupportedCalendarComponentSet struct {
	XMLName xml.Name `xml:"urn:ietf:params:xml:ns:caldav supported-calendar-component-set"`
	Comps   []Comp   `xml:"comp"`
}

type TextMatch

type TextMatch struct {
	Collation       string `xml:"collation,attr"`
	NegateCondition string `xml:"negate-condition,attr"`
	Value           string `xml:",chardata"`
}

type TimeRange

type TimeRange struct {
	Start string `xml:"start,attr"`
	End   string `xml:"end,attr"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL