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

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

कैलेंडर

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

इवेंट

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

इवेंट के टाइप

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

  • एक इवेंट, किसी खास इवेंट को दिखाता है.
  • बार-बार होने वाला इवेंट, कई बार होने वाले इवेंट के बारे में बताता है.

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

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

आयोजक

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

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

प्राइमरी कैलेंडर और अन्य कैलेंडर

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

प्राथमिक कैलेंडर के अतिरिक्त, आप स्पष्ट रूप से कितनी भी संख्या में अन्य कैलेंडर; इन कैलेंडर में बदलाव किया जा सकता है, मिटाया जा सकता है, और उन्हें शेयर किया जा सकता है ट्रैक करने में मदद मिलती है.

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

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

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

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

कार्रवाई कैलेंडर 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).

बार-बार होने वाले इवेंट और इंस्टेंस के साथ काम करने के तरीके के उदाहरण: Google Calendar API यहां उपलब्ध है.

समय क्षेत्र

टाइम ज़ोन ऐसे इलाके के बारे में बताता है जो एक जैसा स्टैंडर्ड समय स्वीकार करता है. Google 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 फ़ील्ड का इस्तेमाल करें.

अगर आप चाहें, तो इवेंट के समय को यूटीसी में भी बताया जा सकता है:

  • यूटीसी फ़ॉर्मैट में समय की जानकारी दें: 2017-01-25T14:00:00Z या ज़ीरो ऑफ़सेट 2017-01-25T14:00:00+0000 का इस्तेमाल करें.

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

स्क्रीनशॉट का फ़्रैगमेंट, किसी इवेंट का टाइम ज़ोन दिखा रहा है

बार-बार होने वाले इवेंट का टाइम ज़ोन

बार-बार होने वाले इवेंट के लिए, हमेशा एक टाइमज़ोन दिया जाना चाहिए. इवेंट को बार-बार होने वाले इवेंट को बढ़ाने के लिए, इस आईडी को सेट करना ज़रूरी है.