我想要实现的是在下面的屏幕截图中:它是一个Outlook会议邀请,其中To字段预先指定了指定名称,发送按钮只显示“发送”,其提醒设置为15分钟。
我创建了以下ICS文件并期望它会创建所需的邀请,但它正在做一些不同的事情:“收件人”列表为空白,提醒和“发送”按钮显示为“发送更新”。
由于这应该是从没有登录的公开网页创建的,因此无法设置ORGANIZER
,OL应该知道他们是谁。
我在ICS文件中做错了什么?
除OL支持PUBLISH
和REQUEST
之外还有其他方法吗?
BEGIN:VCALENDAR
METHOD:PUBLISH
BEGIN:VEVENT
UID:somethingunique
DTSTART;VALUE=DATE:20150302
DTEND;VALUE=DATE:20150302
ATTENDEE;CN="First Last";ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:MAILTO:"first_last@test.com"
ATTENDEE;CN="John Doe";ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:MAILTO:"jdoe@test.com"
ATTENDEE;CN="Et Cetera";ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:MAILTO:"etc@test.com"
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY;
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
我还尝试更改为使用METHOD:REQUEST
,但它会打开,看起来像是对邀请的回复,无法更改主题/位置或添加更多与会者:
当使用REQUEST
方法时,邀请存在一些问题:它不可编辑,实际上并未在OL中创建,单击“无需响应”实际上删除了邀请,我最终注意到了(无法保存并发送邀请)。
答案 0 :(得分:3)
如果它对任何人都有帮助,那么这些变化部分有效:
不应使用任何方法
电子邮件地址周围不允许引号!
;VALUE=DATE
不受支持(OL 2010),时间组件必须在那里。
即使方法REQUEST
设置了警报,也不会设置警报。
根据需要创建会议的ICS代码:
BEGIN:VCALENDAR
BEGIN:VEVENT
UID:somethinguniquehere204832901
DTSTART:20150303T100000
DTEND:20150303T100000
ATTENDEE:john_doe@test.com
ATTENDEE:jane_doe@test.com
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
处理完毕后,表单会有一个Send Update
按钮,点击该按钮会创建会议并发送邀请。这仍然不像用户习惯的全新OL会议请求。
答案 1 :(得分:2)
第一个问题:我发现的是:
UID
。METHOD:PUBLISH
错了。它可能应该是REQUEST
或根本不在那里,具体取决于具体情况。ACTIONDISPLAY
无效,缺少冒号。我建议使用正确的CalDAV / iCalendar客户端应用程序(所以不是Outlook),在那里创建一个邀请事件,然后导出该事件。然后,您可以将其用作iCalendar对象应该的外观模板。