Javascript 如何修改IOS和outlook的日历事件
我一直在为一家医疗公司开发ReactJS应用程序。创建约会后,我们希望用户能够将事件添加到日历中,这是通过在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('
.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')}`)
}