首页 > 解决方案 > Microsoft Outlook 添加“不支持的日历 message.ics”

问题描述

我使用 ical-generator 模块在 nodejs 应用程序中集成了日历邀请。

按照代码:

require('moment-timezone');
const moment = require('moment');
const iCal = require('ical-generator');
const nodeMailer = require('nodemailer');

const {
  subject: summary,
  description,
  from,
  to,
  cc,
  bcc,
  propertyName,
  organizerName,
  eventStartTime,
  eventEndTime,
  attendees,
  userTimezone,
  location,
} = params;

const objCalendar = {
  domain: calDomain,
  prodId: { company: propertyName, product: calProductIdName },
  name: calProductName,
  timezone: userTimezone,
};

const objEvent = {
  summary,
  htmlDescription: `<html><head></head><body>${description}</body></html>`,
  organizer: { name: organizerName, email: from },
  start: eventStartTime,
  end: eventEndTime,
  location,
};

const objCal = await iCal(objCalendar);

const event = objCal.createEvent(objEvent);

// set meeting category
event.createCategory({ name: calCategory });

// set meeting attendees
await attendees.map((attendee) => {
  if (attendee.trim().length > 0) {
    event.createAttendee({ email: attendee.trim(), name: attendee.split('@')[0], mailto: attendee.trim() });
  }
  return true;
});

// set meeting alaram before 10 minutes
event.createAlarm({
  type: calAlarmType,
  trigger: 600,
});

return transporter.sendMail({
  from,
  to,
  cc,
  bcc,
  subject: summary,
  description,
  icalEvent: {
    filename: calFileName,
    method: calMethod,
    content: objCal.toString(),
  },
});

日历邀请适用于 Gmail。没有创建额外的文件 ics 文件,但在 Microsoft Outlook 中,它会创建额外的“不支持的日历 message.ics”。

会议邀请.ics

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Spinner’s End//calendar//EN
NAME:meeting invitation
X-WR-CALNAME:meeting invitation
TIMEZONE-ID:Pacific/Galapagos
X-WR-TIMEZONE:Pacific/Galapagos
BEGIN:VEVENT
UID:0000q8lqy0@mail.com
SEQUENCE:0
DTSTAMP:20201203T132150Z
DTSTART:20201204T140000Z
DTEND:20201204T150000Z
SUMMARY:Schedule Kick-off meeting
LOCATION:Time selected was 8:00 am to 9:00 am
DESCRIPTION:Schedule Kick-off meeting
X-ALT-DESC;FMTTYPE=text/html:<html><head></head><body><h2>What is Lorem Ip
 sum?</h2><p><strong>Lorem Ipsum</strong></p></body></html>
ORGANIZER;CN="Bret Lee":mailto:user@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" mahendra.bahubali";EMAIL=mahendra.bahub
 ali@mail.com:MAILTO:mahendra.bahubali@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" bret.lee";EMAIL=bret.lee@mail.com:MAILT
 O:bret.lee@mail.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:Schedule Kick-off meeting
END:VALARM
CATEGORIES:MEETING
END:VEVENT
END:VCALENDAR

不支持日历 message.ics

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Spinner’s End//calendar//EN
NAME:meeting invitation
X-WR-CALNAME:meeting invitation
TIMEZONE-ID:Pacific/Galapagos
X-WR-TIMEZONE:Pacific/Galapagos
BEGIN:VEVENT
UID:0000q8lqy0@mail.com
SEQUENCE:0
DTSTAMP:20201203T132150Z
DTSTART:20201204T140000Z
DTEND:20201204T150000Z
SUMMARY:Schedule Kick-off meeting
LOCATION:Time selected was 8:00 am to 9:00 am
DESCRIPTION:Schedule Kick-off meeting
X-ALT-DESC;FMTTYPE=text/html:<html><head></head><body><h2>What is Lorem Ip
 sum?</h2><p><strong>Lorem Ipsum</strong></p></body></html>
ORGANIZER;CN="Bret Lee":mailto:user@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" mahendra.bahubali";EMAIL=mahendra.bahub
 ali@mail.com:MAILTO:mahendra.bahubali@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=" bret.lee";EMAIL=bret.lee@mail.com:MAILT
 O:bret.lee@mail.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:Schedule Kick-off meeting
END:VALARM
CATEGORIES:MEETING
END:VEVENT
END:VCALENDAR

我想知道创建“不支持的日历 message.ics”文件的原因是什么。我们如何解决它?

标签: node.jsoutlookoffice365icalendar

解决方案


推荐阅读