# ics开发

**ics文件字段**
* BEGIN 和 END：这两个字段标记了 iCalendar 事件的开始和结束。它们将包含在整个 iCalendar 文件的各个部分之间。
* METHOD:REQUEST
* PRODID：标识生成 iCalendar 文件的应用程序或系统的唯一标识符。
* VERSION：指定 iCalendar 规范的版本。通常为 "2.0"
* UID：事件的唯一标识符，通常是一个全局唯一的字符串。
* SUMMARY：事件的简要摘要或标题。
* DESCRIPTION：事件的详细描述信息。
* LOCATION：事件的地点或位置。
* DTSTART：事件的开始日期和时间。
* DTEND：事件的结束日期和时间。
* DTSTAMP：生成事件的时间戳。
* RRULE：重复规则，用于指定事件的重复模式（例如，每周重复一次）。
* ORGANIZER：会议的组织者或发起人。
* ATTENDEE：参与者的列表，包括他们的姓名、电子邮件地址等信息。
* CATEGORIES：事件的类别或标签。
* STATUS：事件的状态（例如，确认、取消等）。
* URL：与事件相关的链接或网址。
* GEO：事件的地理坐标（纬度和经度）。
* PRIORITY：事件的优先级。

**（Method）表示日历事件的操作或类型。以下是一些常见的ICS方法：**
* PUBLISH：用于将日历信息发布到接收者，通常用于新事件的初始发布。
* REQUEST：表示一个请求，通常用于创建新事件或请求与会议的参加。
* REPLY：用于对请求的回复，例如接受、拒绝或提供其他响应。
* ADD：用于添加一个事件到日历。
* CANCEL：用于取消一个事件。
* REFRESH：用于请求日历数据的刷新。
* COUNTER：用于响应日历请求，提供替代的事件。
* DECLINECOUNTER：拒绝一个COUNTER类型的请求。
* PUBLISH：发布一个事件。
* CREATE：创建一个新的日历项目


**ATTENDEE;CN=John Doe;ROLE=REQ-PARTICIPANT:mailto:johndoe@example.com**
* CN=John Doe：参与者的姓名为 "John Doe"。
* ROLE=REQ-PARTICIPANT：参与者的角色为 "REQ-PARTICIPANT"，表示他们是必需的参与者。
* mailto:johndoe@example.com：参与者的电子邮件地址。

多个参会人
ATTENDEE;CN=jack;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto: jack@123.com
ATTENDEE;CN= jack@123.com;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:
 jack@123.com

RSVP（回复）：这个字段用于指定是否要求与会者回复（RSVP）确认其是否出席会议。通常，RSVP 的值可以是 TRUE 或 FALSE：
* RSVP=TRUE 表示与会者需要回复确认是否出席会议。这意味着发送方希望获得参与者的确认反馈。
* RSVP=FALSE 表示与会者无需回复确认。这意味着发送方不需要知道参与者是否出席会议。

**PARTSTAT 字段：**
* PARTSTAT 字段用于表示与会者的参与状态，即他们在会议中的角色和状态。
    * 可能的值包括：
    * NEEDS-ACTION：表示与会者尚未确定是否参加会议。
    * ACCEPTED：表示与会者已接受会议邀请并将出席。
    * DECLINED：表示与会者已拒绝会议邀请，不会出席。
    * TENTATIVE：表示与会者尚未确定是否出席，可能会有时间冲突。
    * DELEGATED：表示与会者已将他们的参与代理给其他人。
    * IN-PROCESS：表示与会者正在处理会议邀请。
