Skip to content
RuaRuan
返回

RFC 5545 属性体系详解

RFC 5545 定义了那些属性,详细解释

RFC 5545 (iCalendar) 定义的属性多达50余个,它们共同构成了日历数据的标准格式。这些属性可分为通用属性、组件特有属性等几类,每一类都服务于不同的日程管理需求。

📄 RFC 5545 (iCalendar) 概述

🏷️ RFC 5545 属性体系详解

以下是RFC 5545中定义的所有属性的完整列表。

📝 通用描述与标识属性

这些属性用于描述日程、任务或日志的基本信息,如标题、详情等,使内容清晰明确。

属性名称 (Property)描述 (Description)
SUMMARY组件(如事件、任务)的简短描述或标题。
DESCRIPTION组件的详细文本描述。
COMMENT关于日历组件的注释或说明。
LOCATION事件或任务发生的地点。
CATEGORIES用于对组件进行分类的标签列表。
PRIORITY任务的优先级,取值范围为0到9。
CLASS组件的访问权限或可见性,如 PUBLIC, PRIVATE, CONFIDENTIAL
STATUS组件的状态,如 CONFIRMED (已确认), CANCELLED (已取消), COMPLETED (已完成)。
RESOURCES事件或任务所需的资源,如投影仪、白板等。
URL指向与该组件相关的网页或其他网络资源的链接。
ATTACH指向与该组件关联的附件的 URI(统一资源标识符)。
CONTACT用于联系人的信息,通常用于指定事件的联系人。
GEO地理位置信息,格式为 纬度;经度
IMAGE与组件关联的图像资源的 URI。
COLOR指定日历组件在用户界面中显示的推荐颜色。
CONFERENCE提供关于如何加入在线会议或虚拟活动的信息,例如包含视频会议链接。
SOURCE指定此日历组件来源的 URI,例如原始日历文件的位置。
REFRESH-INTERVAL建议日历用户代理 (CUA) 刷新此日历数据的时间间隔。

⏰ 时间与调度核心属性

这些是定义事件何时发生、持续多久、如何重复以及如何响应的核心属性。

属性名称 (Property)描述 (Description)
DTSTART组件的开始日期或时间。
DTEND事件的结束日期或时间(非包含)。
DUE任务的截止日期或时间。
DURATION组件的持续时间,如 PT1H(1小时)。
TRANSP事件的透明度(OPAQUE / TRANSPARENT),定义其在忙/闲搜索中是否可见。
RRULE定义组件的重复规则,如 FREQ=WEEKLY;COUNT=10
EXDATE指定从重复集中排除的异常日期或日期-时间。
RDATE指定重复集中的额外日期或日期-时间列表。
RECURRENCE-ID用于引用一个重复组件的特定实例。
REQUEST-STATUS描述由调度操作返回的状态码,通常用于 iTIP 消息。
RELATED-TO建立当前组件与另一个组件之间的关联关系。

👥 参与者与组织属性

这些属性用于定义谁创建了日历、谁是组织者、参与者是谁,以及他们的角色和状态。

属性名称 (Property)描述 (Description)
ORGANIZER事件或任务的组织者。
ATTENDEE事件或任务的参与者。
ATTENDEE 常用参数PARTSTAT (参与状态: NEEDS-ACTION, ACCEPTED, DECLINED, TENTATIVE), ROLE (角色: REQ-PARTICIPANT, CHAIR), RSVP (是否请求回复), CUTYPE (用户类型: INDIVIDUAL, GROUP, RESOURCE)。
CONTACT用于联系人的信息,通常用于指定事件的联系人。

🔗 元数据与审计属性

这些属性用于追踪日历组件的生命周期、版本和来源,是系统间同步和冲突解决的关键。

属性名称 (Property)描述 (Description)
UID日历组件的全局唯一标识符,在全世界范围内唯一标识该组件。
DTSTAMP指示此日历组件实例的创建日期和时间。对于不含 METHOD 的日历对象,它等效于 LAST-MODIFIED
CREATED日历信息在日历存储中被创建的日期和时间。
LAST-MODIFIED组件信息在日历存储中被最后修订的日期和时间,类似于文件修改时间。
SEQUENCE一个递增的修订号,用于管理日历组件在调度流程中的版本,在冲突解决中至关重要。
PRODID创建 iCalendar 对象的产品的标识符,如 ”-//Example Corp//Calendar App//EN”。
VERSIONiCalendar 规范的版本号,对于本规范是 “2.0”。
CALSCALE定义日历系统中使用的日历刻度(如 GREGORIAN)。
METHOD与 iCalendar 对象关联的 iTIP 调度方法,如 REQUEST, REPLY, CANCEL
NAME为整个日历(VCALENDAR 组件)提供名称。
REFRESH-INTERVAL建议日历用户代理 (CUA) 刷新此日历数据的时间间隔。
SOURCE指定此日历组件来源的 URI,例如原始日历文件的位置。

⏲️ 时区定义专用属性

这些属性仅在 VTIMEZONE 组件中使用,用于精确地定义时区信息,特别是夏令时规则。

属性名称 (Property)描述 (Description)
TZID时区的唯一标识符,如 “America/New_York”。
TZNAME时区的显示名称,如 “Eastern Standard Time”。
TZOFFSETFROM时区在生效时刻的 UTC 偏移量,用于定义时区变化前的偏移。
TZOFFSETTO时区在生效时刻的 UTC 偏移量,用于定义时区变化后的偏移。
TZURL指向一个 VTIMEZONE 组件定义的 URL 资源,允许动态加载时区规则。

⏲️ 警报(VALARM)专用属性

这些属性仅在 VALARM 组件中使用,用于定义提醒的具体行为。

属性名称 (Property)描述 (Description)
ACTION警报触发时要执行的动作,如 AUDIO, DISPLAY, EMAIL
TRIGGER定义警报相对于组件开始或结束的时间点,如 -PT15M(提前15分钟)。
REPEAT定义警报应重复的次数。
DURATION警报重复的总持续时间。
ATTACH对于 ACTION:AUDIO 警报,指定要播放的音频文件的 URI。
SUMMARY对于 ACTION:DISPLAY 警报,指定要显示的消息文本。
DESCRIPTION对于 ACTION:EMAIL 警报,指定电子邮件正文。

🧩 其他属性

属性名称 (Property)描述 (Description)
COMPLETED任务的完成日期和时间。
PERCENT-COMPLETE任务的完成百分比,范围为 0 到 100。
FREEBUSY在一个 VFREEBUSY 组件中,定义一个或多个空闲/忙碌的时间段。

💡 补充说明

💎 总结

RFC 5545 定义了一个全面而强大的属性体系,使得不同日历应用能够准确、丰富地交换日程信息。这些属性按功能分类,涵盖了从基本描述(如 SUMMARY, DESCRIPTION)到核心调度(如 DTSTART, RRULE),再到参与者管理(如 ORGANIZER, ATTENDEE)的方方面面。理解这些属性及其参数,是处理日历数据和实现日历互操作的基础。



上一篇
重新找回深度阅读的能力
下一篇
基于 CalDAV 的日程管理系统数据库设计