iCalendar-0.4.0.3: iCalendar data types, parser, and printer.

Safe Haskell | None
Language | Haskell98

Text.ICalendar.Types

Description

ICalendar types, based on RFC5545.

Synopsis

- newtype Language = Language (CI Text)
- type CalAddress = URI
- data OtherParam = OtherParam (CI Text) [Text]
- data OtherParams = OtherParams (Set OtherParam)
- data VCalendar = VCalendar {
  - vcProdId :: ProdId
  - vcVersion :: ICalVersion
  - vcScale :: Scale
  - vcMethod :: Maybe Method
  - vcOther :: Set OtherProperty
  - vcTimeZones :: Map Text VTimeZone
  - vcEvents :: Map (Text, Maybe (Either Date DateTime)) VEvent
  - vcTodos :: Map (Text, Maybe (Either Date DateTime)) VTodo
  - vcJournals :: Map (Text, Maybe (Either Date DateTime)) VJournal
  - vcFreeBusys :: Map Text VFreeBusy
  - vcOtherComps :: Set VOther
  }
- data ProdId = ProdId {
  - prodIdValue :: Text
  - prodIdOther :: OtherParams
  }
- data ICalVersion
  - = MaxICalVersion {
    - versionMax :: Version
    - versionOther :: OtherParams
    }
  - | MinMaxICalVersion {
    - versionMax :: Version
    - versionMin :: Version
    - versionOther :: OtherParams
    }
- data Scale = Scale {
  - scaleValue :: CI Text
  - scaleOther :: OtherParams
  }
- data Method = Method {
  - methodValue :: CI Text
  - methodOther :: OtherParams
  }
- data VEvent = VEvent {
  - veDTStamp :: DTStamp
  - veUID :: UID
  - veClass :: Class
  - veDTStart :: Maybe DTStart
  - veCreated :: Maybe Created
  - veDescription :: Maybe Description
  - veGeo :: Maybe Geo
  - veLastMod :: Maybe LastModified
  - veLocation :: Maybe Location
  - veOrganizer :: Maybe Organizer
  - vePriority :: Priority
  - veSeq :: Sequence
  - veStatus :: Maybe EventStatus
  - veSummary :: Maybe Summary
  - veTransp :: TimeTransparency
  - veUrl :: Maybe URL
  - veRecurId :: Maybe RecurrenceId
  - veRRule :: Set RRule
  - veDTEndDuration :: Maybe (Either DTEnd DurationProp)
  - veAttach :: Set Attachment
  - veAttendee :: Set Attendee
  - veCategories :: Set Categories
  - veComment :: Set Comment
  - veContact :: Set Contact
  - veExDate :: Set ExDate
  - veRStatus :: Set RequestStatus
  - veRelated :: Set RelatedTo
  - veResources :: Set Resources
  - veRDate :: Set RDate
  - veAlarms :: Set VAlarm
  - veOther :: Set OtherProperty
  }
- data VTodo = VTodo {
  - vtDTStamp :: DTStamp
  - vtUID :: UID
  - vtClass :: Class
  - vtCompleted :: Maybe Completed
  - vtCreated :: Maybe Created
  - vtDescription :: Maybe Description
  - vtDTStart :: Maybe DTStart
  - vtGeo :: Maybe Geo
  - vtLastMod :: Maybe LastModified
  - vtLocation :: Maybe Location
  - vtOrganizer :: Maybe Organizer
  - vtPercent :: Maybe PercentComplete
  - vtPriority :: Priority
  - vtRecurId :: Maybe RecurrenceId
  - vtSeq :: Sequence
  - vtStatus :: Maybe TodoStatus
  - vtSummary :: Maybe Summary
  - vtUrl :: Maybe URL
  - vtRRule :: Set RRule
  - vtDueDuration :: Maybe (Either Due DurationProp)
  - vtAttach :: Set Attachment
  - vtAttendee :: Set Attendee
  - vtCategories :: Set Categories
  - vtComment :: Set Comment
  - vtContact :: Set Contact
  - vtExDate :: Set ExDate
  - vtRStatus :: Set RequestStatus
  - vtRelated :: Set RelatedTo
  - vtResources :: Set Resources
  - vtRDate :: Set RDate
  - vtAlarms :: Set VAlarm
  - vtOther :: Set OtherProperty
  }
- data VJournal = VJournal {
  - vjDTStamp :: DTStamp
  - vjUID :: UID
  - vjClass :: Class
  - vjCreated :: Maybe Created
  - vjDTStart :: Maybe DTStart
  - vjLastMod :: Maybe LastModified
  - vjOrganizer :: Maybe Organizer
  - vjRecurId :: Maybe RecurrenceId
  - vjSeq :: Sequence
  - vjStatus :: Maybe JournalStatus
  - vjSummary :: Maybe Summary
  - vjUrl :: Maybe URL
  - vjRRule :: Set RRule
  - vjAttach :: Set Attachment
  - vjAttendee :: Set Attendee
  - vjCategories :: Set Categories
  - vjComment :: Set Comment
  - vjContact :: Set Contact
  - vjDescription :: Set Description
  - vjExDate :: Set ExDate
  - vjRelated :: Set RelatedTo
  - vjRDate :: Set RDate
  - vjRStatus :: Set RequestStatus
  - vjOther :: Set OtherProperty
  }
- data VFreeBusy = VFreeBusy {
  - vfbDTStamp :: DTStamp
  - vfbUID :: UID
  - vfbContact :: Maybe Contact
  - vfbDTStart :: Maybe DTStart
  - vfbDTEnd :: Maybe DTEnd
  - vfbOrganizer :: Maybe Organizer
  - vfbUrl :: Maybe URL
  - vfbAttendee :: Set Attendee
  - vfbComment :: Set Comment
  - vfbFreeBusy :: Set FreeBusy
  - vfbRStatus :: Set RequestStatus
  - vfbOther :: Set OtherProperty
  }
- data VTimeZone = VTimeZone {
  - vtzId :: TZID
  - vtzLastMod :: Maybe LastModified
  - vtzUrl :: Maybe TZUrl
  - vtzStandardC :: Set TZProp
  - vtzDaylightC :: Set TZProp
  - vtzOther :: Set OtherProperty
  }
- data TZProp = TZProp {
  - tzpDTStart :: DTStart
  - tzpTZOffsetTo :: UTCOffset
  - tzpTZOffsetFrom :: UTCOffset
  - tzpRRule :: Set RRule
  - tzpComment :: Set Comment
  - tzpRDate :: Set RDate
  - tzpTZName :: Set TZName
  - tzpOther :: Set OtherProperty
  }
- data VAlarm
  - = VAlarmAudio {
    - vaTrigger :: Trigger
    - vaRepeat :: Repeat
    - vaDuration :: Maybe DurationProp
    - vaAudioAttach :: Maybe Attachment
    - vaOther :: Set OtherProperty
    - vaActionOther :: OtherParams
    }
  - | VAlarmDisplay {
    - vaDescription :: Description
    - vaTrigger :: Trigger
    - vaRepeat :: Repeat
    - vaDuration :: Maybe DurationProp
    - vaOther :: Set OtherProperty
    - vaActionOther :: OtherParams
    }
  - | VAlarmEmail {
    - vaDescription :: Description
    - vaTrigger :: Trigger
    - vaSummary :: Summary
    - vaAttendee :: Set Attendee
    - vaRepeat :: Repeat
    - vaDuration :: Maybe DurationProp
    - vaMailAttach :: Set Attachment
    - vaOther :: Set OtherProperty
    - vaActionOther :: OtherParams
    }
  - | VAlarmX {
    - vaAction :: CI Text
    - vaTrigger :: Trigger
    - vaActionOther :: OtherParams
    - vaOther :: Set OtherProperty
    }
- data VOther = VOther {
  - voName :: CI Text
  - voProps :: Set OtherProperty
  }
- data Attachment
  - = UriAttachment {
    - attachFmtType :: Maybe MIMEType
    - attachUri :: URI
    - attachOther :: OtherParams
    }
  - | BinaryAttachment {
    - attachFmtType :: Maybe MIMEType
    - attachContent :: ByteString
    - attachOther :: OtherParams
    }
- data Categories = Categories {
  - categoriesValues :: Set Text
  - categoriesLanguage :: Maybe Language
  - categoriesOther :: OtherParams
  }
- data Class = Class {
  - classValue :: ClassValue
  - classOther :: OtherParams
  }
- data ClassValue
  - = Public
  - | Private
  - | Confidential
  - | ClassValueX (CI Text)
- data Completed = Completed {
  - completedValue :: DateTime
  - completedOther :: OtherParams
  }
- data Comment = Comment {
  - commentValue :: Text
  - commentAltRep :: Maybe URI
  - commentLanguage :: Maybe Language
  - commentOther :: OtherParams
  }
- data Description = Description {
  - descriptionValue :: Text
  - descriptionAltRep :: Maybe URI
  - descriptionLanguage :: Maybe Language
  - descriptionOther :: OtherParams
  }
- data Geo = Geo {
  - geoLat :: Float
  - geoLong :: Float
  - geoOther :: OtherParams
  }
- data Location = Location {
  - locationValue :: Text
  - locationAltRep :: Maybe URI
  - locationLanguage :: Maybe Language
  - locationOther :: OtherParams
  }
- data PercentComplete = PercentComplete {
  - percentCompleteValue :: Int
  - percentCompleteOther :: OtherParams
  }
- data Priority = Priority {
  - priorityValue :: Int
  - priorityOther :: OtherParams
  }
- data Resources = Resources {
  - resourcesValue :: Set Text
  - resourcesAltRep :: Maybe URI
  - resourcesLanguage :: Maybe Language
  - resourcesOther :: OtherParams
  }
- data EventStatus
  - = TentativeEvent {
    - eventStatusOther :: OtherParams
    }
  - | ConfirmedEvent {
    - eventStatusOther :: OtherParams
    }
  - | CancelledEvent {
    - eventStatusOther :: OtherParams
    }
- data TodoStatus
  - = TodoNeedsAction {
    - todoStatusOther :: OtherParams
    }
  - | CompletedTodo {
    - todoStatusOther :: OtherParams
    }
  - | InProcessTodo {
    - todoStatusOther :: OtherParams
    }
  - | CancelledTodo {
    - todoStatusOther :: OtherParams
    }
- data JournalStatus
  - = DraftJournal {
    - journalStatusOther :: OtherParams
    }
  - | FinalJournal {
    - journalStatusOther :: OtherParams
    }
  - | CancelledJournal {
    - journalStatusOther :: OtherParams
    }
- data Summary = Summary {
  - summaryValue :: Text
  - summaryAltRep :: Maybe URI
  - summaryLanguage :: Maybe Language
  - summaryOther :: OtherParams
  }
- data Date = Date {
  - dateValue :: Day
  }
- data DateTime
  - = FloatingDateTime {
    - dateTimeFloating :: LocalTime
    }
  - | UTCDateTime {
    - dateTimeUTC :: UTCTime
    }
  - | ZonedDateTime {
    - dateTimeFloating :: LocalTime
    - dateTimeZone :: Text
    }
- data DTEnd
  - = DTEndDateTime {
    - dtEndDateTimeValue :: DateTime
    - dtEndOther :: OtherParams
    }
  - | DTEndDate {
    - dtEndDateValue :: Date
    - dtEndOther :: OtherParams
    }
- data Due
  - = DueDateTime {
    - dueDateTimeValue :: DateTime
    - dueOther :: OtherParams
    }
  - | DueDate {
    - dueDateValue :: Date
    - dueOther :: OtherParams
    }
- data DTStart
  - = DTStartDateTime {
    - dtStartDateTimeValue :: DateTime
    - dtStartOther :: OtherParams
    }
  - | DTStartDate {
    - dtStartDateValue :: Date
    - dtStartOther :: OtherParams
    }
- data Duration
  - = DurationDate {
    - durSign :: Sign
    - durDay :: Int
    - durHour :: Int
    - durMinute :: Int
    - durSecond :: Int
    }
  - | DurationTime {
    - durSign :: Sign
    - durHour :: Int
    - durMinute :: Int
    - durSecond :: Int
    }
  - | DurationWeek {
    - durSign :: Sign
    - durWeek :: Int
    }
- data Sign
  - = Positive
  - | Negative
- data DurationProp = DurationProp {
  - durationValue :: Duration
  - durationOther :: OtherParams
  }
- data FreeBusy = FreeBusy {
  - freeBusyType :: FBType
  - freeBusyPeriods :: Set UTCPeriod
  - freeBusyOther :: OtherParams
  }
- data Period
  - = PeriodDates DateTime DateTime
  - | PeriodDuration DateTime Duration
- data UTCPeriod
  - = UTCPeriodDates UTCTime UTCTime
  - | UTCPeriodDuration UTCTime Duration
- data FBType
  - = Free
  - | Busy
  - | BusyUnavailable
  - | BusyTentative
  - | FBTypeX (CI Text)
- data TimeTransparency
  - = Opaque {
    - timeTransparencyOther :: OtherParams
    }
  - | Transparent {
    - timeTransparencyOther :: OtherParams
    }
- data TZID = TZID {
  - tzidValue :: Text
  - tzidGlobal :: Bool
  - tzidOther :: OtherParams
  }
- data TZName = TZName {
  - tzNameValue :: Text
  - tzNameLanguage :: Maybe Language
  - tzNameOther :: OtherParams
  }
- data UTCOffset = UTCOffset {
  - utcOffsetValue :: Int
  - utcOffsetOther :: OtherParams
  }
- data TZUrl = TZUrl {
  - tzUrlValue :: URI
  - tzUrlOther :: OtherParams
  }
- data Attendee = Attendee {
  - attendeeValue :: CalAddress
  - attendeeCUType :: CUType
  - attendeeMember :: Set CalAddress
  - attendeeRole :: Role
  - attendeePartStat :: PartStat
  - attendeeRSVP :: Bool
  - attendeeDelTo :: Set CalAddress
  - attendeeDelFrom :: Set CalAddress
  - attendeeSentBy :: Maybe CalAddress
  - attendeeCN :: Maybe Text
  - attendeeDir :: Maybe URI
  - attendeeLanguage :: Maybe Language
  - attendeeOther :: OtherParams
  }
- data CUType
  - = Individual
  - | Group
  - | Resource
  - | Room
  - | Unknown
  - | CUTypeX (CI Text)
- data Role
  - = Chair
  - | ReqParticipant
  - | OptParticipant
  - | NonParticipant
  - | RoleX (CI Text)
- data PartStat
  - = PartStatNeedsAction
  - | Accepted
  - | Declined
  - | Tentative
  - | Delegated
  - | PartStatCompleted
  - | InProcess
  - | PartStatX (CI Text)
- data Contact = Contact {
  - contactValue :: Text
  - contactAltRep :: Maybe URI
  - contactLanguage :: Maybe Language
  - contactOther :: OtherParams
  }
- data Organizer = Organizer {
  - organizerValue :: CalAddress
  - organizerCN :: Maybe Text
  - organizerDir :: Maybe URI
  - organizerSentBy :: Maybe CalAddress
  - organizerLanguage :: Maybe Language
  - organizerOther :: OtherParams
  }
- data RecurrenceId
  - = RecurrenceIdDate {
    - recurrenceIdDate :: Date
    - recurrenceIdRange :: Maybe Range
    - recurrenceIdOther :: OtherParams
    }
  - | RecurrenceIdDateTime {
    - recurrenceIdDateTime :: DateTime
    - recurrenceIdRange :: Maybe Range
    - recurrenceIdOther :: OtherParams
    }
- data Range
  - = ThisAndFuture
  - | ThisAndPrior
- data RelatedTo = RelatedTo {
  - relatedToValue :: Text
  - relatedToType :: RelationshipType
  - relatedToOther :: OtherParams
  }
- data RelationshipType
  - = Parent
  - | Child
  - | Sibling
  - | RelationshipTypeX (CI Text)
- data URL = URL {
  - urlValue :: URI
  - urlOther :: OtherParams
  }
- data UID = UID {
  - uidValue :: Text
  - uidOther :: OtherParams
  }
- data ExDate
  - = ExDates {
    - exDates :: Set Date
    - exDateOther :: OtherParams
    }
  - | ExDateTimes {
    - exDateTimes :: Set DateTime
    - exDateOther :: OtherParams
    }
- data RDate
  - = RDateDates {
    - rDateDates :: Set Date
    - rDateOther :: OtherParams
    }
  - | RDateDateTimes {
    - rDateDateTimes :: Set DateTime
    - rDateOther :: OtherParams
    }
  - | RDatePeriods {
    - rDatePeriods :: Set Period
    - rDateOther :: OtherParams
    }
- data Frequency
  - = Secondly
  - | Minutely
  - | Hourly
  - | Daily
  - | Weekly
  - | Monthly
  - | Yearly
- data Weekday
  - = Sunday
  - | Monday
  - | Tuesday
  - | Wednesday
  - | Thursday
  - | Friday
  - | Saturday
- data Recur = Recur {
  - recurFreq :: Frequency
  - recurUntilCount :: Maybe (Either (Either Date DateTime) Int)
  - recurInterval :: Int
  - recurBySecond :: [Int]
  - recurByMinute :: [Int]
  - recurByHour :: [Int]
  - recurByDay :: [Either (Int, Weekday) Weekday]
  - recurByMonthDay :: [Int]
  - recurByYearDay :: [Int]
  - recurByWeekNo :: [Int]
  - recurByMonth :: [Int]
  - recurBySetPos :: [Int]
  - recurWkSt :: Weekday
  }
- data RRule = RRule {
  - rRuleValue :: Recur
  - rRuleOther :: OtherParams
  }
- data Repeat = Repeat {
  - repeatValue :: Integer
  - repeatOther :: OtherParams
  }
- data AlarmTriggerRelationship
  - = Start
  - | End
- data Trigger
  - = TriggerDuration {
    - triggerDuration :: Duration
    - triggerRelated :: AlarmTriggerRelationship
    - triggerOther :: OtherParams
    }
  - | TriggerDateTime {
    - triggerDateTime :: UTCTime
    - triggerOther :: OtherParams
    }
- data Created = Created {
  - createdValue :: UTCTime
  - createdOther :: OtherParams
  }
- data DTStamp = DTStamp {
  - dtStampValue :: UTCTime
  - dtStampOther :: OtherParams
  }
- data LastModified = LastModified {
  - lastModifiedValue :: UTCTime
  - lastModifiedOther :: OtherParams
  }
- data Sequence = Sequence {
  - sequenceValue :: Integer
  - sequenceOther :: OtherParams
  }
- data RequestStatus = RequestStatus {
  - requestStatusCode :: [Int]
  - requestStatusDesc :: Text
  - requestStatusLanguage :: Maybe Language
  - requestStatusExt :: Maybe Text
  - requestStatusOther :: OtherParams
  }
- data OtherProperty = OtherProperty {
  - otherName :: CI Text
  - otherValue :: ByteString
  - otherParams :: OtherParams
  }

# Documentation

newtype Language Source

Language.

Constructors

Language (CI Text) |

Instances

Eq Language Source |
Ord Language Source |
Show Language Source |

type CalAddress = URI Source

data OtherParam Source

One other parameter, either x-param or iana-param.

Constructors

OtherParam (CI Text) [Text] |

Instances

Eq OtherParam Source |
Ord OtherParam Source |
Show OtherParam Source |

data OtherParams Source

Other parameters, either x-param or other iana-param.

Constructors

OtherParams (Set OtherParam) |

Instances

Eq OtherParams Source |
Ord OtherParams Source |
Show OtherParams Source |
Default OtherParams Source |

data VCalendar Source

VCalendar component. 3.4.

Constructors

VCalendar |

Fields

vcProdId :: ProdId
vcVersion :: ICalVersion
vcScale :: Scale
vcMethod :: Maybe Method
vcOther :: Set OtherProperty
vcTimeZones :: Map Text VTimeZone

  Map TZID-value VTimeZone

vcEvents :: Map (Text, Maybe (Either Date DateTime)) VEvent

  Map (UID-value, Maybe RecurrenceID-value) VEvent

vcTodos :: Map (Text, Maybe (Either Date DateTime)) VTodo

  Map (UID-value, Maybe RecurrenceID-value) VTodo

vcJournals :: Map (Text, Maybe (Either Date DateTime)) VJournal

  Map (UID-value, Maybe RecurrenceID-value) VJournal

vcFreeBusys :: Map Text VFreeBusy

  Map UID-value VFreeBusy

vcOtherComps :: Set VOther

Instances

Eq VCalendar Source |
Ord VCalendar Source |
Show VCalendar Source |
Monoid VCalendar Source | `vcMethod` is ignored at the moment. Picks the left in most cases. On UIDRecurrenceIdTZID clash, picks the `VEvent`s, `VTodo`s and `VJournal`s with the highest (`Sequence`, `DTStamp`), the `VTimeZone`s with the highest `LastModified`, and `VFreeBusy` with the highest `DTStamp`. If the Sequence, DTStamp or LastModified is the same, picks the left.
Default VCalendar Source |

data ProdId Source

Product Identifier. 3.7.3.

Constructors

ProdId |

Fields

prodIdValue :: Text
prodIdOther :: OtherParams

Instances

Eq ProdId Source |
Ord ProdId Source |
Show ProdId Source |

data ICalVersion Source

Version. 3.7.4.

Constructors

MaxICalVersion |

Fields

versionMax :: Version
versionOther :: OtherParams

MinMaxICalVersion |

Fields

versionMax :: Version
versionMin :: Version
versionOther :: OtherParams

Instances

Eq ICalVersion Source |
Ord ICalVersion Source |
Show ICalVersion Source |

data Scale Source

Calendar Scale. 3.7.1.

Constructors

Scale |

Fields

scaleValue :: CI Text
scaleOther :: OtherParams

Instances

Eq Scale Source |
Ord Scale Source |
Show Scale Source |
Default Scale Source |

data Method Source

Method. 3.7.2.

Constructors

Method |

Fields

methodValue :: CI Text
methodOther :: OtherParams

Instances

Eq Method Source |
Ord Method Source |
Show Method Source |

data VEvent Source

Event Component. 3.6.1.

Constructors

VEvent |

Fields

veDTStamp :: DTStamp
veUID :: UID
veClass :: Class

  `def` = `Public`

veDTStart :: Maybe DTStart
veCreated :: Maybe Created
veDescription :: Maybe Description
veGeo :: Maybe Geo
veLastMod :: Maybe LastModified
veLocation :: Maybe Location
veOrganizer :: Maybe Organizer
vePriority :: Priority

  `def` = 0

veSeq :: Sequence

  `def` = 0

veStatus :: Maybe EventStatus
veSummary :: Maybe Summary
veTransp :: TimeTransparency

  `def` = `Opaque`

veUrl :: Maybe URL
veRecurId :: Maybe RecurrenceId
veRRule :: Set RRule
veDTEndDuration :: Maybe (Either DTEnd DurationProp)
veAttach :: Set Attachment
veAttendee :: Set Attendee
veCategories :: Set Categories
veComment :: Set Comment
veContact :: Set Contact
veExDate :: Set ExDate
veRStatus :: Set RequestStatus
veRelated :: Set RelatedTo
veResources :: Set Resources
veRDate :: Set RDate
veAlarms :: Set VAlarm
veOther :: Set OtherProperty

Instances

Eq VEvent Source |
Ord VEvent Source |
Show VEvent Source |

data VTodo Source

To-Do Component. 3.6.2

Constructors

VTodo |

Fields

vtDTStamp :: DTStamp
vtUID :: UID
vtClass :: Class

  `def` = `Public`

vtCompleted :: Maybe Completed
vtCreated :: Maybe Created
vtDescription :: Maybe Description
vtDTStart :: Maybe DTStart
vtGeo :: Maybe Geo
vtLastMod :: Maybe LastModified
vtLocation :: Maybe Location
vtOrganizer :: Maybe Organizer
vtPercent :: Maybe PercentComplete
vtPriority :: Priority

  `def` = 0

vtRecurId :: Maybe RecurrenceId
vtSeq :: Sequence

  `def` = 0

vtStatus :: Maybe TodoStatus
vtSummary :: Maybe Summary
vtUrl :: Maybe URL
vtRRule :: Set RRule
vtDueDuration :: Maybe (Either Due DurationProp)
vtAttach :: Set Attachment
vtAttendee :: Set Attendee
vtCategories :: Set Categories
vtComment :: Set Comment
vtContact :: Set Contact
vtExDate :: Set ExDate
vtRStatus :: Set RequestStatus
vtRelated :: Set RelatedTo
vtResources :: Set Resources
vtRDate :: Set RDate
vtAlarms :: Set VAlarm
vtOther :: Set OtherProperty

Instances

Eq VTodo Source |
Ord VTodo Source |
Show VTodo Source |

data VJournal Source

Journal Component. 3.6.3

Constructors

VJournal |

Fields

vjDTStamp :: DTStamp
vjUID :: UID
vjClass :: Class

  `def` = `Public`

vjCreated :: Maybe Created
vjDTStart :: Maybe DTStart
vjLastMod :: Maybe LastModified
vjOrganizer :: Maybe Organizer
vjRecurId :: Maybe RecurrenceId
vjSeq :: Sequence

  `def` = 0

vjStatus :: Maybe JournalStatus
vjSummary :: Maybe Summary
vjUrl :: Maybe URL
vjRRule :: Set RRule
vjAttach :: Set Attachment
vjAttendee :: Set Attendee
vjCategories :: Set Categories
vjComment :: Set Comment
vjContact :: Set Contact
vjDescription :: Set Description
vjExDate :: Set ExDate
vjRelated :: Set RelatedTo
vjRDate :: Set RDate
vjRStatus :: Set RequestStatus
vjOther :: Set OtherProperty

Instances

Eq VJournal Source |
Ord VJournal Source |
Show VJournal Source |

data VFreeBusy Source

Free/Busy Component. 3.6.4

Constructors

VFreeBusy |

Fields

vfbDTStamp :: DTStamp
vfbUID :: UID
vfbContact :: Maybe Contact
vfbDTStart :: Maybe DTStart
vfbDTEnd :: Maybe DTEnd
vfbOrganizer :: Maybe Organizer
vfbUrl :: Maybe URL
vfbAttendee :: Set Attendee
vfbComment :: Set Comment
vfbFreeBusy :: Set FreeBusy
vfbRStatus :: Set RequestStatus
vfbOther :: Set OtherProperty

Instances

Eq VFreeBusy Source |
Ord VFreeBusy Source |
Show VFreeBusy Source |

data VTimeZone Source

Time Zone Component. 3.6.5.

Constructors

VTimeZone |

Fields

vtzId :: TZID
vtzLastMod :: Maybe LastModified
vtzUrl :: Maybe TZUrl
vtzStandardC :: Set TZProp
vtzDaylightC :: Set TZProp
vtzOther :: Set OtherProperty

Instances

Eq VTimeZone Source |
Ord VTimeZone Source |
Show VTimeZone Source |

data TZProp Source

Time zone property, also 3.6.5.

Constructors

TZProp |

Fields

tzpDTStart :: DTStart
tzpTZOffsetTo :: UTCOffset
tzpTZOffsetFrom :: UTCOffset
tzpRRule :: Set RRule
tzpComment :: Set Comment
tzpRDate :: Set RDate
tzpTZName :: Set TZName
tzpOther :: Set OtherProperty

Instances

Eq TZProp Source |
Ord TZProp Source |
Show TZProp Source |

data VAlarm Source

VAlarm component. 3.6.6.

Constructors

VAlarmAudio |

Fields

vaTrigger :: Trigger
vaRepeat :: Repeat

  `def` = 0

vaDuration :: Maybe DurationProp
vaAudioAttach :: Maybe Attachment
vaOther :: Set OtherProperty
vaActionOther :: OtherParams

VAlarmDisplay |

Fields

vaDescription :: Description
vaTrigger :: Trigger
vaRepeat :: Repeat

  `def` = 0

vaDuration :: Maybe DurationProp
vaOther :: Set OtherProperty
vaActionOther :: OtherParams

VAlarmEmail |

Fields

vaDescription :: Description
vaTrigger :: Trigger
vaSummary :: Summary
vaAttendee :: Set Attendee
vaRepeat :: Repeat

  `def` = 0

vaDuration :: Maybe DurationProp
vaMailAttach :: Set Attachment
vaOther :: Set OtherProperty
vaActionOther :: OtherParams

VAlarmX |

Fields

vaAction :: CI Text
vaTrigger :: Trigger
vaActionOther :: OtherParams
vaOther :: Set OtherProperty

Instances

Eq VAlarm Source |
Ord VAlarm Source |
Show VAlarm Source |

data VOther Source

Any other component not recognized.

Constructors

VOther |

Fields

voName :: CI Text
voProps :: Set OtherProperty

Instances

Eq VOther Source |
Ord VOther Source |
Show VOther Source |

data Attachment Source

Attachment. 3.8.1.1.

Constructors

UriAttachment |

Fields

attachFmtType :: Maybe MIMEType
attachUri :: URI
attachOther :: OtherParams

BinaryAttachment |

Fields

attachFmtType :: Maybe MIMEType
attachContent :: ByteString
attachOther :: OtherParams

Instances

Eq Attachment Source |
Ord Attachment Source |
Show Attachment Source |

data Categories Source

Categories. 3.8.1.2.

Constructors

Categories |

Fields

categoriesValues :: Set Text
categoriesLanguage :: Maybe Language
categoriesOther :: OtherParams

Instances

Eq Categories Source |
Ord Categories Source |
Show Categories Source |

data Class Source

Classification. 3.8.1.3.

Constructors

Class |

Fields

classValue :: ClassValue
classOther :: OtherParams

Instances

Eq Class Source |
Ord Class Source |
Show Class Source |
Default Class Source |

data ClassValue Source

Classification value. 3.8.1.3. Unrecognized ClassValueX MUST be treated as Private.

Constructors

Public |
Private |
Confidential |
ClassValueX (CI Text) |

Instances

Eq ClassValue Source |
Ord ClassValue Source |
Show ClassValue Source |
Default ClassValue Source |

data Completed Source

Date-Time Completed. 3.8.2.1.

Constructors

Completed |

Fields

completedValue :: DateTime
completedOther :: OtherParams

Instances

Eq Completed Source |
Ord Completed Source |
Show Completed Source |

data Comment Source

Comment. 3.8.1.4.

Constructors

Comment |

Fields

commentValue :: Text
commentAltRep :: Maybe URI
commentLanguage :: Maybe Language
commentOther :: OtherParams

Instances

Eq Comment Source |
Ord Comment Source |
Show Comment Source |

data Description Source

Description. 3.8.1.5.

Constructors

Description |

Fields

descriptionValue :: Text
descriptionAltRep :: Maybe URI
descriptionLanguage :: Maybe Language
descriptionOther :: OtherParams

Instances

Eq Description Source |
Ord Description Source |
Show Description Source |

data Geo Source

Geographic Position. 3.8.1.6.

Constructors

Geo |

Fields

geoLat :: Float
geoLong :: Float
geoOther :: OtherParams

Instances

Eq Geo Source |
Ord Geo Source |
Show Geo Source |

data Location Source

Location. 3.8.1.7.

Constructors

Location |

Fields

locationValue :: Text
locationAltRep :: Maybe URI
locationLanguage :: Maybe Language
locationOther :: OtherParams

Instances

Eq Location Source |
Ord Location Source |
Show Location Source |

data PercentComplete Source

Percent complete. 3.8.1.8.

Constructors

PercentComplete |

Fields

percentCompleteValue :: Int
percentCompleteOther :: OtherParams

Instances

Eq PercentComplete Source |
Ord PercentComplete Source |
Show PercentComplete Source |

data Priority Source

Priority. 3.8.1.9.

Constructors

Priority |

Fields

priorityValue :: Int
priorityOther :: OtherParams

Instances

Eq Priority Source |
Ord Priority Source |
Show Priority Source |
Default Priority Source |

data Resources Source

Resources. 3.8.1.10.

Constructors

Resources |

Fields

resourcesValue :: Set Text
resourcesAltRep :: Maybe URI
resourcesLanguage :: Maybe Language
resourcesOther :: OtherParams

Instances

Eq Resources Source |
Ord Resources Source |
Show Resources Source |

data EventStatus Source

Status, but only for Events. 3.8.1.11.

Constructors

TentativeEvent |

Fields

eventStatusOther :: OtherParams

ConfirmedEvent |

Fields

eventStatusOther :: OtherParams

CancelledEvent |

Fields

eventStatusOther :: OtherParams

Instances

Eq EventStatus Source |
Ord EventStatus Source |
Show EventStatus Source |

data TodoStatus Source

Status, but only for TODOs. 3.8.1.11.

Constructors

TodoNeedsAction |

Fields

todoStatusOther :: OtherParams

CompletedTodo |

Fields

todoStatusOther :: OtherParams

InProcessTodo |

Fields

todoStatusOther :: OtherParams

CancelledTodo |

Fields

todoStatusOther :: OtherParams

Instances

Eq TodoStatus Source |
Ord TodoStatus Source |
Show TodoStatus Source |

data JournalStatus Source

Status, but only for Journals. 3.8.1.11.

Constructors

DraftJournal |

Fields

journalStatusOther :: OtherParams

FinalJournal |

Fields

journalStatusOther :: OtherParams

CancelledJournal |

Fields

journalStatusOther :: OtherParams

Instances

Eq JournalStatus Source |
Ord JournalStatus Source |
Show JournalStatus Source |

data Summary Source

Summary. 3.8.1.12.

Constructors

Summary |

Fields

summaryValue :: Text
summaryAltRep :: Maybe URI
summaryLanguage :: Maybe Language
summaryOther :: OtherParams

Instances

Eq Summary Source |
Ord Summary Source |
Show Summary Source |

data Date Source

Date. 3.3.4

Constructors

Date |

Fields

dateValue :: Day

Instances

Eq Date Source |
Ord Date Source |
Show Date Source |

data DateTime Source

Date-Time value. 3.3.5.

Constructors

FloatingDateTime |

Fields

dateTimeFloating :: LocalTime

UTCDateTime |

Fields

dateTimeUTC :: UTCTime

ZonedDateTime |

Fields

dateTimeFloating :: LocalTime
dateTimeZone :: Text

Instances

Eq DateTime Source |
Ord DateTime Source |
Show DateTime Source |

data DTEnd Source

Date-Time End. 3.8.2.2.

Constructors

DTEndDateTime |

Fields

dtEndDateTimeValue :: DateTime
dtEndOther :: OtherParams

DTEndDate |

Fields

dtEndDateValue :: Date
dtEndOther :: OtherParams

Instances

Eq DTEnd Source |
Ord DTEnd Source |
Show DTEnd Source |

data Due Source

Date-Time Due. 3.8.2.3.

Constructors

DueDateTime |

Fields

dueDateTimeValue :: DateTime
dueOther :: OtherParams

DueDate |

Fields

dueDateValue :: Date
dueOther :: OtherParams

Instances

Eq Due Source |
Ord Due Source |
Show Due Source |

data DTStart Source

Date-Time Start. 3.8.2.4.

Constructors

DTStartDateTime |

Fields

dtStartDateTimeValue :: DateTime
dtStartOther :: OtherParams

DTStartDate |

Fields

dtStartDateValue :: Date
dtStartOther :: OtherParams

Instances

Eq DTStart Source |
Ord DTStart Source |
Show DTStart Source |

data Duration Source

Duration value. 3.3.6.

Constructors

DurationDate |

Fields

durSign :: Sign

  `def` = `Positive`

durDay :: Int
durHour :: Int
durMinute :: Int
durSecond :: Int

DurationTime |

Fields

durSign :: Sign

  `def` = `Positive`

durHour :: Int
durMinute :: Int
durSecond :: Int

DurationWeek |

Fields

durSign :: Sign

  `def` = `Positive`

durWeek :: Int

Instances

Eq Duration Source |
Ord Duration Source |
Show Duration Source |

data Sign Source

Sign.

Constructors

Positive |
Negative |

Instances

Eq Sign Source |
Ord Sign Source |
Show Sign Source |
Default Sign Source |

data DurationProp Source

Duration property. 3.8.2.5.

Constructors

DurationProp |

Fields

durationValue :: Duration
durationOther :: OtherParams

Instances

Eq DurationProp Source |
Ord DurationProp Source |
Show DurationProp Source |

data FreeBusy Source

Constructors

FreeBusy |

Fields

freeBusyType :: FBType
freeBusyPeriods :: Set UTCPeriod
freeBusyOther :: OtherParams

Instances

Eq FreeBusy Source |
Ord FreeBusy Source |
Show FreeBusy Source |

data Period Source

Period of time. 3.3.9.

Constructors

PeriodDates DateTime DateTime |
PeriodDuration DateTime Duration |

Instances

Eq Period Source |
Ord Period Source |
Show Period Source |

data UTCPeriod Source

Period of time which must be UTC, as in FreeBusy. 3.3.9.

Constructors

UTCPeriodDates UTCTime UTCTime |
UTCPeriodDuration UTCTime Duration |

Instances

Eq UTCPeriod Source |
Ord UTCPeriod Source |
Show UTCPeriod Source |

data FBType Source

Free/Busy Time Type. 3.2.9.

Unrecognized FBTypeX MUST be treated as Busy.

Constructors

Free |
Busy |
BusyUnavailable |
BusyTentative |
FBTypeX (CI Text) |

Instances

Eq FBType Source |
Ord FBType Source |
Show FBType Source |
Default FBType Source |

data TimeTransparency Source

Time Transparency. 3.8.2.7.

Constructors

Opaque |

Fields

timeTransparencyOther :: OtherParams

Transparent |

Fields

timeTransparencyOther :: OtherParams

Instances

Eq TimeTransparency Source |
Ord TimeTransparency Source |
Show TimeTransparency Source |
Default TimeTransparency Source |

data TZID Source

Time Zone Identifier. 3.8.3.1.

Constructors

TZID |

Fields

tzidValue :: Text
tzidGlobal :: Bool
tzidOther :: OtherParams

Instances

Eq TZID Source |
Ord TZID Source |
Show TZID Source |

data TZName Source

Time Zone Name. 3.8.3.2.

Constructors

TZName |

Fields

tzNameValue :: Text
tzNameLanguage :: Maybe Language
tzNameOther :: OtherParams

Instances

Eq TZName Source |
Ord TZName Source |
Show TZName Source |

data UTCOffset Source

UTC Offset. 3.3.14, 3.8.3.4, and 3.8.3.3. (unified-ish)

Constructors

UTCOffset |

Fields

utcOffsetValue :: Int

  Number of seconds away from UTC

utcOffsetOther :: OtherParams

Instances

Eq UTCOffset Source |
Ord UTCOffset Source |
Show UTCOffset Source |

data TZUrl Source

Time Zone URL. 3.8.3.5.

Constructors

TZUrl |

Fields

tzUrlValue :: URI
tzUrlOther :: OtherParams

Instances

Eq TZUrl Source |
Ord TZUrl Source |
Show TZUrl Source |

data Attendee Source

Attendee. 3.8.4.1.

Constructors

Attendee |

Fields

attendeeValue :: CalAddress
attendeeCUType :: CUType

  `def` = `Individual`

attendeeMember :: Set CalAddress
attendeeRole :: Role

  `def` = `ReqParticipant`

attendeePartStat :: PartStat

  `def` = `PartStatNeedsAction`

attendeeRSVP :: Bool
attendeeDelTo :: Set CalAddress
attendeeDelFrom :: Set CalAddress
attendeeSentBy :: Maybe CalAddress
attendeeCN :: Maybe Text
attendeeDir :: Maybe URI
attendeeLanguage :: Maybe Language
attendeeOther :: OtherParams

Instances

Eq Attendee Source |
Ord Attendee Source |
Show Attendee Source |

data CUType Source

Calendar User Type. 3.2.3.

Unrecognized CUTypeX MUST be treated as Unknown.

Constructors

Individual |
Group |
Resource |
Room |
Unknown |
CUTypeX (CI Text) |

Instances

Eq CUType Source |
Ord CUType Source |
Show CUType Source |
Default CUType Source |

data Role Source

Role. 3.2.16.

Constructors

Chair |
ReqParticipant |
OptParticipant |
NonParticipant |
RoleX (CI Text) |

Instances

Eq Role Source |
Ord Role Source |
Show Role Source |
Default Role Source |

data PartStat Source

Participation Status. 3.2.12.

Constructors

PartStatNeedsAction |
Accepted |
Declined |
Tentative |
Delegated |
PartStatCompleted |
InProcess |
PartStatX (CI Text) |

Instances

Eq PartStat Source |
Ord PartStat Source |
Show PartStat Source |
Default PartStat Source |

data Contact Source

Contact. 3.8.4.2.

Constructors

Contact |

Fields

contactValue :: Text
contactAltRep :: Maybe URI
contactLanguage :: Maybe Language
contactOther :: OtherParams

Instances

Eq Contact Source |
Ord Contact Source |
Show Contact Source |

data Organizer Source

Organizer. 3.8.4.3.

TODO: CAL-ADDRESS-related properties.

Constructors

Organizer |

Fields

organizerValue :: CalAddress
organizerCN :: Maybe Text
organizerDir :: Maybe URI
organizerSentBy :: Maybe CalAddress
organizerLanguage :: Maybe Language
organizerOther :: OtherParams

Instances

Eq Organizer Source |
Ord Organizer Source |
Show Organizer Source |

data RecurrenceId Source

Recurrence ID. 3.8.4.4.

Constructors

RecurrenceIdDate |

Fields

recurrenceIdDate :: Date
recurrenceIdRange :: Maybe Range
recurrenceIdOther :: OtherParams

RecurrenceIdDateTime |

Fields

recurrenceIdDateTime :: DateTime
recurrenceIdRange :: Maybe Range
recurrenceIdOther :: OtherParams

Instances

Eq RecurrenceId Source |
Ord RecurrenceId Source |
Show RecurrenceId Source |

data Range Source

Recurrence Identifier Range. 3.2.13

Constructors

ThisAndFuture |
ThisAndPrior |

Instances

Eq Range Source |
Ord Range Source |
Show Range Source |

data RelatedTo Source

Related To. 3.8.4.5.

Constructors

RelatedTo |

Fields

relatedToValue :: Text
relatedToType :: RelationshipType
relatedToOther :: OtherParams

Instances

Eq RelatedTo Source |
Ord RelatedTo Source |
Show RelatedTo Source |

data RelationshipType Source

Relationship Type. 3.2.15.

Unrecognized RelationshipTypeX values MUST be treated as Parent.

Constructors

Parent |
Child |
Sibling |
RelationshipTypeX (CI Text) |

Instances

Eq RelationshipType Source |
Ord RelationshipType Source |
Show RelationshipType Source |
Default RelationshipType Source |

data URL Source

Uniform Resource Locator. 3.8.4.6.

Constructors

URL |

Fields

urlValue :: URI
urlOther :: OtherParams

Instances

Eq URL Source |
Ord URL Source |
Show URL Source |

data UID Source

Unique Identifier. 3.8.4.7.

Constructors

UID |

Fields

uidValue :: Text
uidOther :: OtherParams

Instances

Eq UID Source |
Ord UID Source |
Show UID Source |

data ExDate Source

Exception Date-Times. 3.8.5.1.

Constructors

ExDates |

Fields

exDates :: Set Date
exDateOther :: OtherParams

ExDateTimes |

Fields

exDateTimes :: Set DateTime
exDateOther :: OtherParams

Instances

Eq ExDate Source |
Ord ExDate Source |
Show ExDate Source |

data RDate Source

Recurrence Date-Times. 3.8.5.2.

Constructors

RDateDates |

Fields

rDateDates :: Set Date
rDateOther :: OtherParams

RDateDateTimes |

Fields

rDateDateTimes :: Set DateTime
rDateOther :: OtherParams

RDatePeriods |

Fields

rDatePeriods :: Set Period
rDateOther :: OtherParams

Instances

Eq RDate Source |
Ord RDate Source |
Show RDate Source |

data Frequency Source

Frequency in recurrences. 3.3.10.

Constructors

Secondly |
Minutely |
Hourly |
Daily |
Weekly |
Monthly |
Yearly |

Instances

Eq Frequency Source |
Ord Frequency Source |
Show Frequency Source |

data Weekday Source

Weekday, in recurrences. 3.3.10.

Constructors

Sunday |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |

Instances

Bounded Weekday Source |
Enum Weekday Source |
Eq Weekday Source |
Ord Weekday Source |
Show Weekday Source |

data Recur Source

Recur value. 3.3.10.

Constructors

Recur |

Fields

recurFreq :: Frequency
recurUntilCount :: Maybe (Either (Either Date DateTime) Int)
recurInterval :: Int
recurBySecond :: [Int]
recurByMinute :: [Int]
recurByHour :: [Int]
recurByDay :: [Either (Int, Weekday) Weekday]
recurByMonthDay :: [Int]
recurByYearDay :: [Int]
recurByWeekNo :: [Int]
recurByMonth :: [Int]
recurBySetPos :: [Int]
recurWkSt :: Weekday

Instances

Eq Recur Source |
Ord Recur Source |
Show Recur Source |

data RRule Source

Recurrence Rule. 3.8.5.3.

Constructors

RRule |

Fields

rRuleValue :: Recur
rRuleOther :: OtherParams

Instances

Eq RRule Source |
Ord RRule Source |
Show RRule Source |

data Repeat Source

Repeat count. 3.8.6.2.

Constructors

Repeat |

Fields

repeatValue :: Integer
repeatOther :: OtherParams

Instances

Eq Repeat Source |
Ord Repeat Source |
Show Repeat Source |
Default Repeat Source |

data AlarmTriggerRelationship Source

Alarm Trigger Relationship. 3.2.14.

Constructors

Start |
End |

Instances

Eq AlarmTriggerRelationship Source |
Ord AlarmTriggerRelationship Source |
Show AlarmTriggerRelationship Source |
Default AlarmTriggerRelationship Source |

data Trigger Source

Trigger. 3.8.6.3.

Constructors

TriggerDuration |

Fields

triggerDuration :: Duration
triggerRelated :: AlarmTriggerRelationship

  `def` = `Start`

triggerOther :: OtherParams

TriggerDateTime |

Fields

triggerDateTime :: UTCTime
triggerOther :: OtherParams

Instances

Eq Trigger Source |
Ord Trigger Source |
Show Trigger Source |

data Created Source

Date-Time Created. 3.8.7.1.

Constructors

Created |

Fields

createdValue :: UTCTime
createdOther :: OtherParams

Instances

Eq Created Source |
Ord Created Source |
Show Created Source |

data DTStamp Source

Date-Time Stamp. 3.8.7.2.

Constructors

DTStamp |

Fields

dtStampValue :: UTCTime
dtStampOther :: OtherParams

Instances

Eq DTStamp Source |
Ord DTStamp Source |
Show DTStamp Source |

data LastModified Source

Last Modified. 3.8.7.3.

Constructors

LastModified |

Fields

lastModifiedValue :: UTCTime
lastModifiedOther :: OtherParams

Instances

Eq LastModified Source |
Ord LastModified Source |
Show LastModified Source |

data Sequence Source

Sequence number. 3.8.7.4.

Constructors

Sequence |

Fields

sequenceValue :: Integer
sequenceOther :: OtherParams

Instances

Eq Sequence Source |
Ord Sequence Source |
Show Sequence Source |
Default Sequence Source |

data RequestStatus Source

Request Status. 3.8.8.3.

Constructors

RequestStatus |

Fields

requestStatusCode :: [Int]
requestStatusDesc :: Text
requestStatusLanguage :: Maybe Language
requestStatusExt :: Maybe Text
requestStatusOther :: OtherParams

Instances

Eq RequestStatus Source |
Ord RequestStatus Source |
Show RequestStatus Source |

data OtherProperty Source

Any other property.

Constructors

OtherProperty |

Fields

otherName :: CI Text
otherValue :: ByteString
otherParams :: OtherParams

Instances

Eq OtherProperty Source |
Ord OtherProperty Source |
Show OtherProperty Source |