CalDAV API डेवलपर' गाइड

CalDAV, WebDAV का एक्सटेंशन है. यह क्लाइंट को रिमोट सर्वर पर कैलेंडर की जानकारी ऐक्सेस करने के लिए एक स्टैंडर्ड उपलब्ध कराता है.

Google, CalDAV इंटरफ़ेस उपलब्ध कराता है. इसका इस्तेमाल करके, CalDAV प्रोटोकॉल का इस्तेमाल करने वाले कैलेंडर देखे और मैनेज किए जा सकते हैं.

विशेषताएं

Google के CalDAV के साथ काम करने की सुविधा के बारे में यहां बताया गया है:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
    • यह एचटीटीपी मेथड GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND, और PROPPATCH के साथ काम करता है.
    • यह LOCK, UNLOCK, COPY, MOVE या MKCOL एचटीटीपी मेथड या If* हेडर (If-Match को छोड़कर) के साथ काम नहीं करता.
    • यह WebDAV की किसी भी प्रॉपर्टी (उपयोगकर्ता के तय की गई) के साथ काम नहीं करता.
    • WebDAV ऐक्सेस कंट्रोल (rfc3744) के साथ काम नहीं करता.
  • rfc4791: Calendaring Extensions to WebDAV (CalDAV)
    • यह एचटीटीपी मेथड REPORT के साथ काम करता है. फ़्री-बिज़ी-क्वेरी को छोड़कर, सभी रिपोर्ट लागू की जाती हैं.
    • एचटीटीपी तरीके MKCALENDAR के साथ काम नहीं करता.
    • AUDIO कार्रवाई के साथ काम नहीं करता.
  • rfc5545: iCalendar
    • CalDAV इंटरफ़ेस में दिखाया गया डेटा, iCalendar स्पेसिफ़िकेशन के हिसाब से फ़ॉर्मैट किया जाता है.
    • फ़िलहाल, VTODO या VJOURNAL के डेटा के साथ काम नहीं करता है.
    • यह Apple iCal® एक्सटेंशन के साथ काम नहीं करता. इससे उपयोगकर्ता को यूआरएल प्रॉपर्टी सेट करने की अनुमति मिलती है.
  • rfc6578: Collection Synchronization for WebDAV
    • शुरुआती सिंक के बाद, क्लाइंट ऐप्लिकेशन को इस मोड पर स्विच करना होगा.
  • rfc6638: Scheduling Extensions to CalDAV
    • यह एक सामान्य "इनबॉक्स" के साथ काम करता है, जो हमेशा खाली रहता है.
    • आपको मिलने वाले न्योते, "इनबॉक्स" में सेव होने के बजाय, "इवेंट" कलेक्शन में अपने-आप सेव हो जाते हैं.
    • यह सुविधा, व्यस्तता की जानकारी देखने की सुविधा के साथ काम नहीं करती.
  • caldav-ctag-02: CalDAV में Calendar Collection Entity Tag (CTag)
    • कैलेंडर ctag, संसाधन etag की तरह होता है. कैलेंडर में कोई भी बदलाव होने पर, यह बदल जाता है. इससे क्लाइंट ऐप्लिकेशन को यह तुरंत पता चल जाता है कि उसे बदले गए किसी भी इवेंट को सिंक करने की ज़रूरत नहीं है.
  • calendar-proxy: CalDAV में Calendar User Proxy की सुविधा
    • iOS डिवाइसों से कैलेंडर सिंक करने की सुविधा की परफ़ॉर्मेंस को बेहतर बनाने के लिए, calendar-proxy-read-for या calendar-proxy-write-for प्रॉपर्टी का इस्तेमाल किया जा सकता है. हालांकि, iOS UserAgent के साथ इन प्रॉपर्टी का इस्तेमाल करने पर, कैलेंडर सिंक नहीं होगा. ऐसा इसलिए, क्योंकि iOS डिवाइसों में डेलिगेशन की सुविधा काम नहीं करती.

हमने अब तक सभी ज़रूरी स्पेसिफ़िकेशन को पूरी तरह से लागू नहीं किया है. हालांकि, Apple के Calendar ऐप्लिकेशन जैसे कई क्लाइंट के लिए, CalDAV प्रोटोकॉल को सही तरीके से काम करना चाहिए.

ध्यान दें: खाते की सुरक्षा और गलत इस्तेमाल को रोकने के लिए, Google उन क्लाइंट ऐप्लिकेशन पर कुकी सेट कर सकता है जो CalDAV के ज़रिए डेटा ऐक्सेस करते हैं.

क्लाइंट आईडी बनाना

CalDAV API का इस्तेमाल करने के लिए, आपके पास Google खाता होना चाहिए. अगर आपके पास पहले से ही कोई खाता है, तो आप इसका इस्तेमाल कर सकते हैं.

CalDAV API को अनुरोध भेजने से पहले, आपको Google API Console में अपना क्लाइंट रजिस्टर करना होगा. इसके लिए, आपको एक प्रोजेक्ट बनाना होगा.

Google के एपीआई कंसोल पर जाएं. प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, कोई नाम डालें और बनाएं पर क्लिक करें.

अगला चरण, CalDAV API को चालू करना है.

अपने प्रोजेक्ट के लिए किसी एपीआई को चालू करने के लिए, यह तरीका अपनाएं:

  1. Google API Console में एपीआई लाइब्रेरी खोलें. अगर कहा जाए, तो कोई प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं. एपीआई लाइब्रेरी में, उपलब्ध सभी एपीआई की सूची दी गई है. इन्हें प्रॉडक्ट फ़ैमिली और लोकप्रियता के हिसाब से ग्रुप किया गया है.
  2. अगर आपको जिस एपीआई को चालू करना है वह सूची में नहीं दिख रहा है, तो उसे खोजने के लिए खोज बार का इस्तेमाल करें.
  3. वह एपीआई चुनें जिसे आपको चालू करना है. इसके बाद, चालू करें बटन पर क्लिक करें.
  4. अगर कहा जाए, तो बिलिंग चालू करें.
  5. अगर प्रॉम्प्ट मिलता है, तो एपीआई की सेवा की शर्तें स्वीकार करें.
CalDAV API अनुरोधों को पूरा करने के लिए, आपको क्लाइंट आईडी और क्लाइंट सीक्रेट की ज़रूरत होगी.

अपने प्रोजेक्ट का क्लाइंट आईडी और क्लाइंट सीक्रेट ढूंढने के लिए, यह तरीका अपनाएं:

  1. मौजूदा OAuth 2.0 क्रेडेंशियल चुनें या क्रेडेंशियल पेज खोलें.
  2. अगर आपने पहले से ऐसा नहीं किया है, तो अपने प्रोजेक्ट के OAuth 2.0 क्रेडेंशियल बनाएं. इसके लिए, क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करें. इसके बाद, क्रेडेंशियल बनाने के लिए ज़रूरी जानकारी दें.
  3. OAuth 2.0 क्लाइंट आईडी सेक्शन में जाकर, क्लाइंट आईडी ढूंढें. ज़्यादा जानकारी के लिए, क्लाइंट आईडी पर क्लिक करें.

Google के CalDAV सर्वर से कनेक्ट करना

CalDAV इंटरफ़ेस का इस्तेमाल करने के लिए, क्लाइंट प्रोग्राम सबसे पहले कैलेंडर सर्वर से कनेक्ट होता है. इसके लिए, दो शुरुआती पॉइंट में से किसी एक का इस्तेमाल किया जाता है. दोनों ही मामलों में, कनेक्शन एचटीटीपीएस पर होना चाहिए. साथ ही, इसमें OAuth 2.0 पुष्टि करने की स्कीम का इस्तेमाल किया जाना चाहिए. CalDAV सर्वर, किसी अनुरोध की पुष्टि तब तक नहीं करेगा, जब तक वह Google खाते के OAuth 2.0 की पुष्टि के साथ एचटीटीपीएस पर नहीं पहुंचता. एचटीटीपी से कनेक्ट करने या बेसिक ऑथेंटिकेशन का इस्तेमाल करने पर, एचटीटीपी 401 Unauthorized स्टेटस कोड मिलता है.

अगर क्लाइंट प्रोग्राम (जैसे कि Apple का Calendar ऐप्लिकेशन) को मुख्य कलेक्शन को शुरुआती पॉइंट के तौर पर इस्तेमाल करने की ज़रूरत है, तो कनेक्ट करने के लिए यूआरआई यह है:

https://apidata.googleusercontent.com/caldav/v2/calid/user

यहां calid को उस कैलेंडर के "कैलेंडर आईडी" से बदलें जिसे ऐक्सेस करना है. इसे Google Calendar के वेब इंटरफ़ेस में जाकर देखा जा सकता है. इसके लिए, कैलेंडर के नाम के बगल में मौजूद पुल-डाउन मेन्यू में जाकर, कैलेंडर की सेटिंग चुनें. नतीजे वाले पेज पर, कैलेंडर आईडी को कैलेंडर का पता लेबल वाले सेक्शन में दिखाया जाता है. किसी उपयोगकर्ता के मुख्य कैलेंडर का आईडी, उसके ईमेल पते के जैसा ही होता है.

अगर किसी क्लाइंट प्रोग्राम (जैसे कि Mozilla Sunbird) को कैलेंडर कलेक्शन की ज़रूरत होती है, तो कनेक्ट करने के लिए यूआरआई यह है:

https://apidata.googleusercontent.com/caldav/v2/calid/events

पुराना एंडपॉइंट https://www.google.com/calendar/dav अब काम नहीं करता. इसका इस्तेमाल अपने जोखिम पर करें. हमारा सुझाव है कि आप ऊपर बताए गए नए एंडपॉइंट फ़ॉर्मैट पर स्विच करें.

iCal®, Apple Inc. का ट्रेडमार्क है.