ইভেন্টের ধরন

এই পৃষ্ঠায় eventType প্রপার্টি এবং Google Calendar API-তে উপলব্ধ ইভেন্টের ধরণের স্পেসিফিকেশন ব্যাখ্যা করা হয়েছে।

গুগল ক্যালেন্ডার ব্যবহারকারীদের জেনেরিক ইভেন্ট তৈরি করতে দেয়, সেইসাথে নির্দিষ্ট ব্যবহারের ক্ষেত্রে এবং কাস্টম বৈশিষ্ট্য সহ ইভেন্টগুলিও তৈরি করতে দেয়।

API-তে নিম্নলিখিত স্থানগুলিতে ইভেন্টের ধরণটি আবিষ্কার করা যেতে পারে:

  • সমস্ত ইভেন্ট একটি eventType দিয়ে ফেরত পাঠানো হয়।
  • ইভেন্ট রিসোর্স তৈরি বা আপডেট করার সময় eventType সেট করতে হবে। সেট না করা থাকলে, 'default' টাইপ ব্যবহার করা হবে।
  • নির্দিষ্ট ধরণের ইভেন্ট তালিকাভুক্ত করার জন্য eventTypes কে Events:list কলে নির্দিষ্ট করা যেতে পারে। যদি কোনও টাইপ নির্দিষ্ট না করা থাকে, তাহলে সমস্ত ইভেন্ট টাইপ ফেরত পাঠানো হবে।
  • নির্দিষ্ট ধরণের ইভেন্টের আপডেট পেতে Events:watch কলে eventTypes নির্দিষ্ট করা যেতে পারে। যদি কোনও প্রকার নির্দিষ্ট না করা থাকে, তাহলে অনুরোধটি সমস্ত ইভেন্ট প্রকারের সাবস্ক্রাইব করবে।

ডিফল্ট ইভেন্ট

default ইভেন্ট টাইপ সহ ইভেন্টগুলি তৈরি করা হয় এবং গুগল ক্যালেন্ডার এপিআই-এর অন্যতম প্রধান সম্পদ হিসেবে ব্যবহৃত হয়। তারা বিভিন্ন ধরণের বৈশিষ্ট্য সমর্থন করে যা ইভেন্টটিকে আরও কাস্টমাইজ করতে ব্যবহার করা যেতে পারে।

গুগল ক্যালেন্ডার ইভেন্টগুলির সাথে কাজ শুরু করতে ইভেন্ট তৈরি করুন দেখুন।

জন্মদিন

জন্মদিন হল সারাদিনের বিশেষ অনুষ্ঠান যার পুনরাবৃত্তি বার্ষিক হয়।

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

জন্মদিনের ইভেন্টগুলি পড়ার জন্য Google Calendar API get , instances , এবং list পদ্ধতি সমর্থন করে। শুধুমাত্র জন্মদিনের ইভেন্টগুলি তালিকাভুক্ত করার জন্য eventTypes 'birthday' তে সেট করা যেতে পারে। যদি কোনও প্রকার নির্দিষ্ট না করা থাকে, তাহলে জন্মদিনগুলি অন্যান্য সমস্ত ইভেন্ট প্রকারের সাথে তালিকাভুক্ত করা হবে।

এই বিশেষ ইভেন্ট সম্পর্কে আরও বিস্তারিত জানার জন্য ফেরত দেওয়া Event অবজেক্টগুলিতে, birthdayProperties ক্ষেত্রটি পরীক্ষা করুন। birthdayProperties নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

  • type : এই বিশেষ অনুষ্ঠানের ধরণ, তা জন্মদিন, বার্ষিকী, অথবা অন্য কোনও গুরুত্বপূর্ণ তারিখই হোক না কেন।
  • customTypeName : এই বিশেষ ইভেন্টের জন্য ব্যবহারকারী-নির্দিষ্ট লেবেল। যদি type 'custom' তে সেট করা থাকে তবে এটি পূরণ করা হবে।
  • contact : এই বিশেষ ইভেন্টটি যে পরিচিতির সাথে লিঙ্ক করা হয়েছে, যদি থাকে, তার রিসোর্সের নাম। এর ফর্ম্যাট 'people/c12345' এবং এটি People API থেকে যোগাযোগের বিবরণ আনতে ব্যবহার করা যেতে পারে।

API নিম্নলিখিত স্পেসিফিকেশন সহ insert পদ্ধতি ব্যবহার করে জন্মদিনের ইভেন্ট তৈরি করার অনুমতি দেয়:

  • eventType 'birthday' তে সেট করা আছে।
  • start এবং end ক্ষেত্রগুলিকে একটি সারাদিনের ইভেন্ট সংজ্ঞায়িত করতে হবে যা ঠিক একদিন জুড়ে থাকবে।
  • visibility ক্ষেত্রের মান অবশ্যই 'private' হতে হবে।
  • transparency ক্ষেত্রের মান অবশ্যই 'transparent' হতে হবে।
  • একটি বার্ষিক পুনরাবৃত্তি থাকা প্রয়োজন, যার অর্থ recurrence ক্ষেত্রটি 'RRULE:FREQ=YEARLY' হতে হবে। ২৯শে ফেব্রুয়ারিতে জন্মগ্রহণকারী জন্মদিনের ইভেন্টগুলিতে নিম্নলিখিত পুনরাবৃত্তির নিয়ম থাকতে হবে: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'
  • একটি colorId , summary এবং reminders থাকতে পারে।
  • birthdayProperties থাকতে পারে। যদি নির্দিষ্ট করা থাকে, তাহলে type 'birthday' হতে হবে এবং customTypeName এবং contact উভয়ই খালি থাকতে হবে।
  • অন্য কোনও ইভেন্ট বৈশিষ্ট্য থাকতে পারে না।

API update এবং patch পদ্ধতি ব্যবহার করে জন্মদিনের ইভেন্টের colorId , summary এবং reminders আপডেট করার অনুমতি দেয়। ইভেন্টের তারিখ পরিবর্তন করার জন্য start এবং end ক্ষেত্রগুলিও আপডেট করা যেতে পারে। এই ক্ষেত্রে, নতুন মানগুলিকে একটি সারাদিনের ইভেন্ট সংজ্ঞায়িত করতে হবে যা ঠিক এক দিন ব্যাপী। ইভেন্টটি যদি কোনও contact সাথে লিঙ্ক করা থাকে, অথবা এর type 'self' হয় তবে জন্মদিনের ইভেন্টের সময় বিবরণ আপডেট করা যাবে না।

Google Calendar API কাস্টম birthdayProperties দিয়ে জন্মদিনের ইভেন্ট তৈরি করতে বা এই বৈশিষ্ট্যগুলি আপডেট করতে দেয় না। People API দিয়ে গুরুত্বপূর্ণ তারিখগুলি সম্পাদনা করা যেতে পারে এবং পরিবর্তনগুলি Google Calendar এর সাথে সিঙ্ক করা হয়। একইভাবে, ব্যবহারকারীরা তাদের Google অ্যাকাউন্ট প্রোফাইলে তাদের নিজস্ব জন্মদিন সম্পাদনা করতে পারেন এবং এটি Google Calendar এর সাথে সিঙ্ক হয়।

অসমর্থিত উপায়ে জন্মদিন তৈরি বা আপডেট করার চেষ্টা করা অনুরোধগুলি ব্যর্থ হবে। এই ক্ষেত্রে, সমস্যাটি সনাক্ত করতে ত্রুটি বার্তাটি পরীক্ষা করুন।

জন্মদিনের ইভেন্টের জন্য API import অপারেশন সমর্থন করে; তবে, ইভেন্টটি একটি ডিফল্ট ইভেন্ট হিসেবে ইমপোর্ট করা হবে। অন্য কথায়, eventType 'default' হবে।

গুগল ক্যালেন্ডারে জন্মদিনের ইভেন্টের পরিবর্তনগুলিতে সাবস্ক্রাইব করার জন্য API watch পদ্ধতি সমর্থন করে। জন্মদিনের ইভেন্টের আপডেটগুলিতে সাবস্ক্রাইব করার জন্য eventTypes 'birthday' তে সেট করা যেতে পারে। যদি কোনও প্রকার নির্দিষ্ট না করা থাকে, তাহলে জন্মদিন সহ সমস্ত ইভেন্টের ধরণ সাবস্ক্রাইব করা হবে।

গুগল ক্যালেন্ডার এপিআই-এর delete পদ্ধতি ব্যবহার করে জন্মদিনের ইভেন্টগুলি মুছে ফেলা যেতে পারে। গুগল ক্যালেন্ডার থেকে জন্মদিনের ইভেন্ট মুছে ফেলা হলে গুগল কন্টাক্টস বা গুগল অ্যাকাউন্ট প্রোফাইলের ডেটা প্রভাবিত হয় না।

move বা update পদ্ধতি ব্যবহার করে জন্মদিনের ইভেন্টের আয়োজক পরিবর্তন করা সমর্থিত নয়।

Gmail থেকে ইভেন্টগুলি

Gmail থেকে স্বয়ংক্রিয়ভাবে তৈরি ইভেন্টগুলির 'fromGmail' ইভেন্ট টাইপ থাকে।

Google Calendar API insert পদ্ধতি ব্যবহার করে এই ইভেন্ট টাইপ তৈরি করার অনুমতি দেয় না।

API update এবং patch পদ্ধতি ব্যবহার করে colorId , reminders , visibility , transparency , status , attendees , private এবং shared বর্ধিত বৈশিষ্ট্য আপডেট করার অনুমতি দেয়।

API Gmail থেকে ইভেন্ট পড়ার জন্য get and list পদ্ধতি সমর্থন করে। eventTypes 'fromGmail' তে সেট করা যেতে পারে যাতে শুধুমাত্র Gmail থেকে তৈরি ইভেন্টগুলি তালিকাভুক্ত করা যায়। যদি কোনও প্রকার নির্দিষ্ট না করা থাকে, তাহলে Gmail থেকে ইভেন্টগুলি অন্যান্য সমস্ত ইভেন্ট প্রকারের সাথে তালিকাভুক্ত করা হবে।

গুগল ক্যালেন্ডারে জিমেইল থেকে ইভেন্টের পরিবর্তনগুলিতে সাবস্ক্রাইব করার জন্য API watch পদ্ধতি সমর্থন করে। যদি কোনও প্রকার নির্দিষ্ট না করা থাকে, তাহলে 'fromGmail' সহ সমস্ত ইভেন্টের প্রকার সাবস্ক্রাইব করা হবে।

গুগল ক্যালেন্ডার এপিআই-এর delete পদ্ধতি ব্যবহার করে জিমেইল থেকে ইভেন্টগুলি মুছে ফেলা যেতে পারে।

Gmail থেকে move বা update পদ্ধতি ব্যবহার করে কোনও ইভেন্টের আয়োজক পরিবর্তন করা সমর্থিত নয়।

ফোকাস টাইম, অফিসের বাইরে এবং কর্মস্থল

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

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

Google Apps Script-এ ইভেন্টের ধরণগুলি অন্বেষণ করুন

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

নিম্নলিখিত নির্দেশাবলীতে Google Apps Script-এ একটি উন্নত পরিষেবা হিসেবে Google Calendar API ব্যবহার করে ইভেন্টগুলি কীভাবে পড়তে এবং পরিচালনা করতে হয় তা বর্ণনা করা হয়েছে। Google Calendar API রিসোর্স এবং পদ্ধতিগুলির সম্পূর্ণ তালিকার জন্য, রেফারেন্স ডকুমেন্টেশন দেখুন।

স্ক্রিপ্ট তৈরি এবং সেট আপ করুন

  1. script.google.com/create এ গিয়ে একটি স্ক্রিপ্ট তৈরি করুন।
  2. Services এর পাশের বাম পেনে, Add a service ক্লিক করুন।
  3. গুগল ক্যালেন্ডার এপিআই নির্বাচন করুন এবং অ্যাড এ ক্লিক করুন।
  4. সক্রিয় করার পরে, APIটি বাম প্যানেলে প্রদর্শিত হবে। API-তে উপলব্ধ পদ্ধতি এবং ক্লাসগুলি সম্পাদকে ক্যালেন্ডার কীওয়ার্ড ব্যবহার করে তালিকাভুক্ত করা যেতে পারে।

(ঐচ্ছিক) গুগল ক্লাউড প্রোজেক্ট আপডেট করুন

প্রতিটি Google Apps Script প্রকল্পের সাথে একটি সংশ্লিষ্ট Google Cloud প্রকল্প থাকে। আপনার স্ক্রিপ্টটি Google Apps Script স্বয়ংক্রিয়ভাবে তৈরি করা ডিফল্ট প্রকল্পটি ব্যবহার করতে পারে। আপনি যদি একটি কাস্টম Google Cloud প্রকল্প ব্যবহার করতে চান, তাহলে একটি ভিন্ন স্ট্যান্ডার্ড ক্লাউড প্রকল্পে স্যুইচ করুন দেখুন। Google Cloud প্রকল্প সেট করার পরে, কোড সম্পাদকে ফিরে যেতে বাম দিকে সম্পাদক নির্বাচন করুন।

স্ক্রিপ্টে কোড যোগ করুন

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে বিভিন্ন eventType মান সহ ইভেন্টগুলি তালিকাভুক্ত করতে, পড়তে এবং তৈরি করতে হয়।

  1. কোড এডিটরে নিম্নলিখিতটি পেস্ট করুন।

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists birthday events. */
    function listBirthdays() {
      listEvents('birthday');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /** Creates a birthday event. */
    function createBirthday() {
      const event = {
        start: { date: '2024-01-29' },
        end: { date: '2024-01-30' },
        eventType: 'birthday',
        recurrence: ["RRULE:FREQ=YEARLY"],
        summary: "My friend's birthday",
        transparency: "transparent",
        visibility: "private",
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • CALENDAR_ID : ক্যালেন্ডারের ইমেল ঠিকানা যেখানে ইভেন্টগুলি পুনরুদ্ধার এবং তৈরি করা হবে। এই ধ্রুবকটি প্রাথমিকভাবে 'primary' তে সেট করা থাকে, যা সাইন-ইন করা ব্যবহারকারীর প্রাথমিক ক্যালেন্ডার অ্যাক্সেস করার জন্য একটি কীওয়ার্ড। এই মান পরিবর্তন করলে আপনি আপনার অ্যাক্সেস থাকা অন্যান্য ব্যবহারকারীদের ক্যালেন্ডারের ইভেন্টগুলি পড়তে পারবেন।
    • EVENT_ID : ইভেন্টের আইডি। ইভেন্ট আইডি পুনরুদ্ধার করতে আপনি Events:list-এ কল করতে পারেন।

কোড নমুনা চালান

  1. কোড এডিটরের উপরে, ড্রপ-ডাউন মেনু থেকে চালানোর জন্য ফাংশনটি নির্বাচন করুন এবং Run এ ক্লিক করুন।
  2. প্রথম এক্সিকিউশনে, এটি আপনাকে অ্যাক্সেস অনুমোদন করতে অনুরোধ করবে। পর্যালোচনা করুন এবং অ্যাপস স্ক্রিপ্টকে আপনার ক্যালেন্ডার অ্যাক্সেস করার অনুমতি দিন।
  3. আপনি উইন্ডোর নীচে প্রদর্শিত এক্সিকিউশন লগে স্ক্রিপ্ট এক্সিকিউশনের ফলাফল পরীক্ষা করতে পারেন।