इवेंट किस तरह के हैं

इस पेज पर, eventType प्रॉपर्टी के बारे में बताया गया है. साथ ही, Google Calendar API में उपलब्ध इवेंट टाइप की खास जानकारी दी गई है.

Google Calendar की मदद से, सामान्य इवेंट के साथ-साथ ऐसे इवेंट भी बनाए जा सकते हैं जो खास इस्तेमाल के लिए डिज़ाइन किए गए हों और जिनमें कस्टम प्रॉपर्टी शामिल की गई हों.

एपीआई में, इवेंट टाइप की जानकारी इन जगहों पर देखी जा सकती है:

  • सभी इवेंट, eventType की जानकारी देते हैं.
  • इवेंट रिसॉर्स बनाते या अपडेट करते समय, eventType सेट करें. अगर इसे सेट नहीं किया जाता है, तो एपीआई 'default' का इस्तेमाल करता है.
  • खास टाइप के इवेंट की सूची पाने के लिए, eventTypes कॉल में events.list तय करें. अगर कोई टाइप तय नहीं किया जाता है, तो एपीआई सभी तरह के इवेंट दिखाता है.
  • खास टाइप के इवेंट के अपडेट पाने के लिए, eventTypes कॉल में events.watch तय करें. अगर कोई टाइप तय नहीं किया जाता है, तो अनुरोध सभी तरह के इवेंट के अपडेट पाने के लिए सबमिट हो जाता है.

डिफ़ॉल्ट इवेंट

default इवेंट टाइप वाले इवेंट, Calendar API के मुख्य रिसॉर्स के तौर पर बनाए और इस्तेमाल किए जाते हैं. इन्हें और ज़्यादा पसंद के मुताबिक बनाने के लिए, इनमें कई तरह की प्रॉपर्टी जोड़ी जा सकती हैं.

Calendar इवेंट के साथ काम करने के लिए, इवेंट बनाना लेख पढ़ें.

जन्मदिन

जन्मदिन, पूरे दिन चलने वाले खास इवेंट होते हैं. ये हर साल दोहराए जाते हैं.

उपयोगकर्ता, Calendar पर जन्मदिन के इवेंट मैन्युअल तरीके से बना सकते हैं. इसके अलावा, Google Contacts में किसी व्यक्ति को जोड़ने और उसका जन्मदिन और अन्य अहम तारीखें शामिल करने पर, यह जानकारी Calendar के साथ सिंक हो जाती है. उपयोगकर्ताओं के जन्मदिन भी उनकी Google खाता प्रोफ़ाइल से Calendar में सिंक हो जाते हैं.

Calendar API, जन्मदिन के इवेंट को पढ़ने के लिए events.get, events.instances, और events.list तरीकों का इस्तेमाल करता है. सिर्फ़ जन्मदिन के इवेंट की सूची पाने के लिए, eventTypes को 'birthday' पर सेट करें. अगर कोई टाइप तय नहीं किया जाता है, तो जवाब में जन्मदिन के साथ-साथ अन्य सभी तरह के इवेंट की सूची दिखती है.

जवाब में मिले Event ऑब्जेक्ट में, इस खास इवेंट के बारे में ज़्यादा जानकारी पाने के लिए birthdayProperties फ़ील्ड देखें. birthdayProperties में ये फ़ील्ड होते हैं:

  • type: इस खास इवेंट का टाइप. यह जन्मदिन, सालगिरह या कोई अन्य अहम तारीख हो सकती है.
  • customTypeName: इस खास इवेंट के लिए, उपयोगकर्ता की तय की गई लेबल. अगर type को 'custom' पर सेट किया जाता है, तो यह फ़ील्ड भर जाता है.
  • contact: अगर यह खास इवेंट किसी संपर्क से जुड़ा है, तो उसका रिसॉर्स नाम. इसका फ़ॉर्मैट 'people/c12345' होता है. इसका इस्तेमाल, संपर्क की जानकारी पाने के लिए People API से किया जा सकता है.

एपीआई की मदद से, जन्मदिन के इवेंट बनाए जा सकते हैं. इसके लिए, events.insert तरीके का इस्तेमाल करके, ये शर्तें पूरी करनी होंगी:

  • eventType को 'birthday' पर सेट किया गया हो.
  • start और end फ़ील्ड में, पूरे दिन चलने वाले ऐसे इवेंट की जानकारी होनी चाहिए जो ठीक एक दिन तक चलता हो.
  • visibility फ़ील्ड की वैल्यू 'private' होनी चाहिए.
  • transparency फ़ील्ड की वैल्यू 'transparent' होनी चाहिए.
  • यह हर साल दोहराया जाना चाहिए. इसका मतलब है कि recurrence फ़ील्ड की वैल्यू 'RRULE:FREQ=YEARLY'होनी चाहिए. 29 फ़रवरी को पड़ने वाले जन्मदिन के इवेंट के लिए, दोहराए जाने का यह नियम होना चाहिए: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • इसमें colorId, summary, और reminders शामिल किए जा सकते हैं.
  • इसमें birthdayProperties शामिल की जा सकती हैं. अगर इसे तय किया जाता है, तो type की वैल्यू 'birthday' होनी चाहिए. साथ ही, customTypeName और contact दोनों खाली होने चाहिए.
  • इसमें इवेंट की कोई अन्य प्रॉपर्टी शामिल नहीं की जा सकती.

एपीआई की मदद से, events.update और events.patch तरीकों का इस्तेमाल करके, जन्मदिन के इवेंट के colorId, summary, और reminders को अपडेट किया जा सकता है. इवेंट की तारीख बदलने के लिए, start और end फ़ील्ड्स को भी अपडेट किया जा सकता है. इस मामले में, नई वैल्यू में पूरे दिन चलने वाले ऐसे इवेंट की जानकारी होनी चाहिए जो ठीक एक दिन तक चलता हो. अगर जन्मदिन का इवेंट किसी contact से लिंक है या उसका type 'self' है, तो उसकी टाइमिंग की जानकारी अपडेट नहीं की जा सकती.

Calendar API की मदद से, birthdayProperties को पसंद के मुताबिक बनाकर जन्मदिन के इवेंट नहीं बनाए जा सकते. साथ ही, इन प्रॉपर्टी को अपडेट भी नहीं किया जा सकता. अहम तारीखों में People API की मदद से बदलाव किया जा सकता है. ये बदलाव Calendar के साथ सिंक हो जाते हैं. इसी तरह, उपयोगकर्ता अपनी Google खाता प्रोफ़ाइलपर अपना जन्मदिन बदल सकते हैं. यह Calendar के साथ सिंक हो जाता है.

ऐसे अनुरोध पूरे नहीं होते जिनमें जन्मदिन को बनाने या अपडेट करने का कोई ऐसा तरीका इस्तेमाल किया गया हो जो काम नहीं करता. इस मामले में, समस्या की पहचान करने के लिए गड़बड़ी का मैसेज देखें.

एपीआई, जन्मदिन के इवेंट के लिए events.import कार्रवाई का इस्तेमाल करता है. हालांकि, इवेंट को डिफ़ॉल्ट इवेंट के तौर पर इंपोर्ट किया जाता है. दूसरे शब्दों में कहें, तो eventType की वैल्यू 'default' होगी.

एपीआई, Calendar पर जन्मदिन के इवेंट में होने वाले बदलावों के अपडेट पाने के लिए, events.watch तरीके का इस्तेमाल करता है. जन्मदिन के इवेंट के अपडेट पाने के लिए, eventTypes को 'birthday' पर सेट करें. अगर कोई टाइप तय नहीं किया जाता है, तो अनुरोध सभी तरह के इवेंट के अपडेट पाने के लिए सबमिट हो जाता है. इसमें जन्मदिन भी शामिल हैं.

Calendar API के events.delete तरीके का इस्तेमाल करके, जन्मदिन के इवेंट मिटाए जा सकते हैं. Calendar से जन्मदिन का इवेंट मिटाने पर, Google Contacts या Google खाता प्रोफ़ाइल में मौजूद डेटा पर कोई असर नहीं पड़ता.

events.move या events.update तरीकों का इस्तेमाल करके, जन्मदिन के इवेंट का आयोजक नहीं बदला जा सकता.

Gmail के इवेंट

Gmail से अपने-आप जनरेट होने वाले इवेंट का इवेंट टाइप 'fromGmail' होता है.

Calendar API की मदद से, इस टाइप का इवेंट नहीं बनाया जा सकता events.insert.

एपीआई की मदद से, colorId, reminders, visibility, transparency, status, attendees, private, और shared जैसी एक्सटेंड की गई प्रॉपर्टी को events.update और events.patch तरीकों का इस्तेमाल करके अपडेट किया जा सकता है.

एपीआई, Gmail के इवेंट को पढ़ने के लिए events.get और events.list तरीकों का इस्तेमाल करता है. सिर्फ़ Gmail से जनरेट होने वाले इवेंट की सूची पाने के लिए, eventTypes को 'fromGmail' पर सेट करें. अगर कोई टाइप तय नहीं किया जाता है, तो Gmail के इवेंट की सूची, अन्य सभी तरह के इवेंट के साथ दिखती है.

एपीआई, events.watch तरीके का इस्तेमाल Calendar पर Gmail के इवेंट में होने वाले बदलावों के अपडेट पाने के लिए करता है. अगर कोई टाइप तय नहीं किया जाता है, तो अनुरोध सभी तरह के इवेंट के अपडेट पाने के लिए सबमिट हो जाता है. इसमें 'fromGmail' भी शामिल है.

Calendar API के events.delete तरीके का इस्तेमाल करके, Gmail के इवेंट मिटाए जा सकते हैं.

events.move या events.update तरीकों का इस्तेमाल करके, Gmail के इवेंट का आयोजक नहीं बदला जा सकता.

फ़ोकस टाइम, 'अभी मैं छुट्टी पर हूं' विकल्प, और काम करने की जगह

Calendar API का इस्तेमाल करके, ऐसे इवेंट बनाए और मैनेज किए जा सकते हैं जिनसे Calendar के उपयोगकर्ताओं का स्टेटस दिखता है.

ये सुविधाएं सिर्फ़ मुख्य कैलेंडर और Calendar के कुछ उपयोगकर्ताओं के लिए उपलब्ध हैं. ज़्यादा जानने के लिए, फ़ोकस टाइम, 'अभी मैं छुट्टी पर हूं' विकल्प, और काम करने की जगह से जुड़े इवेंट मैनेज करना लेख पढ़ें.

Apps Script में इवेंट टाइप एक्सप्लोर करना

Apps Script, JavaScript पर आधारित क्लाउड स्क्रिप्टिंग भाषा है. इसकी मदद से, कारोबार के लिए ऐसे ऐप्लिकेशन बनाए जा सकते हैं जो Google Workspace के साथ इंटिग्रेट होते हैं. स्क्रिप्ट, ब्राउज़र पर आधारित कोड एडिटर में डेवलप की जाती हैं. इन्हें Google के सर्वर पर सेव और रन किया जाता है. Calendar API को अनुरोध भेजने के लिए, Apps Script का इस्तेमाल शुरू करने के लिए, Apps Script का क्विकस्टार्ट भी देखें.

यहां दिए गए निर्देशों में, Apps Script में Calendar API को बेहतर सेवा के तौर पर इस्तेमाल करके, इवेंट पढ़ने और मैनेज करने का तरीका बताया गया है. Calendar API रिसॉर्स और तरीकों की पूरी सूची देखने के लिए, रेफ़रंस दस्तावेज़ देखें.

स्क्रिप्ट बनाना और उसे सेट अप करना

  1. script.google.com/create पर जाकर स्क्रिप्ट बनाएं.
  2. बाईं ओर मौजूद पैनल में, सेवाएं के बगल में, सेवा जोड़ें पर क्लिक करें.
  3. Calendar API को चुनें और जोड़ें पर क्लिक करें.
  4. एपीआई को चालू करने के बाद, यह बाईं ओर मौजूद पैनल पर दिखता है. एडिटर में Calendar टाइप करके, एपीआई में उपलब्ध तरीकों और क्लास की सूची देखी जा सकती है.

(ज़रूरी नहीं) Cloud प्रोजेक्ट अपडेट करना

Apps Script के हर प्रोजेक्ट से कोई क्लाउड प्रोजेक्ट जुड़ा होता है. आपकी स्क्रिप्ट, Apps Script के अपने-आप बनाए गए डिफ़ॉल्ट प्रोजेक्ट का इस्तेमाल कर सकती है. अगर आपको कोई कस्टम क्लाउड प्रोजेक्ट इस्तेमाल करना है, तो कोई दूसरा स्टैंडर्ड Cloud प्रोजेक्ट इस्तेमाल करना लेख पढ़ें. 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. कोड एडिटर में सबसे ऊपर, ड्रॉप-डाउन मेन्यू से रन करने के लिए फ़ंक्शन चुनें. इसके बाद, रन करें पर क्लिक करें.
  2. पहली बार स्क्रिप्ट रन करने पर, आपसे ऐक्सेस की अनुमति देने के लिए कहा जाता है. Apps Script को अपने कैलेंडर का ऐक्सेस देने की अनुमति की समीक्षा करें और उसे अनुमति दें.
  3. विंडो में सबसे नीचे दिखने वाले एक्ज़ीक्यूशन लॉग में, स्क्रिप्ट के एक्ज़ीक्यूशन के नतीजे देखे जा सकते हैं.