Events: list

किसी कैलेंडर में मौजूद इवेंट दिखाता है. इसे अभी आज़माएं या उदाहरण देखें.

अनुरोध

एचटीटीपी अनुरोध

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events

पैरामीटर

पैरामीटर का नाम मान ब्यौरा
पाथ पैरामीटर
calendarId string कैलेंडर आइडेंटिफ़ायर. कैलेंडर आईडी पाने के लिए, calendarList.list तरीके को कॉल करें. अगर आपको फ़िलहाल लॉग इन किए हुए उपयोगकर्ता का प्राइमरी कैलेंडर ऐक्सेस करना है, तो "primary" कीवर्ड का इस्तेमाल करें.
ज़रूरी नहीं क्वेरी पैरामीटर
alwaysIncludeEmail boolean अब इस्तेमाल नहीं किया जा सकता और इसे अनदेखा कर दिया जाता है.
eventTypes string लौटाए जाने वाले इवेंट टाइप. ज़रूरी नहीं. अलग-अलग तरह के इवेंट दिखाने के लिए, इस पैरामीटर को कई बार दोहराया जा सकता है. अगर यह सेट नहीं है, तो सभी तरह के इवेंट दिखाए जाते हैं.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "birthday": पूरे दिन चलने वाले खास इवेंट, जो साल में एक बार होते हैं.
  • "default": नियमित इवेंट.
  • "focusTime": फ़ोकस टाइम इवेंट.
  • "fromGmail": Gmail के इवेंट.
  • "outOfOffice": 'अभी मैं छुट्टी पर हूं' इवेंट.
  • "workingLocation": काम करने की जगह की जानकारी से जुड़े इवेंट.
iCalUID string जवाब में दिया जाने वाला, iCalendar फ़ॉर्मैट में इवेंट आईडी. ज़रूरी नहीं. अगर आपको किसी इवेंट को उसके iCalendar आईडी से खोजना है, तो इसका इस्तेमाल करें.
maxAttendees integer जवाब में शामिल किए जाने वाले मेहमानों की ज़्यादा से ज़्यादा संख्या. अगर मीटिंग में हिस्सा लेने वाले लोगों की संख्या, तय की गई संख्या से ज़्यादा है, तो सिर्फ़ मीटिंग में हिस्सा लेने वाले व्यक्ति की जानकारी दिखेगी. ज़रूरी नहीं.
maxResults integer एक नतीजे वाले पेज पर दिखाए जाने वाले इवेंट की ज़्यादा से ज़्यादा संख्या. खोज के नतीजों वाले पेज पर इवेंट की संख्या, इस वैल्यू से कम हो सकती है या कोई भी इवेंट नहीं हो सकता. भले ही, क्वेरी से मैच करने वाले ज़्यादा इवेंट हों. रिस्पॉन्स में मौजूद nextPageToken फ़ील्ड के खाली न होने पर, अधूरे पेजों का पता लगाया जा सकता है. डिफ़ॉल्ट रूप से, इसकी वैल्यू 250 इवेंट होती है. पेज का साइज़ 2,500 इवेंट से ज़्यादा नहीं हो सकता. ज़रूरी नहीं.
orderBy string नतीजे में दिखाए गए इवेंट का क्रम. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, कोई खास क्रम नहीं होता.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "startTime": शुरू होने की तारीख/समय के हिसाब से क्रम में लगाएं (बढ़ते क्रम में). यह सिर्फ़ तब उपलब्ध होता है, जब एक इवेंट के बारे में क्वेरी की जा रही हो. इसका मतलब है कि पैरामीटर singleEvents की वैल्यू 'सही' हो
  • "updated": आखिरी बदलाव के समय के हिसाब से क्रम में लगाएं (बढ़ते क्रम में).
pageToken string यह टोकन बताता है कि कौनसा नतीजा पेज दिखाना है. ज़रूरी नहीं.
privateExtendedProperty string propertyName=value के तौर पर बताई गई एक्सटेंडेड प्रॉपर्टी की शर्त. सिर्फ़ निजी प्रॉपर्टी से मेल खाता है. दी गई सभी शर्तों से मैच करने वाले इवेंट दिखाने के लिए, इस पैरामीटर को कई बार दोहराया जा सकता है.
q string इन फ़ील्ड में इन शब्दों से मैच होने वाले इवेंट ढूंढने के लिए, फ़्री टेक्स्ट में खोज के लिए शब्द:
  • summary
  • description
  • location
  • मेहमान का displayName
  • मेहमान का email
  • आयोजक का displayName
  • आयोजक का email
  • workingLocationProperties.officeLocation.buildingId
  • workingLocationProperties.officeLocation.deskId
  • workingLocationProperties.officeLocation.label
  • workingLocationProperties.customLocation.label

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

sharedExtendedProperty string propertyName=value के तौर पर बताई गई एक्सटेंडेड प्रॉपर्टी की शर्त. सिर्फ़ शेयर की गई प्रॉपर्टी से मैच करता है. दी गई सभी शर्तों से मैच करने वाले इवेंट दिखाने के लिए, इस पैरामीटर को कई बार दोहराया जा सकता है.
showDeleted boolean नतीजों में, मिटाए गए इवेंट (status, "cancelled" के बराबर है) शामिल करने हैं या नहीं. अगर showDeleted और singleEvents, दोनों False हैं, तो बार-बार होने वाले इवेंट के रद्द किए गए इंस्टेंस (लेकिन बार-बार होने वाले इवेंट नहीं) अब भी शामिल किए जाएंगे. अगर showDeleted और singleEvents, दोनों True हैं, तो मिटाए गए इवेंट के सिर्फ़ एक इंस्टेंस दिखाए जाते हैं. हालांकि, बार-बार होने वाले इवेंट नहीं दिखाए जाते. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
showHiddenInvitations boolean नतीजों में छिपे हुए न्योते शामिल करने हैं या नहीं. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
singleEvents boolean बार-बार होने वाले इवेंट को इंस्टेंस में बड़ा करना है या नहीं. साथ ही, सिर्फ़ एक बार होने वाले इवेंट और बार-बार होने वाले इवेंट के इंस्टेंस दिखाने हैं, न कि बार-बार होने वाले इवेंट. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है.
syncToken string सूची के पिछले अनुरोध के नतीजों के आखिरी पेज पर दिखाए गए nextSyncToken फ़ील्ड से मिला टोकन. इससे, सूची के अनुरोध के नतीजे में सिर्फ़ वे एंट्री शामिल होती हैं जो तब से बदल गई हैं. सूची के पिछले अनुरोध के बाद मिटाए गए सभी इवेंट, नतीजों के सेट में हमेशा मौजूद रहेंगे. साथ ही, showDeleted को 'गलत' पर सेट करने की अनुमति नहीं है.
क्लाइंट स्टेटस की एक जैसी स्थिति बनाए रखने के लिए, nextSyncToken के साथ कई क्वेरी पैरामीटर का इस्तेमाल नहीं किया जा सकता.

ये हैं:
  • iCalUID
  • orderBy
  • privateExtendedProperty
  • q
  • sharedExtendedProperty
  • timeMin
  • timeMax
  • updatedMin
शुरुआती सिंक्रोनाइज़ेशन के दौरान इस्तेमाल किए गए सभी क्वेरी पैरामीटर, फिर से सिंक करने के दौरान भी एक जैसे होने चाहिए. ऐसा करने से, गड़बड़ी से जुड़ी समस्याओं से बचा जा सकता है. अगर syncToken की समयसीमा खत्म हो जाती है, तो सर्वर 410 GONE रिस्पॉन्स कोड के साथ जवाब देगा. इसके बाद, क्लाइंट को अपना स्टोरेज खाली करना चाहिए और बिना किसी syncToken के पूरा सिंक करना चाहिए.
इंक्रीमेंटल सिंक के बारे में ज़्यादा जानें.
ज़रूरी नहीं. डिफ़ॉल्ट रूप से, सभी एंट्री दिखाने का विकल्प चुना जाता है.
timeMax datetime इवेंट के शुरू होने के समय के लिए ऊपरी सीमा (सिर्फ़ एक्सक्लूज़िव), ताकि फ़िल्टर किया जा सके. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, मीटिंग शुरू होने के समय के हिसाब से फ़िल्टर नहीं किया जाता. यह RFC3339 टाइमस्टैंप होना चाहिए. साथ ही, इसमें टाइम ज़ोन ऑफ़सेट भी होना चाहिए. उदाहरण के लिए, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. मिलीसेकंड दिए जा सकते हैं, लेकिन इन्हें अनदेखा कर दिया जाता है. अगर timeMin सेट है, तो timeMax की वैल्यू timeMin से ज़्यादा होनी चाहिए.
timeMin datetime किसी इवेंट के खत्म होने के समय के लिए, निचला थ्रेशोल्ड (सिर्फ़ एक्सक्लूज़िव इवेंट के लिए). ज़रूरी नहीं. डिफ़ॉल्ट रूप से, खत्म होने के समय के हिसाब से फ़िल्टर नहीं किया जाता. यह RFC3339 टाइमस्टैंप होना चाहिए. साथ ही, इसमें टाइम ज़ोन ऑफ़सेट भी होना चाहिए. उदाहरण के लिए, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. मिलीसेकंड दिए जा सकते हैं, लेकिन इन्हें अनदेखा कर दिया जाता है. अगर timeMax सेट है, तो timeMin की वैल्यू timeMax से कम होनी चाहिए.
timeZone string जवाब में इस्तेमाल किया गया टाइम ज़ोन. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, कैलेंडर का टाइम ज़ोन लागू होता है.
updatedMin datetime किसी इवेंट में आखिरी बार बदलाव करने के समय (RFC3339 टाइमस्टैंप के तौर पर) के लिए निचला थ्रेशोल्ड, ताकि उससे फ़िल्टर किया जा सके. अगर इस समयावधि के बाद मिटाई गई एंट्री को शामिल करने के लिए कहा जाता है, तो showDeleted के बावजूद उन्हें हमेशा शामिल किया जाएगा. ज़रूरी नहीं. डिफ़ॉल्ट रूप से, पिछली बार बदलाव करने के समय के हिसाब से फ़िल्टर नहीं किया जाता.

अनुमति देना

इस अनुरोध में, इनमें से कम से कम एक स्कोप के साथ अनुमति देने की सुविधा है:

दायरा
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/calendar.events
https://www.googleapis.com/auth/calendar.app.created
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.events.owned
https://www.googleapis.com/auth/calendar.events.owned.readonly
https://www.googleapis.com/auth/calendar.events.public.readonly

ज़्यादा जानकारी के लिए, पुष्टि और अनुमति पेज देखें.

अनुरोध का मुख्य भाग

इस तरीके का इस्तेमाल करते समय, अनुरोध का मुख्य हिस्सा न दें.

जवाब

अगर एपीआई सही से जुड़ जाता है, तो यह तरीका इस स्ट्रक्चर के साथ रिस्पॉन्स बॉडी दिखाता है:

{
  "kind": "calendar#events",
  "etag": etag,
  "summary": string,
  "description": string,
  "updated": datetime,
  "timeZone": string,
  "accessRole": string,
  "defaultReminders": [
    {
      "method": string,
      "minutes": integer
    }
  ],
  "nextPageToken": string,
  "nextSyncToken": string,
  "items": [
    events Resource
  ]
}
प्रॉपर्टी का नाम मान ब्यौरा नोट
kind string कलेक्शन का टाइप ("calendar#events").
etag etag कलेक्शन का ETag.
summary string कैलेंडर का टाइटल. सिर्फ़ पढ़ने के लिए.
description string कैलेंडर की जानकारी. सिर्फ़ पढ़ने के लिए.
updated datetime कैलेंडर में पिछली बार बदलाव करने का समय (RFC3339 टाइमस्टैंप के तौर पर). सिर्फ़ पढ़ने के लिए.
timeZone string कैलेंडर का टाइम ज़ोन. सिर्फ़ पढ़ने के लिए.
accessRole string इस कैलेंडर के लिए, उपयोगकर्ता की ऐक्सेस भूमिका. सिर्फ़ पढ़ने के लिए. वैल्यू इस तरह की हो सकती हैं:
  • "none" - उपयोगकर्ता के पास कोई ऐक्सेस नहीं है.
  • "freeBusyReader" - उपयोगकर्ता के पास, उपलब्ध/व्यस्त होने की जानकारी का रीड ऐक्सेस है.
  • "reader" - उपयोगकर्ता के पास कैलेंडर का रीड ऐक्सेस है. निजी इवेंट, रीडर ऐक्सेस वाले उपयोगकर्ताओं को दिखेंगे. हालांकि, इवेंट की जानकारी नहीं दिखेगी.
  • "writer" - उपयोगकर्ता के पास कैलेंडर को पढ़ने और उसमें बदलाव करने का ऐक्सेस है. निजी इवेंट, लेखक के ऐक्सेस वाले उपयोगकर्ताओं को दिखेंगे. साथ ही, इवेंट की जानकारी भी दिखेगी.
  • "owner" - उपयोगकर्ता के पास कैलेंडर का मालिकाना हक है. इस भूमिका के पास, लेखक की भूमिका की सभी अनुमतियां होती हैं. साथ ही, एसीएल देखने और उनमें बदलाव करने की अतिरिक्त सुविधा भी होती है.
defaultReminders[] list पुष्टि किए गए उपयोगकर्ता के कैलेंडर में डिफ़ॉल्ट रिमाइंडर. ये रिमाइंडर, इस कैलेंडर के उन सभी इवेंट पर लागू होते हैं जो साफ़ तौर पर इन्हें बदल नहीं देते. इसका मतलब है कि जिन इवेंट के लिए reminders.useDefault को 'सही' पर सेट नहीं किया गया है.
defaultReminders[].method string इस रिमाइंडर के लिए इस्तेमाल किया गया तरीका. वैल्यू इस तरह की हो सकती हैं:
  • "email" - रिमाइंडर ईमेल से भेजे जाते हैं.
  • "popup" - रिमाइंडर, यूज़र इंटरफ़ेस (यूआई) पॉप-अप के ज़रिए भेजे जाते हैं.

रिमाइंडर जोड़ते समय ज़रूरी है.

लिखा जा सकता है
defaultReminders[].minutes integer इवेंट शुरू होने से कितने मिनट पहले रिमाइंडर ट्रिगर होना चाहिए. वैल्यू 0 से 40320 (मिनट में चार हफ़्ते) के बीच होनी चाहिए.

रिमाइंडर जोड़ते समय ज़रूरी है.

लिखा जा सकता है
nextPageToken string इस नतीजे के अगले पेज को ऐक्सेस करने के लिए इस्तेमाल किया जाने वाला टोकन. अगर कोई और नतीजा उपलब्ध नहीं है, तो इसे हटा दिया जाता है. ऐसे में, nextSyncToken दिया जाता है.
items[] list कैलेंडर पर मौजूद इवेंट की सूची.
nextSyncToken string यह टोकन, बाद में सिर्फ़ उन एंट्री को वापस पाने के लिए इस्तेमाल किया जाता है जो इस नतीजे के मिलने के बाद बदल गई हैं. अगर और नतीजे उपलब्ध हैं, तो इसे हटा दिया जाता है. ऐसे में, nextPageToken दिया जाता है.

उदाहरण

ध्यान दें: इस तरीके के लिए दिए गए कोड के उदाहरणों में इसके साथ काम करने वाली सभी प्रोग्रामिंग भाषाएं नहीं दिखाई गई हैं (इसके साथ काम करने वाली भाषाओं की सूची के लिए क्लाइंट लाइब्रेरी वाला पेज देखें).

Java

Java क्लाइंट लाइब्रेरी का इस्तेमाल करता है.

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.Events;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Iterate over the events in the specified calendar
String pageToken = null;
do {
  Events events = service.events().list('primary').setPageToken(pageToken).execute();
  List<Event> items = events.getItems();
  for (Event event : items) {
    System.out.println(event.getSummary());
  }
  pageToken = events.getNextPageToken();
} while (pageToken != null);

Python

Python क्लाइंट लाइब्रेरी का इस्तेमाल करता है.

page_token = None
while True:
  events = service.events().list(calendarId='primary', pageToken=page_token).execute()
  for event in events['items']:
    print event['summary']
  page_token = events.get('nextPageToken')
  if not page_token:
    break

PHP

PHP क्लाइंट लाइब्रेरी का इस्तेमाल करता है.

$events = $service->events->listEvents('primary');

while(true) {
  foreach ($events->getItems() as $event) {
    echo $event->getSummary();
  }
  $pageToken = $events->getNextPageToken();
  if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $events = $service->events->listEvents('primary', $optParams);
  } else {
    break;
  }
}

Ruby

Ruby क्लाइंट लाइब्रेरी का इस्तेमाल करता है.

page_token = nil
begin
  result = client.list_events('primary', page_token: page_token)
  result.items.each do |e|
    print e.summary + "\n"
  end
  if result.next_page_token != page_token
    page_token = result.next_page_token
  else
    page_token = nil
  end
end while !page_token.nil?

इसे आज़माएं!

लाइव डेटा पर इस तरीके को कॉल करने और रिस्पॉन्स देखने के लिए, नीचे दिए गए एपीआई एक्सप्लोरर का इस्तेमाल करें.