An implementation of:
- RCF5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar)
- RFC6868: Parameter Value Encoding in iCalendar and vCard
- RFC7986: New Properties for iCalendar.
This library now covers all of RFC 5545
and some of RFC 7986
.
It's already being used in production at https://smos.online and https://social-dance.today.
- Strict RFC Compliance
- Being able to deal with some of other implementors' failures to comply with the spec
- 1. Introduction
- 2. Basic Grammar and Conventions
- 2.1. Formatting Conventions
- 2.2. Related Memos
- 3. iCalendar Object Specification
- 3.1. Content Lines
- 3.1.1. List and Field Separators
- 3.1.2. Multiple Values
- 3.1.3. Binary Content
- 3.1.4. Character Set
- 3.2. Property Parameters
- 3.2.1. Alternate Text Representation
- 3.2.2. Common Name
- 3.2.3. Calendar User Type
- 3.2.4. Delegators
- 3.2.5. Delegatees
- 3.2.6. Directory Entry Reference
- 3.2.7. Inline Encoding
- 3.2.8. Format Type
- 3.2.9. Free/Busy Time Type
- 3.2.10. Language
- 3.2.11. Group or List Membership
- 3.2.12. Participation Status
- 3.2.13. Recurrence Identifier Range
- 3.2.14. Alarm Trigger Relationship
- 3.2.15. Relationship Type
- 3.2.16. Participation Role
- 3.2.17. RSVP Expectation
- 3.2.18. Sent By
- 3.2.19. Time Zone Identifier
- 3.2.20. Value Data Types
- 3.3. Property Value Data Types
- 3.3.1. Binary
- 3.3.2. Boolean
- 3.3.3. Calendar User Address
- 3.3.4. Date
- 3.3.5. Date-Time
- 3.3.6. Duration
- 3.3.7. Float
- 3.3.8. Integer
- 3.3.9. Period of Time
- 3.3.10. Recurrence Rule
- 3.3.11. Text
- 3.3.12. Time
- 3.3.13. URI
- 3.3.14. UTC Offset
- 3.4. iCalendar Object
- 3.5. Property
- 3.6. Calendar Components
- 3.6.1. Event Component
- 3.6.2. To-Do Component
- 3.6.3. Journal Component
- 3.6.4. Free/Busy Component
- 3.6.5. Time Zone Component
- 3.6.6. Alarm Component
- 3.7. Calendar Properties
- 3.7.1. Calendar Scale
- 3.7.2. Method
- 3.7.3. Product Identifier
- 3.7.4. Version
- 3.8. Component Properties
- 3.8.1. Descriptive Component Properties
- 3.8.1.1. Attachment
- 3.8.1.2. Categories
- 3.8.1.3. Classification
- 3.8.1.4. Comment
- 3.8.1.5. Description
- 3.8.1.6. Geographic Position
- 3.8.1.7. Location
- 3.8.1.8. Percent Complete
- 3.8.1.9. Priority
- 3.8.1.10. Resources
- 3.8.1.11. Status
- 3.8.1.12. Summary
- 3.8.2. Date and Time Component Properties
- 3.8.2.1. Date-Time Completed
- 3.8.2.2. Date-Time End
- 3.8.2.3. Date-Time Due
- 3.8.2.4. Date-Time Start
- 3.8.2.5. Duration
- 3.8.2.6. Free/Busy Time
- 3.8.2.7. Time Transparency
- 3.8.3. Time Zone Component Properties
- 3.8.3.1. Time Zone Identifier
- 3.8.3.2. Time Zone Name
- 3.8.3.3. Time Zone Offset From
- 3.8.3.4. Time Zone Offset To
- 3.8.3.5. Time Zone URL
- 3.8.4. Relationship Component Properties
- 3.8.4.1. Attendee
- 3.8.4.2. Contact
- 3.8.4.3. Organizer
- 3.8.4.4. Recurrence ID
- 3.8.4.5. Related To
- 3.8.4.6. Uniform Resource Locator
- 3.8.4.7. Unique Identifier
- 3.8.5. Recurrence Component Properties
- 3.8.5.1. Exception Date-Times
- 3.8.5.2. Recurrence Date-Times
- 3.8.5.3. Recurrence Rule
- 3.8.6. Alarm Component Properties
- 3.8.6.1. Action
- 3.8.6.2. Repeat Count
- 3.8.6.3. Trigger
- 3.8.7. Change Management Component Properties
- 3.8.7.1. Date-Time Created
- 3.8.7.2. Date-Time Stamp
- 3.8.7.3. Last Modified
- 3.8.7.4. Sequence Number
- 3.8.8. Miscellaneous Component Properties
- 3.8.8.1. IANA Properties
- 3.8.8.2. Non-Standard Properties
- 3.8.8.3. Request Status
- 3.8.1. Descriptive Component Properties
- 3.1. Content Lines
- 4. iCalendar Object Examples
- 5. Recommended Practices
- 6. Internationalization Considerations
- 7. Security Considerations
- 8. IANA Considerations
- 8.1. iCalendar Media Type Registration
- 8.2. New iCalendar Elements Registration
- 8.2.1. iCalendar Elements Registration Procedure
- 8.2.2. Registration Template for Components
- 8.2.3. Registration Template for Properties
- 8.2.4. Registration Template for Parameters
- 8.2.5. Registration Template for Value Data Types
- 8.2.6. Registration Template for Values
- 8.3. Initial iCalendar Elements Registries
- 8.3.1. Components Registry
- 8.3.2. Properties Registry
- 8.3.3. Parameters Registry
- 8.3.4. Value Data Types Registry
- 8.3.5. Calendar User Types Registry
- 8.3.6. Free/Busy Time Types Registry
- 8.3.7. Participation Statuses Registry
- 8.3.8. Relationship Types Registry
- 8.3.9. Participation Roles Registry
- 8.3.10. Actions Registry
- 8.3.11. Classifications Registry
- 8.3.12. Methods Registry
- 9. Acknowledgments
- 10. References
- 10.1. Normative References
- 10.2. Informative References
- Appendix A. Differences from RFC 2445
- A.1. New Restrictions
- A.2. Restrictions Removed
- A.3. Deprecated Features
- 1. Introduction
- 2. Conventions Used in This Document
- 3. Parameter Value Encoding Scheme
- 3.1. iCalendar Example
- 3.2. vCard Example
- 4. Security Considerations
- 5. Acknowledgments
- 6. Normative References
- Appendix A. Choice of Quoting Mechanism
- 1. Introduction
- 2. Conventions Used in This Document
- 3. Backwards-Compatible Extension Properties
- 4. Modifications to Calendar Components
- 5. Properties
- 5.1. NAME Property
- 5.2. DESCRIPTION Property
- 5.3. UID Property
- 5.4. LAST-MODIFIED Property
- 5.5. URL Property
- 5.6. CATEGORIES Property
- 5.7. REFRESH-INTERVAL Property
- 5.8. SOURCE Property
- 5.9. COLOR Property
- 5.10. IMAGE Property
- 5.11. CONFERENCE Property
- 6. Property Parameters
- 6.1. DISPLAY Property Parameter
- 6.2. EMAIL Property Parameter
- 6.3. FEATURE Property Parameter
- 6.4. LABEL Property Parameter
- 7. Security Considerations
- 8. Privacy Considerations
- 9. IANA Considerations
- 9.1. Property Registrations
- 9.2. Parameter Registrations
- 9.3. Property Parameter Value Registries
- 10. References
- 10.1. Normative References
- 10.2. Informative References
TODO