CalDAV হলো WebDAV-এর একটি সম্প্রসারণ, যা ক্লায়েন্টদের দূরবর্তী সার্ভারে থাকা ক্যালেন্ডারের তথ্য অ্যাক্সেস করার জন্য একটি মান প্রদান করে।
গুগল একটি CalDAV ইন্টারফেস প্রদান করে, যা ব্যবহার করে আপনি CalDAV প্রোটোকলের মাধ্যমে ক্যালেন্ডার দেখতে ও পরিচালনা করতে পারেন।
স্পেসিফিকেশন
প্রাসঙ্গিক প্রতিটি স্পেসিফিকেশনের জন্য গুগলের CalDAV সাপোর্ট নিম্নরূপ:
- rfc4918: ওয়েব ডিস্ট্রিবিউটেড অথরিং এবং ভার্সনিং (WebDAV) এর জন্য HTTP এক্সটেনশন
- HTTP মেথড
GET,PUT,HEAD,DELETE,POST,OPTIONS,PROPFINDএবংPROPPATCHসমর্থন করে। - HTTP মেথড
LOCK,UNLOCK,COPY,MOVE, বাMKCOL, অথবাIf*হেডার (If-Matchব্যতীত) সমর্থন করে না। - যথেচ্ছ (ব্যবহারকারী-সংজ্ঞায়িত) WebDAV প্রোপার্টি সমর্থন করে না।
- WebDAV অ্যাক্সেস কন্ট্রোল (rfc3744) সমর্থন করে না।
- HTTP মেথড
- rfc4791: WebDAV-এর ক্যালেন্ডারিং এক্সটেনশন (CalDAV)
- HTTP মেথড
REPORTসমর্থন করে। free-busy-query ছাড়া বাকি সব রিপোর্ট বাস্তবায়ন করা হয়েছে। - HTTP মেথড
MKCALENDARসমর্থন করে না। -
AUDIOঅ্যাকশনটি সমর্থন করে না।
- HTTP মেথড
- rfc5545: আইক্যালেন্ডার
- CalDAV ইন্টারফেসে প্রদর্শিত ডেটা iCalendar স্পেসিফিকেশন অনুযায়ী ফরম্যাট করা হয়।
- বর্তমানে
VTODOবাVJOURNALডেটা সমর্থন করে না। - ব্যবহারকারী-নির্ধারিত ইউআরএল বৈশিষ্ট্যসমূহের জন্য অ্যাপল আইক্যাল® এক্সটেনশনটি সমর্থন করে না।
- rfc6578: WebDAV-এর জন্য সংগ্রহ সিঙ্ক্রোনাইজেশন
- প্রাথমিক সিঙ্কের পর ক্লায়েন্ট অ্যাপ্লিকেশনগুলোকে অবশ্যই এই কার্যপ্রণালীতে পরিবর্তিত হতে হবে।
- rfc6638: CalDAV-এর সময়সূচী সম্প্রসারণ
- একটি সাধারণ 'ইনবক্স' রয়েছে, যা সর্বদা খালি থাকে।
- আপনি যে আমন্ত্রণপত্রগুলো পান, সেগুলো আপনার 'ইনবক্স'-এ যুক্ত না হয়ে স্বয়ংক্রিয়ভাবে আপনার 'ইভেন্টস' সংগ্রহে পৌঁছে যায়।
- ফ্রি-বিজি লুকআপ সমর্থন করে না।
- caldav-ctag-02: CalDAV-এ ক্যালেন্ডার সংগ্রহ সত্তা ট্যাগ (CTag)।
- ক্যালেন্ডার
ctagহলো একটি রিসোর্সetagমতো; ক্যালেন্ডারের কোনো কিছুতে পরিবর্তন হলে এটিও পরিবর্তিত হয়। এর ফলে ক্লায়েন্ট অ্যাপ্লিকেশন দ্রুত বুঝতে পারে যে, পরিবর্তিত কোনো ইভেন্ট সিঙ্ক্রোনাইজ করার প্রয়োজন নেই।
- ক্যালেন্ডার
- ক্যালেন্ডার-প্রক্সি: CalDAV-এ ক্যালেন্ডার ব্যবহারকারী প্রক্সি কার্যকারিতা
- যেসব iOS ডিভাইস ডেলিগেশন সমর্থন করে না, সেগুলোর থেকে ক্যালেন্ডার সিঙ্কিংয়ের পারফরম্যান্স উন্নত করতে, একটি iOS ইউজারএজেন্টের সাথে
calendar-proxy-read-forবাcalendar-proxy-write-forপ্রপার্টি ব্যবহার করলে তা ব্যর্থ হবে।
- যেসব iOS ডিভাইস ডেলিগেশন সমর্থন করে না, সেগুলোর থেকে ক্যালেন্ডার সিঙ্কিংয়ের পারফরম্যান্স উন্নত করতে, একটি iOS ইউজারএজেন্টের সাথে
আমরা এখনও সমস্ত প্রাসঙ্গিক স্পেসিফিকেশনের সম্পূর্ণ বাস্তবায়ন প্রদান করিনি। তবে, অ্যাপলের ক্যালেন্ডার অ্যাপের মতো অনেক ক্লায়েন্টের জন্য CalDAV প্রোটোকলটি সঠিকভাবে আন্তঃকার্যকরী হওয়া উচিত।
দ্রষ্টব্য: অ্যাকাউন্টের নিরাপত্তা এবং অপব্যবহার রোধ করার জন্য, Google সেইসব ক্লায়েন্ট অ্যাপ্লিকেশনে কুকি সেট করতে পারে যেগুলো CalDAV-এর মাধ্যমে ডেটা অ্যাক্সেস করে।
আপনার ক্লায়েন্ট আইডি তৈরি করা
CalDAV API ব্যবহার করার জন্য আপনার একটি গুগল অ্যাকাউন্ট থাকা প্রয়োজন। যদি আপনার আগে থেকেই ব্যবহারযোগ্য কোনো অ্যাকাউন্ট থাকে, তাহলে আর কোনো সমস্যা নেই।
CalDAV API-তে অনুরোধ পাঠানোর আগে, আপনাকে অবশ্যই একটি প্রজেক্ট তৈরি করে Google API Console- এ আপনার ক্লায়েন্টকে রেজিস্টার করতে হবে।
Google API কনসোলে যান। 'Create project'-এ ক্লিক করুন, একটি নাম লিখুন এবং 'Create'-এ ক্লিক করুন।
পরবর্তী ধাপ হলো CalDAV API সক্রিয় করা।আপনার প্রোজেক্টের জন্য একটি API সক্রিয় করতে, নিম্নলিখিতগুলি করুন:
- গুগল এপিআই কনসোলে এপিআই লাইব্রেরি খুলুন । অনুরোধ করা হলে, একটি প্রজেক্ট নির্বাচন করুন অথবা একটি নতুন প্রজেক্ট তৈরি করুন। এপিআই লাইব্রেরিতে প্রোডাক্ট ফ্যামিলি এবং জনপ্রিয়তা অনুসারে শ্রেণীবদ্ধ করে সমস্ত উপলব্ধ এপিআই-এর তালিকা দেওয়া থাকে।
- আপনি যে API-টি সক্রিয় করতে চান তা যদি তালিকায় না থাকে, তবে সেটি খুঁজে পেতে সার্চ ব্যবহার করুন।
- যে API-টি সক্রিয় করতে চান, সেটি নির্বাচন করুন, তারপর ' Enable' বোতামে ক্লিক করুন।
- অনুরোধ করা হলে, বিলিং চালু করুন।
- অনুরোধ করা হলে, এপিআই-এর পরিষেবার শর্তাবলী মেনে নিন।
আপনার প্রোজেক্টের ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট খুঁজে পেতে, নিম্নলিখিতগুলি করুন:
- বিদ্যমান কোনো OAuth 2.0 ক্রেডেনশিয়াল নির্বাচন করুন অথবা ক্রেডেনশিয়াল পৃষ্ঠাটি খুলুন।
- যদি আপনি ইতিমধ্যে তা না করে থাকেন, তাহলে Create credentials > OAuth client ID-তে ক্লিক করে এবং ক্রেডেনশিয়াল তৈরির জন্য প্রয়োজনীয় তথ্য প্রদান করে আপনার প্রোজেক্টের OAuth 2.0 ক্রেডেনশিয়াল তৈরি করুন।
- OAuth 2.0 ক্লায়েন্ট আইডি বিভাগে ক্লায়েন্ট আইডিটি খুঁজুন। বিস্তারিত জানতে ক্লায়েন্ট আইডিটিতে ক্লিক করুন।
গুগলের CalDAV সার্ভারের সাথে সংযোগ স্থাপন করা হচ্ছে
CalDAV ইন্টারফেস ব্যবহার করার জন্য, একটি ক্লায়েন্ট প্রোগ্রাম প্রথমে দুটি প্রারম্ভিক বিন্দুর যেকোনো একটি থেকে ক্যালেন্ডার সার্ভারের সাথে সংযোগ স্থাপন করে। উভয় ক্ষেত্রেই, সংযোগটি অবশ্যই HTTPS-এর মাধ্যমে এবং OAuth 2.0 অথেনটিকেশন স্কিম ব্যবহার করে করতে হবে। যদি কোনো অনুরোধ একটি গুগল অ্যাকাউন্টের OAuth 2.0 অথেনটিকেশন সহ HTTPS-এর মাধ্যমে না আসে, তাহলে CalDAV সার্ভার সেই অনুরোধটি প্রমাণীকরণ করতে অস্বীকার করবে। HTTP বা বেসিক অথেনটিকেশন ব্যবহার করে সংযোগ করার চেষ্টা করলে একটি HTTP 401 Unauthorized স্ট্যাটাস কোড দেখা যায়।
যদি ক্লায়েন্ট প্রোগ্রামের (যেমন অ্যাপলের ক্যালেন্ডার অ্যাপ) প্রারম্ভিক বিন্দু হিসেবে কোনো প্রিন্সিপাল কালেকশনের প্রয়োজন হয়, তাহলে সংযোগ করার জন্য URI-টি হলো:
https://apidata.googleusercontent.com/caldav/v2/valid/user
যেখানে valid সেখানে অ্যাক্সেস করতে হবে এমন ক্যালেন্ডারের "ক্যালেন্ডার আইডি" বসাতে হবে। এটি গুগল ক্যালেন্ডার ওয়েব ইন্টারফেসের মাধ্যমে নিম্নোক্তভাবে খুঁজে পাওয়া যায়: ক্যালেন্ডারের নামের পাশের পুল-ডাউন মেনু থেকে ' ক্যালেন্ডার সেটিংস' (Calendar Settings ) নির্বাচন করুন। ফলস্বরূপ পৃষ্ঠায় 'ক্যালেন্ডার অ্যাড্রেস ' (Calendar Address ) লেবেলযুক্ত একটি বিভাগে ক্যালেন্ডার আইডিটি দেখানো হয়। একজন ব্যবহারকারীর প্রাথমিক ক্যালেন্ডারের ক্যালেন্ডার আইডিটি সেই ব্যবহারকারীর ইমেল ঠিকানার মতোই হয়।
যদি কোনো ক্লায়েন্ট প্রোগ্রামের (যেমন মোজিলা সানবার্ড ) সূচনা বিন্দু হিসেবে কোনো ক্যালেন্ডার সংগ্রহের প্রয়োজন হয়, তাহলে সংযোগ করার জন্য URI-টি হলো:
https://apidata.googleusercontent.com/caldav/v2/valid/events
পুরানো এন্ডপয়েন্ট https://www.google.com/calendar/dav এখন আর ব্যবহৃত হয় না এবং এটি আর সমর্থিত নয়; নিজ দায়িত্বে এটি ব্যবহার করুন। আমরা আপনাকে উপরে বর্ণিত নতুন এন্ডপয়েন্ট ফরম্যাটটি ব্যবহার করার পরামর্শ দিচ্ছি।
iCal® হলো Apple Inc.-এর একটি ট্রেডমার্ক।