RFC5445 simple client implication in go
see https://tools.ietf.org/html/rfc5545
todo list:
- Value Types
- Binary
- Boolean
- Calendar User Address
- Date
- Date-Time
- Duration
- Float
- Integer
- Period of Time
- Recurrence Rule
- Text
- Time
- URI
- UTC Offset
- Property Parameters
- Alternate Text Representation
- Common Name
- Calendar User Type
- Delegators
- Delegatees
- Directory Entry Reference
- Inline Encoding
- Format Type
- Free/Busy Time Type
- Language
- Group or List Membership
- Participation Status
- Recurrence Identifier Range
- Alarm Trigger Relationship
- Relationship Type
- Participation Role
- RSVP Expectation
- Sent By
- Time Zone Identifier
- Value Data Types
- Component Properties
- Descriptive Component Properties
- Attachment
- Categories
- Classification
- Comment
- Description
- Geographic Position
- Location
- Percent Complete
- Priority
- Resources
- Status
- Date and Time Component Properties
- Date-Time Completed
- Date-Time End
- Date-Time Due
- Date-Time Start
- Duration
- Free/Busy Time
- Time Transparency
- Time Zone Component Properties
- Time Zone Identifier
- Time Zone Name
- Time Zone Offset From
- Time Zone Offset To
- Time Zone URL
- Relationship Component Properties
- Attendee
- Contact
- Organizer
- Recurrence ID
- Related To
- Uniform Resource Locator
- Unique Identifier
- Recurrence Component Properties
- Exception Date-Times
- Recurrence Date-Times
- Recurrence Rule
- Alarm Component Properties
- Action
- Repeat Count
- Trigger
- Change Management Component Properties
- Date-Time Created
- Date-Time Stamp
- Last Modified
- Sequence Number
- Miscellaneous Component Properties
- IANA Properties
- Non-Standard Properties
- Request Status
- Descriptive Component Properties
- EVENT
- TO-DO
- JOURNAL
- FREE/BUSY
- TIME ZONE
- Calender
- Error-check
// BEGIN:VCALENDAR
// VERSION:2.0
// PRODID:-//hacksw/handcal//NONSGML v1.0//EN
// BEGIN:VEVENT
// UID:19970610T172345Z-AF23B2@example.com
// DTSTAMP:19970610T172345Z
// DTSTART:19970714T170000Z
// DTEND:19970715T040000Z
// SUMMARY:Bastille Day Party
// END:VEVENT
// END:VCALENDAR
c := Calendar{
ProdId: property.NewProductIdentifier("-//hacksw/handcal//NONSGML v1.0//EN"),
Version: &property.Version2,
Components: []components.Component{
&components.Event{
DtStamp: changemanage.NewDtStamp(1997, 6, 10, 17, 23, 45),
Uid: relationship.NewUid("19970610T172345Z-AF23B2@example.com"),
DtStart: datetime.NewDateStartWithDatetime(1997, 7, 14, 17, 0, 0),
Summary: descriptive.NewSummary("Bastille Day Party"),
DtEnd: datetime.NewDateTimeDateEnd(1997, 7, 15, 4, 0, 0),
},
},
}
calendar, _ := c.Calendar()
fmt.Println(calendar)