javascript生成ics、日程、日历

实例、代码、资料

实例1

BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
X-WR-CALNAME:阿斯顿发
X-APPLE-CALENDAR-COLOR:#540EB9
BEGIN:VEVENT
UID:1668753387035
SUMMARY:修改
DTSTART;VALUE=DATE-TIME:20231124T04:30:00Z
DTEND;VALUE=DATE-TIME:20231124T14:30:00Z
DESCRIPTION:主要内容中文修改
LOCATION:地点
END:VEVENT
END:VCALENDAR
BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
X-WR-CALNAME:百融云创
X-APPLE-CALENDAR-COLOR:#540EB9
BEGIN:VEVENT
UID:
SUMMARY:11月工作计划
DTSTART;VALUE=DATE:20221118T084000Z
DTEND;VALUE=DATE:20221118T085000Z
DESCRIPTION:阿斯顿发
LOCATION:阿斯顿发
END:VEVENT
END:VCALENDAR

实例2

<!DOCTYPE html>
<html lang="en">
  <head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css/style.css" rel="stylesheet">
    <script>
      const icsMeg2 = `
      BEGIN:VCALENDAR
      METHOD:PUBLISH
      VERSION:2.0
      X-WR-CALNAME:阿斯顿发
      X-APPLE-CALENDAR-COLOR:#540EB9
      BEGIN:VEVENT
      UID:${Date.now()}
      SUMMARY:${Date.now()}
      DTSTART;VALUE=DATE:20221118T084000Z
      DTEND;VALUE=DATE:20221118T085000Z
      DESCRIPTION:阿斯顿发
      LOCATION:阿斯顿发
      END:VEVENT
      END:VCALENDAR`;
      // window.open('data:text/calendar;charset=utf8,' + icsMSG);
      const blob = new Blob([icsMSG], { type: 'text/calendar' });
      const link = document.createElement('a');
      link.href = window.URL.createObjectURL(blob);
      link.download = 'Calendar2.ics';
      link.click();
    </script>
  </head>
  <body>
    <div>
      asdfasdfsfd
      <a href="">阿斯顿发送到发</a>
    </div>
  </body>
</html>

项目中代码实现

handleAddCalendar(item) {
      const startTime = item.startTime ? moment(item.meetingDate + ' ' + item.startTime).format('YYYYMMDDTHH:mm:ss') + 'Z' : moment(item.meetingDate).format('YYYYMMDDTHH:mm:ss') + 'Z';
      const endTime = item.endTime ? moment(item.meetingDate + ' ' + item.endTime).format('YYYYMMDDTHH:mm:ss') + 'Z' : moment(item.meetingDate).format('YYYYMMDDTHH:mm:ss') + 'Z';
      const title = this.language === 'e' ? `${item.enMeetingTitle}` : `${item.cnMeetingTitle}`;
      const content = this.language === 'e' ? `${item.enContent}` : `${item.cnContent}`;
      const place = this.language === 'e' ? `${item.enMeetingPlace}` : `${item.cnMeetingPlace}`;
      const icsMsg = 'BEGIN:VCALENDAR\n' +
        'METHOD:PUBLISH\n' +
        'VERSION:2.0\n' +
        'X-WR-CALNAME:百融云创\n' +
        'X-APPLE-CALENDAR-COLOR:#540EB9\n' +
        'BEGIN:VEVENT\n' +
        `UID:${Date.now()}\n` +
        `SUMMARY:${title}\n` +
        `DTSTART;VALUE=DATE-TIME:${startTime}\n` +
        `DTEND;VALUE=DATE-TIME:${endTime}\n` +
        `DESCRIPTION:${content}\n` +
        `LOCATION:${place}\n` +
        'END:VEVENT\n' +
        'END:VCALENDAR';
      const blob = new Blob([icsMsg], { type: 'text/calendar' });
      const link = document.createElement('a');
      link.href = window.URL.createObjectURL(blob);
      link.download = `${title}.ics`;
      link.click();
    }

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eadela

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值