Safe Haskell | Safe-Infered |
---|
Parser for the iCalendar format (version 2.0, RFC2445).
Features:
- Unfolds folded lines (see RFC)
- Supports all IANA iCalendar tokens
Warning! This is version 0.0, important things are missing
- Property and parameter values are not parsed, but kept as in the file.
- There are no restrictions on the properties components can have.
- Line unfolding causes error messages to report the wrong line.
This package is meant to grow to a full-fledged data definition, printer and parser for the iCalendar format. But that will probably take some time. So, if you've come here because you need this, please e-mail me (Eelco Lempsink).
- data ComponentName
- data PropertyName
- = CALSCALE
- | METHOD
- | PRODID
- | VERSION
- | ATTACH
- | CATEGORIES
- | CLASS
- | COMMENT
- | DESCRIPTION
- | GEO
- | LOCATION
- | PERCENT_COMPLETE
- | PRIORITY
- | RESOURCES
- | STATUS
- | SUMMARY
- | COMPLETED
- | DTEND
- | DUE
- | DTSTART
- | DURATION
- | FREEBUSY
- | TRANSP
- | TZID
- | TZNAME
- | TZOFFSETFROM
- | TZOFFSETTO
- | TZURL
- | ATTENDEE
- | CONTACT
- | ORGANIZER
- | RECURRENCE_ID
- | RELATED_TO
- | URL
- | UID
- | EXDATE
- | EXRULE
- | RDATE
- | RRULE
- | ACTION
- | REPEAT
- | TRIGGER
- | CREATED
- | DTSTAMP
- | LAST_MODIFIED
- | SEQUENCE
- | X_ String
- | REQUEST_STATUS
- data ParamName
- data ParamValue
- type Property = (PropertyName, [Param], Value)
- type Value = String
- data ICalendar = ICalendar {
- calendarProperties :: [Property]
- components :: [Component]
- data Component = Component {
- cName :: ComponentName
- properties :: [Property]
- subcomponents :: [Component]
- data Param = Param {
- pName :: ParamName
- pValues :: [ParamValue]
- parser :: ParsecT [Char] u Identity ICalendar
Tokens from RFC2445
data ComponentName Source
Calendar Component names (4.6)
VEVENT | Event Component (4.6.1) |
VTODO | To-do Component (4.6.2) |
VJOURNAL | Journal Component (4.6.3) |
VFREEBUSY | Free/Busy Component (4.6.4) |
VTIMEZONE | Time Zone Component (4.6.5) |
X_c String | Non-standard/Experimental Component Time Zone subcomponents |
STANDARD | Standard Time Sub-component (4.6.5) |
DAYLIGHT | Daylight Saving Time Sub-component (4.6.5) Event and To-do subcomponent |
VALARM | Alarm Sub-component (4.6.6) |
data PropertyName Source
Property names for Calendar Properties (4.7) and Component Properties (4.8)
CALSCALE | Calendar Scale (4.7.1) |
METHOD | Method (4.7.2) |
PRODID | Product Identifier (4.7.3) |
VERSION | Version (4.7.4) |
ATTACH | Attachment (4.8.1.1) |
CATEGORIES | Categories (4.8.1.2) |
CLASS | Classification (4.8.1.3) |
COMMENT | Comment (4.8.1.4) |
DESCRIPTION | Description (4.8.1.5) |
GEO | Geographic Position (4.8.1.6) |
LOCATION | Location (4.8.1.7) |
PERCENT_COMPLETE | Percent Complete (4.8.1.8) |
PRIORITY | Priority (4.8.1.9) |
RESOURCES | Resources (4.8.1.10) |
STATUS | Status (4.8.1.11) |
SUMMARY | Summary (4.8.1.12) |
COMPLETED | Date/Time Completed (4.8.2.1) |
DTEND | Date/Time End (4.8.2.2) |
DUE | Date/Time Due (4.8.2.3) |
DTSTART | Date/Time Start (4.8.2.4) |
DURATION | Duration (4.8.2.5) |
FREEBUSY | Free/Busy Time (4.8.2.6) |
TRANSP | Time Transparency (4.8.2.7) |
TZID | Time Zone Identifier (4.8.3.1) |
TZNAME | Time Zone Name (4.8.3.2) |
TZOFFSETFROM | Time Zone Offset From (4.8.3.3) |
TZOFFSETTO | Time Zone Offset To (4.8.3.4) |
TZURL | Time Zone URL (4.8.3.5) |
ATTENDEE | Attendee (4.8.4.1) |
CONTACT | Contact (4.8.4.2) |
ORGANIZER | Organizer (4.8.4.3) |
RECURRENCE_ID | Recurrence ID (4.8.4.4) |
RELATED_TO | Related To (4.8.4.5) |
URL | Uniform Resource Locator (4.8.4.6) |
UID | Unique Identfier (4.8.4.7) |
EXDATE | Exception Date/Times (4.8.5.1) |
EXRULE | Exception Rule (4.8.5.2) |
RDATE | Recurrence Date/Times (4.8.5.3) |
RRULE | Recurrence Rule (4.8.5.4) |
ACTION | Action (4.8.6.1) |
REPEAT | Repeat Count (4.8.6.2) |
TRIGGER | Trigger (4.8.6.3) |
CREATED | Date/Time Created (4.8.7.1) |
DTSTAMP | Date/Time Stamp (4.8.7.2) |
LAST_MODIFIED | Last Modified (4.8.7.3) |
SEQUENCE | Sequence Number (4.8.7.4) |
X_ String | Non-standard Properties (4.8.8.1) |
REQUEST_STATUS | Request Status (4.8.8.2) |
Parameter names (4.2)
ALTREP | Alternate Text Represenation (4.2.1) |
CN | Common Name (4.2.2) |
CUTYPE | Calendar User Type (4.2.3) |
DELEGATED_FROM | Delegators (4.2.4) |
DELEGATED_TO | Delegatees (4.2.5) |
DIR | Directory Entry Reference (4.2.6) |
ENCODING | Inline Encoding (4.2.7) |
FMTYPE | Format Type (4.2.8) |
FBTYPE | Free/Busy Time Type (4.2.9) |
LANGUAGE | Language (4.2.10) |
MEMBER | Group or List Membership (4.2.11) |
PARTSTAT | Participation Status (4.2.12) |
RANGE | Recurrence Identfier Range (4.2.13) |
RELATED | Alarm Trigger Relationship (4.2.14) |
RELTYPE | Relationship Type (4.2.15) |
ROLE | Participation Role (4.2.16) |
RSVP | RSVP Expectation (4.2.17) |
SENT_BY | Sent By (4.2.18) |
TZIDp | Time Zone Identifier (4.2.19) |
VALUE | Value Data Types (4.2.20) |
X_p String | Non-standard Parameter (4.2.21) |
Data definitions
type Property = (PropertyName, [Param], Value)Source
iCalendar data
ICalendar | |
|
Component data
Component | |
|
Parameter data
Param | |
|