Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修改IOS和outlook的日历事件_Javascript_Ios_Reactjs_Outlook_Icalendar - Fatal编程技术网

Javascript 如何修改IOS和outlook的日历事件

Javascript 如何修改IOS和outlook的日历事件,javascript,ios,reactjs,outlook,icalendar,Javascript,Ios,Reactjs,Outlook,Icalendar,我一直在为一家医疗公司开发ReactJS应用程序。创建约会后,我们希望用户能够将事件添加到日历中,这是通过在IOS和outlook上下载.ics文件以及谷歌日历的谷歌API调用来实现的 如果用户重新安排约会,如何修改Apple Calendar for mac和IOS以及Outlook Calendar上的现有事件 这是我现有的代码 const makeGoogleCalendarUrl = (event: CalendarEvent) => makeUrl('

我一直在为一家医疗公司开发ReactJS应用程序。创建约会后,我们希望用户能够将事件添加到日历中,这是通过在IOS和outlook上下载
.ics
文件以及谷歌日历的谷歌API调用来实现的

如果用户重新安排约会,如何修改Apple Calendar for mac和IOS以及Outlook Calendar上的现有事件

这是我现有的代码

        const makeGoogleCalendarUrl = (event: CalendarEvent) =>
      makeUrl('https://calendar.google.com/calendar/render', {
        action: 'TEMPLATE',
        dates: `${makeTime(event.startsAt)}/${makeTime(event.endsAt)}`,
        location: event.location,
        text: event.name,
        details: event.details,
      })

    const makeOutlookCalendarUrl = (event: CalendarEvent) =>
      makeUrl('https://outlook.live.com/owa', {
        rru: 'addevent',
        startdt: event.startsAt,
        enddt: event.endsAt,
        subject: event.name,
        location: event.location,
        body: event.details,
        allday: false,
        uid: new Date().getTime().toString(),
        path: '/calendar/view/Month',
      })

    const makeYahooCalendarUrl = (event: CalendarEvent) =>
      makeUrl('https://calendar.yahoo.com', {
        v: 60,
        view: 'd',
        type: 20,
        title: event.name,
        st: makeTime(event.startsAt),
        dur: makeDuration(event),
        desc: event.details,
        in_loc: event.location,
      })

    const makeICSCalendarUrl = (event: CalendarEvent) => {
      const components = ['BEGIN:VCALENDAR', 'VERSION:2.0', 'BEGIN:VEVENT']

      // For SSR apps
      if (typeof document !== 'undefined') {
        components.push(`URL:${document.URL}`)
      }

      components.push(
        `DTSTART:${makeTime(event.startsAt)}`,
        `DTEND:${makeTime(event.endsAt)}`,
        `SUMMARY:${event.name}`,
        `DESCRIPTION:${event.details.replaceAll('\n', '\\n')}`,
        `LOCATION:${event.location}`,
        'END:VEVENT',
        'END:VCALENDAR'
      )

      return encodeURI(`data:text/calendar;charset=utf8,${components.join('\n')}`)
    }