syncCalendars
syncCalendars
sync local version of calendars with remote.
const { created, updated, deleted } = await syncCalendars({
oldCalendars: [
{
displayName: 'personal calendar',
syncToken: 'HwoQEgwAAAAAAAAAAAAAAAAYARgAIhsI4pnF4erDm4CsARDdl6K9rqa9/pYBKAA=',
ctag: '63758742166',
url: 'https://caldav.icloud.com/123456/calendars/A5639426-B73B-4F90-86AB-D70F7F603E75/',
objects: [
{
etag: '"63758758580"',
id: '0003ffbe-cb71-49f5-bc7b-9fafdd756784',
data: 'BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//ZContent.net//Zap Calendar 1.0//EN\nCALSCALE:GREGORIAN\nMETHOD:PUBLISH\nBEGIN:VEVENT\nSUMMARY:Abraham Lincoln\nUID:c7614cff-3549-4a00-9152-d25cc1fe077d\nSEQUENCE:0\nSTATUS:CONFIRMED\nTRANSP:TRANSPARENT\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=2;BYMONTHDAY=12\nDTSTART:20080212\nDTEND:20080213\nDTSTAMP:20150421T141403\nCATEGORIES:U.S. Presidents,Civil War People\nLOCATION:Hodgenville, Kentucky\nGEO:37.5739497;-85.7399606\nDESCRIPTION:Born February 12, 1809\nSixteenth President (1861-1865)\n\n\n\n \nhttp://AmericanHistoryCalendar.com\nURL:http://americanhistorycalendar.com/peoplecalendar/1,328-abraham-lincol\n n\nEND:VEVENT\nEND:VCALENDAR',
url: 'https://caldav.icloud.com/123456/calendars/A5639426-B73B-4F90-86AB-D70F7F603E75/test.ics',
},
],
},
],
detailedResult: true,
headers: {
authorization: 'Basic x0C9ueWd9Vz8OwS0DEAtkAlj',
},
});
Arguments
oldCalendars
required, locally version of calendars of this account, should contain calendar objects as well ifdetailedResult
isfalse
account
the account which calendars belong to,detailedResult
if falsy, the result would be latest version of the calendars of this account, otherwise they would be separated into three groups ofcreated
,updated
, anddeleted
.headers
request headersheadersToExclude
array of keys of the headers you want to excludefetchOptions
options to pass to underlying fetch function
info
objects
inside oldCalendars
are not needed when detailedResult
is true
.
Return Value
depend on detailedResult
option
if detailedResult
is falsy,
array of DAVCalendar with calendar objects.
if detailedResult
is true
,
an object of
created
array of DAVCalendar without calendar objects.updated
array of DAVCalendar without calendar objects.deleted
array of DAVCalendar without calendar objects.
Behavior
fetch the latest list of DAVCalendar from remote,
compare the provided list and the latest list to find out created
, updated
, and deleted
calendars.
if detailedResult
is falsy,
fetch the latest list of DAVCalendarObject from updated calendars using rfc6578 webdav sync and calendarMultiGet
return latest list of calendars with latest list of objects for updated
calendars.
if detailedResult
is true
,
return three list of separate calendars without objects for created
, updated
, and deleted
.