Google Calendar का इस्तेमाल करने वाले लोगों के लिए, काम करने की जगहें मैनेज करें

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

काम करने की जगह की जानकारी देखने की अनुमति दें

Calendar API के Events संसाधन में जाकर, उपयोगकर्ता के काम करने की जगहों की जानकारी देखी जा सकती है.

काम करने की जगह के इवेंट की सूची बनाने के लिए, events.list तरीके का इस्तेमाल करें. साथ ही, eventTypes फ़ील्ड में ['workingLocation'] बताएं. इसके बाद, दिखने वाले Event ऑब्जेक्ट में, इस बात की जांच करें कि eventType फ़ील्ड में वैल्यू 'workingLocation' है और उपयोगकर्ता ने Google Calendar में काम करने की जो जगह सेट की है उसके बारे में जानकारी के लिए, फ़ील्ड देखें.workingLocationProperties

काम करने की जगह की जानकारी सेट करना और उसे अपडेट करना

काम करने की जगह का इवेंट बनाने के लिए, आपको Events रिसॉर्स का एक इंस्टेंस बनाना होगा. इसमें ये ज़रूरी फ़ील्ड शामिल होंगे:

  • eventType को 'workingLocation' पर सेट करें.
  • workingLocationProperties फ़ील्ड शामिल करें.
  • visibility फ़ील्ड को public पर सेट करें.
  • transparency फ़ील्ड को 'transparent' पर सेट करें.
  • इवेंट के start और end फ़ील्ड को इनमें से किसी एक पर सेट करें:

    • टाइम इवेंट (शुरू और खत्म होने के समय के साथ);
    • पूरे दिन का एक इवेंट (शुरुआत और खत्म होने की तारीखों के साथ) जो ठीक एक दिन के लिए होता है.

    पूरे दिन के काम करने की जगह वाले इवेंट की अवधि एक से ज़्यादा दिन नहीं हो सकती. हालांकि, तय समय वाले इवेंट की अवधि पूरी हो सकती है.

अगर काम करने की जगह वाले इवेंट को अपडेट किया जाता है, तो इवेंट में ये ज़रूरी फ़ील्ड होने चाहिए.

नीचे दिए गए फ़ील्ड ज़रूरी नहीं हैं, लेकिन officeLocation डालते समय बेहतरीन उपयोगकर्ता अनुभव के लिए इनका सुझाव दिया जाता है:

  • workingLocationProperties.officeLocation.buildingId: यह संगठन के संसाधन डेटाबेस में मौजूद buildingId से मेल खाना चाहिए. इससे उपयोगकर्ताओं को Calendar की सभी सुविधाओं का फ़ायदा मिलता है. उदाहरण के लिए, कमरे के सुझाव पाना.
  • workingLocationProperties.officeLocation.label: यह लेबल, Calendar के वेब और मोबाइल क्लाइंट पर दिखता है. resources.buildings.list तरीका इस्तेमाल करके, बिल्डिंग आईडी और बिल्डिंग के लेबल फ़ेच किए जा सकते हैं.

अगर आपने किसी दिन, काम करने की एक से ज़्यादा जगह के इवेंट सेट किए हैं, तो Calendar में नीचे दिए गए नियमों के मुताबिक सिर्फ़ एक इवेंट दिखेगा.

एक साथ कई एंडपॉइंट से, काम करने की जगह के इवेंट बनाने और उन्हें अपडेट करने की सुविधा, काम नहीं करती.

काम करने की जगह के ओवरलैप होने वाले इवेंट दिखाने का तरीका

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

  • समय वाले इवेंट पूरे दिन के इवेंट में अपनाए जाते हैं.
  • बार-बार होने वाले इवेंट और उनके अपवाद के मुकाबले, सिंगल इवेंट को प्राथमिकता दी जाती है.
  • बाद में शुरू होने वाले इवेंट को, पहले शुरू होने वाले इवेंट के मुकाबले प्राथमिकता दी जाती है.
  • कम अवधि वाले इवेंट को लंबी अवधि वाले इवेंट के मुकाबले प्राथमिकता दी जाती है.
  • हाल ही में बनाए गए इवेंट को, पहले बनाए गए इवेंट के मुकाबले प्राथमिकता दी जाती है.
  • कुछ हद तक ओवरलैप होने वाले इवेंट को दो अलग-अलग इवेंट के तौर पर दिखाया जाना चाहिए. साथ ही, हर इवेंट को अपने काम करने की जगह के साथ दिखाना चाहिए.

Google Apps स्क्रिप्ट कोड का नमूना

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

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

स्क्रिप्ट बनाना

  1. script.google.com/create पर जाकर स्क्रिप्ट बनाएं.

Google Calendar API को चालू करें

  1. सेवाएं के बगल में बाएं पैनल में, सेवा जोड़ें पर क्लिक करें .
  2. Google Calendar API चुनें और जोड़ें पर क्लिक करें.
  3. चालू करने के बाद, एपीआई बाएं पैनल में दिखता है. एपीआई में मौजूद तरीकों और क्लास को, एडिटर में Calendar कीवर्ड का इस्तेमाल करके शामिल किया जा सकता है.

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

हर Google Apps Script प्रोजेक्ट में, एक Google Cloud प्रोजेक्ट जुड़ा होता है. आपकी स्क्रिप्ट उस डिफ़ॉल्ट प्रोजेक्ट का इस्तेमाल कर सकती है जिसे Google Apps Script अपने-आप बनाता है. अगर आपको पसंद के मुताबिक Google Cloud प्रोजेक्ट का इस्तेमाल करना है, तो अपनी स्क्रिप्ट से जुड़े प्रोजेक्ट को अपडेट करने के लिए यह तरीका अपनाएं.

  1. एडिटर की बाईं ओर, प्रोजेक्ट सेटिंग पर क्लिक करें.
  2. Google Cloud Platform (GCP) प्रोजेक्ट में जाकर, प्रोजेक्ट बदलें पर क्लिक करें.
  3. 'डेवलपर के लिए झलक' कार्यक्रम में मौजूद Google Cloud प्रोजेक्ट का प्रोजेक्ट नंबर डालें. इसके बाद, प्रोजेक्ट सेट करें पर क्लिक करें.
  4. कोड एडिटर पर वापस जाने के लिए, बाईं ओर मौजूद Editor चुनें.

स्क्रिप्ट में कोड जोड़ें

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

  • नीचे दी गई जानकारी को स्क्रिप्ट एडिटर में चिपकाएं.

    /**
     * Creates a working location event.
     * See https://developers.google.com/calendar/api/v3/reference/events/insert
     */
    function createWorkingLocationEvent() {
      const calendarId = 'primary';
    
      const requiredArgs = {
        start: { date: "2023-06-01" },
        end: { date: "2023-06-02" },
        eventType: "workingLocation",
        visibility: "public",
        transparency: "transparent",
        workingLocationProperties: {
          type: 'customLocation',
          customLocation: { label: "a custom location" }
        }
      }
      try {
        var event = Calendar.Events.insert(requiredArgs, calendarId);
        console.log('%s: %s', event.start.date, parseWorkingLocation(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
     * Reads the working location event with the given eventId.
     * See https://developers.google.com/calendar/api/v3/reference/events/get
     */
    function readWorkingLocationEvent() {
      const calendarId = 'primary';
    
      // Replace with a valid eventId.
      const eventId = "sample-event-id";
    
      try {
        const event = Calendar.Events.get(calendarId, eventId);
        console.log('%s: %s', event.start.date, parseWorkingLocation(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
     * Lists working location events for given dates.
     * See https://developers.google.com/calendar/api/v3/reference/events/list
     */
    function listWorkingLocationEvents() {
      const calendarId = 'primary'
    
      // Query parameters for the list request.
      const optionalArgs = {
          eventTypes: ['workingLocation'],
          showDeleted: false,
          singleEvents: true,
          timeMax: '2023-04-01T00:00:00+01:00',
          timeMin: '2023-03-27T00:00:00+01:00',
        }
      try {
      var response = Calendar.Events.list(calendarId, optionalArgs );
      response.items.forEach(event =>
          console.log('%s: %s', event.start.date, parseWorkingLocation(event)));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
     * Parses working location properties of an event into a string.
     * See https://developers.google.com/calendar/api/v3/reference/events#resource
     */
    function parseWorkingLocation(event) {
      if(event.eventType != "workingLocation") {
        throw new Error("'" +  event.summary +"' is not a working location event.");
      }
      const workingLocation = event.workingLocationProperties;
      if (workingLocation) {
        if (workingLocation.type === 'homeOffice') {
          return 'Home';
        }
        if (workingLocation.type === 'officeLocation') {
          return workingLocation.officeLocation.label;
        }
        if (workingLocation.type === 'customLocation') {
          return workingLocation.customLocation.label;
        }
      }
      return 'No Location';
    }
    

कोड सैंपल चलाएं

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