Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Filestash | 7,958 | 1 | 21 hours ago | 4 | June 23, 2021 | 52 | agpl-3.0 | JavaScript | ||
🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ... | ||||||||||
Dav | 1,369 | 304 | 53 | a month ago | 121 | June 27, 2022 | 218 | bsd-3-clause | PHP | |
sabre/dav is a CalDAV, CardDAV and WebDAV framework for PHP | ||||||||||
Vdirsyncer | 1,290 | 4 | 2 | 10 days ago | 63 | June 13, 2021 | 162 | other | Python | |
📇 Synchronize calendars and contacts. | ||||||||||
Davx5 Ose | 669 | 3 days ago | gpl-3.0 | Kotlin | ||||||
DAVx⁵ is an open-source CalDAV/CardDAV suite and sync app for Android. You can also access your online files (WebDAV) with it. | ||||||||||
Xandikos | 288 | 6 days ago | 57 | gpl-3.0 | Python | |||||
A CalDAV/CardDAV server | ||||||||||
Dav | 252 | 23 | 17 | 2 years ago | 28 | August 11, 2018 | 51 | mpl-2.0 | JavaScript | |
WebDAV, CalDAV, and CardDAV client for nodejs and the browser. | ||||||||||
Davis | 193 | a month ago | 4 | mit | PHP | |||||
🗓 A simple, fully translatable admin interface for sabre/dav based on Symfony 5 and Bootstrap 4, largely inspired by Baïkal. | ||||||||||
Tine20 | 148 | 6 days ago | 1,280 | agpl-3.0 | HTML | |||||
Tine 2.0 main repository | ||||||||||
Tsdav | 121 | 4 | 3 months ago | 22 | July 03, 2022 | 23 | mit | TypeScript | ||
WebDAV, CALDAV, and CARDDAV client for Nodejs and the Browser | ||||||||||
Webdavserversamples | 45 | 15 days ago | TSQL | |||||||
WebDAV, CalDAV & CardDAV server examples in C# and VB based on IT Hit WebDAV Server Engine for .NET |
webdav request made easy
Browsers
and Node.js
commonjs
and esm
npm install tsdav
or
yarn add tsdav
import { createDAVClient } from 'tsdav';
(async () => {
const client = await createDAVClient({
serverUrl: 'https://apidata.googleusercontent.com/caldav/v2/',
credentials: {
tokenUrl: 'https://accounts.google.com/o/oauth2/token',
username: 'YOUR_EMAIL_ADDRESS',
refreshToken: 'YOUR_REFRESH_TOKEN_WITH_CALDAV_PERMISSION',
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
},
authMethod: 'Oauth',
defaultAccountType: 'caldav',
});
const calendars = await client.fetchCalendars();
const calendarObjects = await client.fetchCalendarObjects({
calendar: calendars[0],
});
})();
import { createDAVClient } from 'tsdav';
(async () => {
const client = await createDAVClient({
serverUrl: 'https://contacts.icloud.com',
credentials: {
username: 'YOUR_APPLE_ID',
password: 'YOUR_APP_SPECIFIC_PASSWORD',
},
authMethod: 'Basic',
defaultAccountType: 'carddav',
});
const addressBooks = await client.fetchAddressBooks();
const vcards = await client.fetchVCards({
addressBook: addressBooks[0],
});
})();
After v1.1.0
, you have a new way of creating clients.
import { DAVClient } from 'tsdav';
const client = new DAVClient({
serverUrl: 'https://apidata.googleusercontent.com/caldav/v2/',
credentials: {
tokenUrl: 'https://accounts.google.com/o/oauth2/token',
username: 'YOUR_EMAIL_ADDRESS',
refreshToken: 'YOUR_REFRESH_TOKEN_WITH_CALDAV_PERMISSION',
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
},
authMethod: 'Oauth',
defaultAccountType: 'caldav',
});
(async () => {
await client.login();
const calendars = await client.fetchCalendars();
const calendarObjects = await client.fetchCalendarObjects({
calendar: calendars[0],
});
})();
import { DAVClient } from 'tsdav';
const client = new DAVClient({
serverUrl: 'https://contacts.icloud.com',
credentials: {
username: 'YOUR_APPLE_ID',
password: 'YOUR_APP_SPECIFIC_PASSWORD',
},
authMethod: 'Basic',
defaultAccountType: 'carddav',
});
(async () => {
await client.login();
const addressBooks = await client.fetchAddressBooks();
const vcards = await client.fetchVCards({
addressBook: addressBooks[0],
});
})();
Check out the Documentation
refers to Changelog
this package uses debug
package,
add tsdav:*
to DEBUG
env variable to enable debug logs