title: Using a Server as a CalDAV client to sync calendar data and concerns
body: <p>For a calendar application, I want to know of 3rd party calendar event changes. For example, a user adds an iCal/Google calendar into my app. My app should be notified of changes to events. After some research, it seems CalDAV is the way to do it. But I don't fully understand how the app should work. </p>
  
  <p>So my understanding so far: I will have my server act as a CalDAV client. Users will provide login credentials to my app to get data from their calendars? I have 2 concerns: Security and Performance (how to sync)</p>
  
  <p><strong>Security</strong></p>
  
  <p>This sounds like it works, but isit it very unsecure (since I will have to provide my login credentials to some untrusted server)? It seems like OAuth should be used instead? Is there something I am not understanding correctly? </p>
  
  <p><strong>How to sync and performance</strong></p>
  
  <p>I want to be notified of calendar changes (for example, if a user updates the Google Calendar). Something similar to webhooks should be the best. But is there such a thing? When I look at a package <a href="https://www.npmjs.com/package/dav#davcreateaccountoptions" rel="noreferrer"><code>dav</code></a> in NPM, seems like its all pull based. If I have to constantly poll for changes, it might be very inefficient? </p>
  
  <p>I intend to build the server using NodeJS</p>