ক্যালেন্ডার & ঘটনা

এই নির্দেশিকা ক্যালেন্ডার, ঘটনা এবং একে অপরের সাথে তাদের সম্পর্ক বর্ণনা করে।

ক্যালেন্ডার

একটি ক্যালেন্ডার হল সম্পর্কিত ইভেন্টগুলির একটি সংগ্রহ, সাথে অতিরিক্ত মেটাডেটা যেমন সারাংশ, ডিফল্ট সময় অঞ্চল, অবস্থান ইত্যাদি। প্রতিটি ক্যালেন্ডার একটি আইডি দ্বারা চিহ্নিত করা হয় যা একটি ইমেল ঠিকানা। ক্যালেন্ডারের একাধিক মালিক থাকতে পারে।

ঘটনা

একটি ঘটনা একটি নির্দিষ্ট তারিখ বা সময় সীমার সাথে সম্পর্কিত একটি বস্তু। ইভেন্ট একটি অনন্য আইডি দ্বারা চিহ্নিত করা হয়. একটি শুরু এবং শেষ তারিখ-সময় ছাড়াও, ইভেন্টগুলিতে অন্যান্য ডেটা থাকে যেমন সারাংশ, বিবরণ, অবস্থান, স্থিতি, অনুস্মারক, সংযুক্তি ইত্যাদি।

ইভেন্টের ধরন

Google ক্যালেন্ডার একক এবং পুনরাবৃত্ত ইভেন্ট সমর্থন করে:

  • একটি একক ঘটনা একটি অনন্য ঘটনার প্রতিনিধিত্ব করে।
  • একটি পুনরাবৃত্ত ঘটনা একাধিক ঘটনা সংজ্ঞায়িত করে।

ইভেন্টগুলিও নির্দিষ্ট সময়ে বা সারাদিনের হতে পারে:

  • সময়ের মধ্যে দুটি নির্দিষ্ট বিন্দুর মধ্যে একটি নির্দিষ্ট ঘটনা ঘটে। নির্ধারিত ইভেন্টগুলি কখন ঘটবে তা নির্দিষ্ট করতে start.dateTime এবং end.dateTime ক্ষেত্রগুলি ব্যবহার করে৷
  • একটি সারাদিনের ইভেন্ট একটি পুরো দিন বা পরপর কয়েকদিন জুড়ে থাকে। সারাদিনের ইভেন্টগুলি কখন ঘটবে তা নির্দিষ্ট করতে start.date এবং end.date ক্ষেত্রগুলি ব্যবহার করে৷ মনে রাখবেন যে সারাদিনের ইভেন্টের জন্য টাইমজোন ক্ষেত্রের কোন গুরুত্ব নেই।

আয়োজকরা

ইভেন্টগুলির একটি একক সংগঠক থাকে যা ইভেন্টের মূল অনুলিপি ধারণকারী ক্যালেন্ডার। ইভেন্টে একাধিক অংশগ্রহণকারীও থাকতে পারে। একজন অংশগ্রহণকারী সাধারণত একজন আমন্ত্রিত ব্যবহারকারীর প্রাথমিক ক্যালেন্ডার।

নিম্নলিখিত চিত্রটি ক্যালেন্ডার, ইভেন্ট এবং অন্যান্য সম্পর্কিত উপাদানগুলির মধ্যে ধারণাগত সম্পর্ক দেখায়:

প্রাথমিক ক্যালেন্ডার এবং অন্যান্য ক্যালেন্ডার

একটি প্রাথমিক ক্যালেন্ডার হল একক ব্যবহারকারীর অ্যাকাউন্টের সাথে যুক্ত একটি বিশেষ ধরনের ক্যালেন্ডার। এই ক্যালেন্ডারটি প্রতিটি নতুন ব্যবহারকারীর অ্যাকাউন্টের জন্য স্বয়ংক্রিয়ভাবে তৈরি হয় এবং এর আইডি সাধারণত ব্যবহারকারীর প্রাথমিক ইমেল ঠিকানার সাথে মেলে। যতক্ষণ অ্যাকাউন্টটি বিদ্যমান থাকবে, তার প্রাথমিক ক্যালেন্ডার কখনই মুছে ফেলা যাবে না বা ব্যবহারকারীর দ্বারা "অ-মালিকানাধীন" হবে না। যাইহোক, এটি এখনও অন্যান্য ব্যবহারকারীদের সাথে ভাগ করা যেতে পারে।

প্রাথমিক ক্যালেন্ডার ছাড়াও, আপনি স্পষ্টভাবে অন্যান্য ক্যালেন্ডারের যে কোনো সংখ্যা তৈরি করতে পারেন; এই ক্যালেন্ডারগুলি একাধিক ব্যবহারকারীদের মধ্যে পরিবর্তন, মুছে এবং ভাগ করা যেতে পারে।

ক্যালেন্ডার এবং ক্যালেন্ডার তালিকা

ক্যালেন্ডার সংগ্রহ সমস্ত বিদ্যমান ক্যালেন্ডারের প্রতিনিধিত্ব করে। এটি ক্যালেন্ডার তৈরি এবং মুছে ফেলার জন্য ব্যবহার করা যেতে পারে। আপনি একটি ক্যালেন্ডারে অ্যাক্সেস সহ সমস্ত ব্যবহারকারীদের মধ্যে ভাগ করা বৈশ্বিক বৈশিষ্ট্যগুলি পুনরুদ্ধার বা সেট করতে পারেন৷ উদাহরণস্বরূপ, একটি ক্যালেন্ডারের শিরোনাম এবং ডিফল্ট সময় অঞ্চল হল বিশ্বব্যাপী বৈশিষ্ট্য।

ক্যালেন্ডারলিস্ট হল সমস্ত ক্যালেন্ডার এন্ট্রির একটি সংগ্রহ যা একজন ব্যবহারকারী তাদের তালিকায় যুক্ত করেছে (ওয়েব UI এর বাম প্যানেলে দেখানো হয়েছে)। আপনি ব্যবহারকারীদের তালিকায়/থেকে বিদ্যমান ক্যালেন্ডার যোগ করতে এবং সরাতে এটি ব্যবহার করতে পারেন। আপনি এটিকে ব্যবহারকারী-নির্দিষ্ট ক্যালেন্ডার বৈশিষ্ট্যগুলির মান পুনরুদ্ধার এবং সেট করতেও ব্যবহার করেন, যেমন ডিফল্ট অনুস্মারক৷ আরেকটি উদাহরণ হল ফোরগ্রাউন্ড রঙ, যেহেতু বিভিন্ন ব্যবহারকারী একই ক্যালেন্ডারের জন্য বিভিন্ন রঙ সেট করতে পারে।

নিম্নলিখিত সারণী দুটি সংগ্রহের জন্য অপারেশনের অর্থ তুলনা করে:

অপারেশন ক্যালেন্ডার ক্যালেন্ডার তালিকা
insert একটি নতুন মাধ্যমিক ক্যালেন্ডার তৈরি করে। ডিফল্টরূপে, এই ক্যালেন্ডারটি নির্মাতার ক্যালেন্ডার তালিকাতেও যোগ করা হয়। ব্যবহারকারীর তালিকায় একটি বিদ্যমান ক্যালেন্ডার সন্নিবেশ করান।
delete একটি সেকেন্ডারি ক্যালেন্ডার মুছে দেয়। ব্যবহারকারীর তালিকা থেকে একটি ক্যালেন্ডার সরিয়ে দেয়।
get ক্যালেন্ডার মেটাডেটা পুনরুদ্ধার করে যেমন শিরোনাম, সময় অঞ্চল। মেটাডেটা এবং ব্যবহারকারী-নির্দিষ্ট কাস্টমাইজেশন যেমন রঙ বা ওভাররাইড রিমাইন্ডার পুনরুদ্ধার করে।
patch / update ক্যালেন্ডার মেটাডেটা পরিবর্তন করে। ব্যবহারকারী-নির্দিষ্ট ক্যালেন্ডার বৈশিষ্ট্য পরিবর্তন করে।

পুনরাবৃত্তি ঘটনা

কিছু ঘটনা নিয়মিত সময়সূচীতে একাধিকবার ঘটে, যেমন সাপ্তাহিক মিটিং, জন্মদিন এবং ছুটির দিন। ভিন্ন ভিন্ন শুরু এবং শেষের সময় ব্যতীত, এই পুনরাবৃত্তিমূলক ঘটনাগুলি প্রায়ই অভিন্ন।

ঘটনাগুলিকে পুনরাবৃত্ত বলা হয় যদি তারা একটি সংজ্ঞায়িত সময়সূচী অনুসারে পুনরাবৃত্তি করে। একক ঘটনা অ-পুনরাবৃত্ত এবং শুধুমাত্র একবার ঘটে।

পুনরাবৃত্তি নিয়ম

একটি পুনরাবৃত্ত ইভেন্টের সময়সূচী দুটি অংশে সংজ্ঞায়িত করা হয়েছে:

  • এর সূচনা এবং শেষ ক্ষেত্রগুলি (যা প্রথম ঘটনাটিকে সংজ্ঞায়িত করে, যেন এটি শুধুমাত্র একটি স্বতন্ত্র একক ঘটনা), এবং

  • এর পুনরাবৃত্তি ক্ষেত্র (যা সংজ্ঞায়িত করে কিভাবে ইভেন্টটি সময়ের সাথে পুনরাবৃত্তি করা উচিত)।

পুনরাবৃত্তি ক্ষেত্রে RFC 5545- এ সংজ্ঞায়িত এক বা একাধিক RRULE , RDATE বা EXDATE বৈশিষ্ট্যের প্রতিনিধিত্বকারী স্ট্রিংগুলির একটি অ্যারে রয়েছে।

RRULE বৈশিষ্ট্যটি সবচেয়ে গুরুত্বপূর্ণ কারণ এটি ইভেন্ট পুনরাবৃত্তি করার জন্য একটি নিয়মিত নিয়ম সংজ্ঞায়িত করে। এটি বিভিন্ন উপাদানের সমন্বয়ে গঠিত। তাদের মধ্যে কয়েকটি হল:

  • FREQ - যে ফ্রিকোয়েন্সি সহ ইভেন্টটি পুনরাবৃত্তি করা উচিত (যেমন DAILY বা WEEKLY )। প্রয়োজন।

  • INTERVAL — কত ঘন ঘন ইভেন্ট পুনরাবৃত্তি করা উচিত তা নির্দিষ্ট করতে FREQ এর সাথে একসাথে কাজ করে। উদাহরণস্বরূপ, FREQ=DAILY;INTERVAL=2 মানে প্রতি দুই দিনে একবার।

  • COUNT — এই ইভেন্টটি কতবার পুনরাবৃত্তি করা উচিত।

  • UNTIL — তারিখ বা তারিখ-সময় যে পর্যন্ত ঘটনাটি পুনরাবৃত্তি করা উচিত (অন্তর্ভুক্ত)।

  • BYDAY — সপ্তাহের যে দিনগুলিতে ইভেন্টটি পুনরাবৃত্তি করা উচিত ( SU , MO , TU , ইত্যাদি)। অন্যান্য অনুরূপ উপাদানগুলির মধ্যে রয়েছে BYMONTH , BYYEARDAY , এবং BYHOUR

RDATE বৈশিষ্ট্য অতিরিক্ত তারিখ বা তারিখ-সময় নির্দিষ্ট করে যখন ইভেন্ট সংঘটিত হওয়া উচিত। উদাহরণস্বরূপ, RDATE;VALUE=DATE:19970101,19970120RRULE দ্বারা আচ্ছাদিত নয় এমন অতিরিক্ত ঘটনা যোগ করতে এটি ব্যবহার করুন।

EXDATE প্রপার্টিটি RDATE-এর মতই, কিন্তু ইভেন্টটি কখন ঘটবে না তা তারিখ বা তারিখ-সময় উল্লেখ করে। অর্থাৎ, সেই ঘটনাগুলি বাদ দেওয়া উচিত। এটি অবশ্যই পুনরাবৃত্তি নিয়ম দ্বারা উত্পন্ন একটি বৈধ উদাহরণ নির্দেশ করবে৷

EXDATE এবং RDATE একটি টাইম জোন থাকতে পারে এবং সারাদিনের ইভেন্টের জন্য অবশ্যই তারিখ (তারিখ-সময় নয়) হতে পারে।

প্রতিটি বৈশিষ্ট্য একাধিকবার পুনরাবৃত্তি ক্ষেত্রের মধ্যে ঘটতে পারে। পুনরাবৃত্তিটিকে সমস্ত RRULE এবং RDATE নিয়মের মিলন হিসাবে সংজ্ঞায়িত করা হয়, সমস্ত EXDATE নিয়ম দ্বারা বাদ দেওয়া বিয়োগ৷

এখানে পুনরাবৃত্ত ইভেন্টের কিছু উদাহরণ রয়েছে:

  1. একটি ইভেন্ট যা প্রতি মঙ্গলবার এবং শুক্রবার সকাল 6 টা থেকে সকাল 7 টা পর্যন্ত ঘটে যা 15 ই সেপ্টেম্বর, 2015 থেকে শুরু হয় এবং 29 সেপ্টেম্বর পঞ্চম ঘটনার পরে থামে:

    ...
    "start": {
     "dateTime": "2015-09-15T06:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "end": {
     "dateTime": "2015-09-15T07:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "recurrence": [
     "RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=TU,FR"
    ],
    …
    
  2. একটি সারাদিনের ইভেন্ট 1লা জুন, 2015 থেকে শুরু হয় এবং 10 জুন ব্যতীত কিন্তু 9 ও 11 জুন সহ সারা মাস জুড়ে প্রতি 3 দিনে পুনরাবৃত্তি হয়:

    ...
    "start": {
     "date": "2015-06-01"
    },
    "end": {
     "date": "2015-06-02"
    },
    "recurrence": [
     "EXDATE;VALUE=DATE:20150610",
     "RDATE;VALUE=DATE:20150609,20150611",
     "RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"
    ],
    …
    

উদাহরণ এবং ব্যতিক্রম

একটি পুনরাবৃত্ত ঘটনা বিভিন্ন দৃষ্টান্ত নিয়ে গঠিত: বিভিন্ন সময়ে এর নির্দিষ্ট ঘটনা। এই দৃষ্টান্তগুলি নিজেই ঘটনা হিসাবে কাজ করে।

পুনরাবৃত্ত ইভেন্ট পরিবর্তনগুলি হয় পুরো পুনরাবৃত্ত ঘটনাকে (এবং এর সমস্ত দৃষ্টান্ত) বা শুধুমাত্র পৃথক দৃষ্টান্তকে প্রভাবিত করতে পারে। যে দৃষ্টান্তগুলি তাদের পিতামাতার পুনরাবৃত্ত ইভেন্ট থেকে ভিন্ন তাদেরকে ব্যতিক্রম বলা হয়।

উদাহরণস্বরূপ, একটি ব্যতিক্রমের একটি ভিন্ন সারাংশ, একটি ভিন্ন শুরুর সময়, বা শুধুমাত্র সেই উদাহরণে আমন্ত্রিত অতিরিক্ত অংশগ্রহণকারী থাকতে পারে। আপনি পুনরাবৃত্ত ইভেন্টটি অপসারণ না করেও একটি দৃষ্টান্ত সম্পূর্ণরূপে বাতিল করতে পারেন (উদাহরণ বাতিলকরণ ইভেন্টের status প্রতিফলিত হয়)।

Google ক্যালেন্ডার API এর মাধ্যমে পুনরাবৃত্তিমূলক ইভেন্ট এবং উদাহরণগুলির সাথে কীভাবে কাজ করবেন তার উদাহরণ এখানে পাওয়া যাবে।

সময় অঞ্চল

একটি সময় অঞ্চল এমন একটি অঞ্চলকে নির্দিষ্ট করে যা একটি অভিন্ন মান সময় পর্যবেক্ষণ করে। Google ক্যালেন্ডার API-এ, আপনি IANA টাইম জোন শনাক্তকারী ব্যবহার করে সময় অঞ্চল নির্দিষ্ট করেন।

আপনি ক্যালেন্ডার এবং ইভেন্ট উভয়ের জন্য সময় অঞ্চল সেট করতে পারেন। নিম্নলিখিত বিভাগগুলি এই সেটিংসের প্রভাবগুলি বর্ণনা করে৷

ক্যালেন্ডারের সময় অঞ্চল

ক্যালেন্ডারের টাইম জোনকে ডিফল্ট টাইম জোনও বলা হয় কারণ অনুসন্ধানের ফলাফলের জন্য এর প্রভাব রয়েছে। events.get() , events.list() , এবং events.instances() পদ্ধতি দ্বারা সময়ের মানগুলিকে ব্যাখ্যা করা বা উপস্থাপন করার পদ্ধতিকে ক্যালেন্ডারের সময় অঞ্চল প্রভাবিত করে৷

ক্যোয়ারী ফলাফল সময় অঞ্চল রূপান্তর
get() , list() , এবং instances() পদ্ধতির ফলাফল টাইম জোনে ফেরত দেওয়া হয় যা আপনি timeZone প্যারামিটারে নির্দিষ্ট করেছেন। আপনি যদি এই প্যারামিটারটি বাদ দেন, তবে এই পদ্ধতিগুলি সমস্ত ক্যালেন্ডারের সময় অঞ্চলকে ডিফল্ট হিসাবে ব্যবহার করে।
সারাদিনের ইভেন্টগুলিকে সময়-বন্ধনীযুক্ত প্রশ্নের সাথে মেলানো
list() , এবং instances() পদ্ধতিগুলি আপনাকে স্টার্ট- এবং এন্ড-টাইম ফিল্টার নির্দিষ্ট করতে দেয়, পদ্ধতি রিটার্নিং ইন্সট্যান্স যা নির্দিষ্ট পরিসরে পড়ে। ক্যালেন্ডার টাইম জোনটি ফিল্টার স্পেসিফিকেশনের মধ্যে পড়ে কিনা তা নির্ধারণ করতে সারাদিনের ইভেন্টের শুরু এবং শেষের সময় গণনা করতে ব্যবহৃত হয়।

ইভেন্টের সময় অঞ্চল

ইভেন্ট দৃষ্টান্তের একটি শুরু এবং শেষ সময় আছে; এই সময়ের জন্য স্পেসিফিকেশন সময় অঞ্চল অন্তর্ভুক্ত হতে পারে. আপনি বিভিন্ন উপায়ে সময় অঞ্চল নির্দিষ্ট করতে পারেন; নিম্নলিখিত সব একই সময় নির্দিষ্ট করে:

  • dateTime ক্ষেত্রে একটি সময় অঞ্চল অফসেট অন্তর্ভুক্ত করুন, উদাহরণস্বরূপ 2017-01-25T09:00:00-0500
  • অফসেট ছাড়াই সময় নির্দিষ্ট করুন, উদাহরণস্বরূপ 2017-01-25T09:00:00 , timeZone ক্ষেত্রটি খালি রেখে (এটি স্পষ্টভাবে ডিফল্ট সময় অঞ্চল ব্যবহার করে)।
  • অফসেট ছাড়াই সময় নির্দিষ্ট করুন, উদাহরণস্বরূপ 2017-01-25T09:00:00 , কিন্তু সময় অঞ্চল নির্দিষ্ট করতে timeZone ক্ষেত্রটি ব্যবহার করুন৷

আপনি চাইলে UTC-তে ইভেন্টের সময়ও উল্লেখ করতে পারেন:

  • UTC-তে সময় নির্দিষ্ট করুন: 2017-01-25T14:00:00Z অথবা একটি শূন্য অফসেট 2017-01-25T14:00:00+0000 ব্যবহার করুন।

ইভেন্ট সময়ের অভ্যন্তরীণ উপস্থাপনা এই সমস্ত ক্ষেত্রে একই, কিন্তু timeZone ক্ষেত্র সেট করা ইভেন্টে একটি সময় অঞ্চল সংযুক্ত করে, ঠিক যেমন আপনি ক্যালেন্ডার UI ব্যবহার করে একটি ইভেন্ট টাইম জোন সেট করেন :

একটি ইভেন্টের সময় অঞ্চল দেখানো স্ক্রিনশট খণ্ড

পুনরাবৃত্ত ইভেন্টের সময় অঞ্চল

পুনরাবৃত্ত ইভেন্টগুলির জন্য একটি একক টাইমজোন সর্বদা নির্দিষ্ট করতে হবে। ইভেন্টের পুনরাবৃত্তি প্রসারিত করার জন্য এটি প্রয়োজন।