使用iCal4j库(Java-Spring)发送日历事件(邀请)
这个问题与iCal4j库与Java(Spring)应用程序的集成有关 用例- 在我的应用程序中,当用户从UI创建一个事件时,被邀请者应该会收到一个日历邀请,他们只需单击事件即可将该邀请添加到他们的个人日历(Google日历、Outlook日历甚至Thundard日历)。此外,活动组织者应收到同一活动的日历邀请 担忧- 与会者通过电子邮件收到正确格式(Google calendar、Outlook和Thundarbird)的活动日历邀请,组织者收到一封带有附件(invite.ics)的空电子邮件。请注意,这种担心只会在Gmail邮件和Outlook邮件客户端中引起。在Thunderbird中,即使组织者也会收到完整的事件请求。 (请参阅随附的代码片段和图像以了解更多说明) 请让我知道如何解决此问题,或者我可以使用任何其他库或解决方案来完成此任务 提前谢谢使用iCal4j库(Java-Spring)发送日历事件(邀请),java,spring,calendar,google-calendar-api,ical4j,Java,Spring,Calendar,Google Calendar Api,Ical4j,这个问题与iCal4j库与Java(Spring)应用程序的集成有关 用例- 在我的应用程序中,当用户从UI创建一个事件时,被邀请者应该会收到一个日历邀请,他们只需单击事件即可将该邀请添加到他们的个人日历(Google日历、Outlook日历甚至Thundard日历)。此外,活动组织者应收到同一活动的日历邀请 担忧- 与会者通过电子邮件收到正确格式(Google calendar、Outlook和Thundarbird)的活动日历邀请,组织者收到一封带有附件(invite.ics)的空电子邮件。
StringBuffer buffer = sb.append( "BEGIN:VCALENDAR\n" +
"PRODID:-//PROD_NAME//PROD_ORG//EN\n" +
"VERSION:2.0\n" +
"X-WR-RELCALID:"+calendarEmail.getxWrRelcalid()+"\n" +
"METHOD:REQUEST\n" +
"BEGIN:VEVENT\n" +
calendarEmail.getAttendeeString() +
calendarEmail.getOrganizerString() +
"DTSTART:" + calendarEmail.getDtStart() + "\n" +
calendarEmail.getRruleString() +
"DTEND:" + calendarEmail.getDtEnd() + "\n" +
"LOCATION:" + calendarEmail.getLocation() + "\n" +
"TRANSP:OPAQUE\n" +
"SEQUENCE:"+calendarEmail.getSequence()+"\n" +
"UID:" + calendarEmail.getUid() + "\n" +
"DTSTAMP:" + calendarEmail.getDtStamp() + "\n" +
"STATUS:"+calendarEmail.getEventStatusString()+"\n" +
"CATEGORIES:" + calendarEmail.getCategory() + "\n" +
"DESCRIPTION:" + calendarEmail.getDescription() + "\n" +
"SUMMARY:" + calendarEmail.getSummary() + "\n" +
"PRIORITY:5\n" +
"CLASS:" + calendarEmail.getPublicity() + "\n" +
"BEGIN:VALARM\n" +
"TRIGGER:" + calendarEmail.getAlarmTrigger() + "\n" +
"ACTION:" + calendarEmail.getAlarmAction() + "\n" +
"DESCRIPTION:Reminder\n" +
"END:VALARM\n" +
"END:VEVENT\n" +
"END:VCALENDAR" );
我认为这更多的是iCalendar规范如何工作的问题。具体而言,您可能希望了解: 在您的情况下,您的程序代表组织者,因此我不确定您是否可以向组织者用户发送“请求” 您可能需要向组织者用户发送“发布”方法:
您可能还想在组织者属性上考虑StE-BIN参数,以指示组织者用户没有发送请求(除非您希望答复返回到程序):