कैलेंंडर और इवेंट

इस गाइड में, कैलेंडर, इवेंट, और एक-दूसरे से उनके संबंध के बारे में बताया गया है.

कैलेंडर छापने की सेवा

कैलेंडर, खास इवेंट, जैसे कि खास जानकारी, डिफ़ॉल्ट समय क्षेत्र, जगह वगैरह का संग्रह होता है. हर कैलेंडर की पहचान एक आईडी से की जाती है, जो एक ईमेल पता होता है. कैलेंडर के एक से ज़्यादा मालिक हो सकते हैं.

इवेंट

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

इवेंट के टाइप

Google Calendar में, एक और बार-बार होने वाले इवेंट हो सकते हैं:

  • एक इवेंट, किसी यूनीक घटना के बारे में बताता है.
  • बार-बार होने वाले इवेंट से पता चलता है कि ये कई बार हुए हैं.

इवेंट टाइम किए गए या पूरे दिन के भी हो सकते हैं:

  • टाइम्ड इवेंट, दो खास पॉइंट के बीच होता है. टाइम किए गए इवेंट में start.dateTime और end.dateTime फ़ील्ड का इस्तेमाल यह बताने के लिए किया जाता है कि वे कब आते हैं.
  • पूरे दिन इवेंट पूरे दिन या लगातार कई दिनों तक चलने वाला होता है. पूरे दिन के इवेंट start.date और end.date फ़ील्ड का इस्तेमाल यह बताने के लिए करते हैं कि वे कब होते हैं. ध्यान दें कि पूरे दिन के इवेंट के लिए समय क्षेत्र फ़ील्ड का कोई महत्व नहीं है.

आयोजक

इवेंट में सिर्फ़ एक आयोजक होता है, जो ऐसा कैलेंडर होता है जिसमें इवेंट की मुख्य कॉपी होती है. इवेंट में एक से ज़्यादा हाज़िरी भी हो सकती हैं. आम तौर पर, एक मेहमान Google खाते में साइन इन किए हुए उपयोगकर्ता का मुख्य कैलेंडर होता है.

यहां दिया गया डायग्राम, कैलेंडर, इवेंट, और दूसरी मिलती-जुलती चीज़ों के बीच सैद्धांतिक संबंध दिखाता है:

मुख्य कैलेंडर और दूसरे कैलेंडर

मुख्य कैलेंडर, किसी खास उपयोगकर्ता खाते से जुड़ा खास तरह का कैलेंडर होता है. हर नए उपयोगकर्ता खाते के लिए यह कैलेंडर अपने-आप बनाया जाता है और उसका आईडी आम तौर पर उपयोगकर्ता के मुख्य ईमेल पते से मेल खाता है. जब तक खाता मौजूद रहता है, तब तक उपयोगकर्ता का मुख्य कैलेंडर न तो मिटाया जा सकता है और न ही उसका "मालिकाना हक" आपके पास होगा. हालांकि, इसे अब भी दूसरे उपयोगकर्ताओं के साथ शेयर किया जा सकता है.

प्राथमिक कैलेंडर के अलावा, आप साफ़ तौर से कई कैलेंडर बना सकते हैं; इन कैलेंडर को एक से ज़्यादा उपयोगकर्ताओं के बीच बदला जा सकता है, मिटाया जा सकता है, और शेयर किया जा सकता है.

कैलेंडर और कैलेंडर की सूची

कैलेंडर कलेक्शन सभी मौजूदा कैलेंडर को दिखाता है. इसका इस्तेमाल कैलेंडर बनाने और हटाने के लिए किया जा सकता है. आपके पास कैलेंडर के ऐक्सेस वाले सभी उपयोगकर्ताओं के बीच शेयर की गई ग्लोबल प्रॉपर्टी को वापस पाने या सेट करने का विकल्प होता है. उदाहरण के लिए, कैलेंडर का शीर्षक और डिफ़ॉल्ट समय क्षेत्र ग्लोबल प्रॉपर्टी होते हैं.

CalendarList, उन सभी कैलेंडर एंट्री का कलेक्शन है जिन्हें किसी उपयोगकर्ता ने अपनी सूची में जोड़ा है. इसे वेब यूआई के बाएं पैनल में दिखाया जाता है. आप इसका इस्तेमाल उपयोगकर्ता की सूची में मौजूदा कैलेंडर जोड़ने और हटाने के लिए कर सकते हैं. आप इसका उपयोग उपयोगकर्ता-विशिष्ट कैलेंडर प्रॉपर्टी के मान, जैसे कि डिफ़ॉल्ट रिमाइंडर, को पाने और सेट करने के लिए भी करते हैं. इसका एक और उदाहरण है, फ़ोरग्राउंड का रंग. ऐसा इसलिए, क्योंकि एक ही कैलेंडर के लिए, अलग-अलग उपयोगकर्ताओं के रंग अलग-अलग हो सकते हैं.

नीचे दी गई टेबल में दो कलेक्शन की कार्रवाइयों का मतलब बताया गया है:

कार्रवाई कैलेंडर छापने की सेवा कैलेंडर सूची
insert नया सेकंडरी कैलेंडर बनाता है. डिफ़ॉल्ट रूप से, यह कैलेंडर क्रिएटर की कैलेंडर सूची में भी जोड़ दिया जाता है. उपयोगकर्ता की सूची में पहले से मौजूद कैलेंडर को शामिल करता है.
delete दूसरे कैलेंडर को मिटा देता है. उपयोगकर्ता की सूची से कैलेंडर हटा देता है.
get कैलेंडर मेटाडेटा को फिर से लाता है, जैसे कि शीर्षक, समय क्षेत्र. मेटाडेटा को प्लस उपयोगकर्ता के हिसाब से बनाए गए पसंद के मुताबिक दिखाता है, जैसे कि रंग या रिमाइंडर बदलना.
patch/update कैलेंडर मेटाडेटा में बदलाव करता है. उपयोगकर्ता की खास कैलेंडर प्रॉपर्टी में बदलाव करता है.

बार-बार होने वाले इवेंट

कुछ इवेंट नियमित शेड्यूल से कई बार होते हैं. जैसे, हर हफ़्ते होने वाली मीटिंग, जन्मदिन, और छुट्टियां. शुरू और खत्म होने के अलग-अलग समय दिखाने के अलावा, बार-बार होने वाले ये इवेंट एक जैसे होते हैं.

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

बार-बार होने का नियम

बार-बार होने वाले इवेंट का शेड्यूल दो हिस्सों में तय किया जाता है:

  • इसके शुरुआती और आखिरी फ़ील्ड (जो पहली बार होने को परिभाषित करते हैं, जैसे कि यह सिर्फ़ एक अकेले इवेंट हो) और

  • इसका दोहराए जाने वाला फ़ील्ड (जो समय के साथ इवेंट को दोहराने का तरीका बताता है).

बार-बार होने वाले फ़ील्ड में एक या कई RRULE, RDATE या EXDATE प्रॉपर्टी वाली स्ट्रिंग होती हैं, जिन्हें आरएफ़सी 5545 में बताया गया है.

RRULE प्रॉपर्टी सबसे अहम होती है, क्योंकि इससे इवेंट को दोहराने का एक सामान्य नियम तय होता है. यह कई कॉम्पोनेंट से मिलकर बनता है. इनमें से कुछ सबमिशन इस तरह के हैं:

  • FREQ — वह फ़्रीक्वेंसी जिससे इवेंट दोहराया जाना है (जैसे कि DAILY या WEEKLY). ज़रूरी है.

  • INTERVAL — यह बताने के लिए FREQ के साथ काम करता है कि इवेंट को कितनी बार दोहराया जाना चाहिए. उदाहरण के लिए, FREQ=DAILY;INTERVAL=2 का मतलब दो दिन में एक बार होता है.

  • COUNT — इस इवेंट को कितनी बार दोहराया जाएगा.

  • UNTIL — तारीख या तारीख, जब तक इवेंट को दोहराया जाना चाहिए (इसमें ये दोनों भी शामिल हैं).

  • BYDAY — हफ़्ते के वे दिन जब इवेंट दोहराया जाना चाहिए (SU, MO, TU वगैरह). मिलते-जुलते दूसरे कॉम्पोनेंट में BYMONTH, BYYEARDAY, और BYHOUR शामिल हैं.

RDATE प्रॉपर्टी से इवेंट के होने की तारीख या समय के बारे में पता चलता है. उदाहरण के लिए, RDATE;VALUE=DATE:19970101,19970120. इसका इस्तेमाल, RRULE के अलावा अन्य गड़बड़ियां जोड़ने के लिए करें.

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 जून शामिल हैं:

    ...
    "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).

'कैलेंडर एपीआई' का इस्तेमाल करके, बार-बार होने वाले इवेंट और इंस्टेंस के साथ काम करने के तरीके जानने के लिए यहां जाएं.

समय क्षेत्र

समय क्षेत्र उस क्षेत्र के बारे में बताता है जो एक जैसा मानक समय देखता है. Calendar 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 में इवेंट समय भी बता सकते हैं:

  • यूटीसी में समय बताएं: 2017-01-25T14:00:00Z या शून्य ऑफ़सेट 2017-01-25T14:00:00+0000 का इस्तेमाल करें.

इन सभी मामलों में इवेंट के समय को अंदरूनी तौर पर दिखाने की सुविधा एक ही होती है. हालांकि, timeZone फ़ील्ड सेट करने से इवेंट में समय क्षेत्र जुड़ जाता है. ठीक वैसे ही, जैसे Calendar के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, इवेंट का समय क्षेत्र सेट होने पर:

स्क्रीनशॉट फ़्रैगमेंट किसी इवेंट पर समय क्षेत्र दिखा रहा है

इवेंट का बार-बार होने वाला समय क्षेत्र

बार-बार होने वाले इवेंट के लिए, समय क्षेत्र की जानकारी हमेशा देनी होगी. इवेंट दोहराए जाने की संख्या को बढ़ाने के लिए ज़रूरी है.