我正在尝试从
.ics
文件发送此会议预约。
这是数据
"BEGIN:VCALENDAR\n" +
"CALSCALE:GREGORIAN\n" +
"METHOD:PUBLISH\n" +
"PRODID:-//Send project Invite//EN\n" +
"VERSION:2.0\n" +
"BEGIN:VEVENT\n" +
"UID:gestionprojetsCalendarInvite\n" +
"DTSTART;VALUE=DATE-TIME:" +
convertDate(startDate) +
"\n" +
"DTEND;VALUE=DATE-TIME:" +
convertDate(endDate) +
"\n" +
"SUMMARY:" +
subject +
"\n" +
"DESCRIPTION:" +
description +
"\n" +
"LOCATION:" +
location +
"\n" +
to.filter(o => o != '').map(o => "ATTENDEE;MAILTO:" + o.email).join("\n") +
"\n" +
"BEGIN:VALARM" +
"\n" +
"TRIGGER:-PT15M" +
"\n" +
"ACTION:DISPLAY" +
"\n" +
"DESCRIPTION:Reminder" +
"\n" +
"END:VALARM\n" +
"END:VEVENT\n" +
"END:VCALENDAR";
我想知道为什么,当我打开
.ics
文件时,它显示的是"send update
”而不是"send"
。
我得到了什么:
我想要什么:
我相信这是因为您生成的所有
.ics
都有静态 UID。 "UID:gestionprojetsCalendarInvite\n"
UID 又名唯一 ID,应该唯一地代表日历事件。当您打开包含重复 UID 的 ics 文件时,您的应用程序(我猜是 Outlook?)认为您想要更新现有事件,而不是创建新事件。
尝试给它一个不同的 UID,看看是否可以解决您的问题。
参考:https://icalendar.org/New-Properties-for-iCalendar-RFC-7986/5-3-uid-property.html
希望它能帮助其他人,我遇到了同样的问题,并发现了一篇非常旧的博客文章,其中讨论了一个标志,无论在 Outlook 中,该标志始终将 ical 会议事件打开为新的。
X-微软-ISDRAFT:正确