Events: list

Trả về các sự kiện trên lịch đã chỉ định. Thử ngay hoặc xem ví dụ.

Yêu cầu

Yêu cầu HTTP

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

Tham số

Tên thông số Giá trị Mô tả
Tham số đường dẫn
calendarId string Giá trị nhận dạng lịch. Để truy xuất mã lịch, hãy gọi phương thức calendarList.list. Nếu bạn muốn truy cập lịch chính của người dùng hiện đang đăng nhập, hãy sử dụng "primary" từ khoá.
Tham số truy vấn không bắt buộc
alwaysIncludeEmail boolean Không được dùng nữa và bị bỏ qua.
eventTypes string Loại sự kiện cần trả về. Không bắt buộc. Bạn có thể lặp lại thông số này nhiều lần để trả về các sự kiện thuộc nhiều loại. Nếu bạn không đặt chính sách này thì hệ thống sẽ trả về tất cả các loại sự kiện.

Các giá trị được chấp nhận là:
  • "default": Sự kiện định kỳ.
  • "focusTime": Sự kiện thời gian cần tập trung.
  • "fromGmail": Sự kiện từ Gmail.
  • "outOfOffice": Sự kiện không có mặt tại văn phòng.
  • "workingLocation": Sự kiện tại địa điểm làm việc.
iCalUID string Chỉ định một mã sự kiện ở định dạng icalendar sẽ được cung cấp trong câu trả lời. Không bắt buộc. Sử dụng tùy chọn này nếu bạn muốn tìm kiếm sự kiện theo ID iLịch của sự kiện đó.
maxAttendees integer Số người tham dự tối đa được đưa vào câu trả lời. Nếu số người tham dự vượt quá số người tham dự đã chỉ định thì chỉ có người tham gia đó mới được trả về. Không bắt buộc.
maxResults integer Số sự kiện tối đa được trả về trên một trang kết quả. Số lượng sự kiện trên trang kết quả có thể ít hơn giá trị này hoặc không có sự kiện nào, ngay cả khi có nhiều sự kiện hơn phù hợp với truy vấn. Trường nextPageToken không trống trong phản hồi có thể phát hiện các trang không hoàn chỉnh. Theo mặc định, giá trị là 250 sự kiện. Kích thước trang không được lớn hơn 2500 sự kiện. Không bắt buộc.
orderBy string Thứ tự của các sự kiện được trả về trong kết quả. Không bắt buộc. Tùy chọn mặc định là thứ tự ổn định, không xác định.

Các giá trị được chấp nhận là:
  • "startTime": Sắp xếp theo ngày/giờ bắt đầu (tăng dần). Tính năng này chỉ dùng được khi truy vấn các sự kiện đơn lẻ (tức là tham số singleEvents có giá trị True)
  • "updated": Sắp xếp theo thời gian sửa đổi gần đây nhất (tăng dần).
pageToken string Mã thông báo chỉ định trang kết quả nào cần trả về. Không bắt buộc.
privateExtendedProperty string Giới hạn thuộc tính mở rộng được chỉ định là propertyName=value. Chỉ so khớp với các thuộc tính riêng tư. Tham số này có thể được lặp lại nhiều lần để trả về các sự kiện phù hợp với tất cả điều kiện ràng buộc nhất định.
q string Văn bản tự do tìm kiếm cụm từ để tìm sự kiện khớp với các cụm từ này trong các trường sau:
  • summary
  • description
  • location
  • displayName của người tham dự
  • email của người tham dự
  • displayName của người tổ chức
  • email của người tổ chức
  • workingLocationProperties.officeLocation.buildingId
  • workingLocationProperties.officeLocation.deskId
  • workingLocationProperties.officeLocation.label
  • workingLocationProperties.customLocation.label

Những cụm từ tìm kiếm này cũng so khớp các từ khoá được xác định trước với tất cả bản dịch tiêu đề hiển thị liên quan đến địa điểm làm việc, sự kiện không có mặt tại văn phòng và sự kiện thời gian cần tập trung. Ví dụ: tìm kiếm "Office" hoặc "Bureau" trả về các sự kiện tại địa điểm làm việc thuộc loại officeLocation, trong khi tìm kiếm "Không có mặt tại văn phòng" hoặc "Abwesend" trả về các sự kiện không có mặt tại văn phòng. Không bắt buộc.

sharedExtendedProperty string Giới hạn thuộc tính mở rộng được chỉ định là propertyName=value. Chỉ so khớp với các cơ sở lưu trú dùng chung. Tham số này có thể được lặp lại nhiều lần để trả về các sự kiện phù hợp với tất cả điều kiện ràng buộc nhất định.
showDeleted boolean Liệu có đưa các sự kiện đã xóa (với status tương đương với "cancelled") vào kết quả hay không. Các trường hợp đã huỷ của sự kiện định kỳ (nhưng không phải là sự kiện định kỳ cơ bản) vẫn sẽ được đưa vào nếu cả showDeletedsingleEvents đều là False. Nếu showDeletedsingleEvents đều là True, thì chỉ một phiên bản của sự kiện đã xóa (chứ không phải sự kiện lặp lại cơ bản) được trả về. Không bắt buộc. Giá trị mặc định là False.
showHiddenInvitations boolean Liệu có bao gồm lời mời ẩn trong kết quả hay không. Không bắt buộc. Giá trị mặc định là False.
singleEvents boolean Liệu có mở rộng sự kiện định kỳ thành các phiên bản và chỉ trả về các sự kiện một lần cũng như phiên bản của sự kiện định kỳ chứ không trả về chính các sự kiện lặp lại cơ bản. Không bắt buộc. Giá trị mặc định là False.
syncToken string Mã thông báo nhận được từ trường nextSyncToken được trả về trên trang cuối của kết quả của yêu cầu danh sách trước đó. Hàm này làm cho kết quả của yêu cầu danh sách này chỉ chứa các mục đã thay đổi kể từ thời điểm đó. Mọi sự kiện đã bị xoá do yêu cầu danh sách trước đó sẽ luôn nằm trong nhóm kết quả và không được phép đặt showDeleted thành False.
Có một số tham số truy vấn không thể được chỉ định cùng với nextSyncToken để đảm bảo tính nhất quán của trạng thái ứng dụng.

Các địa chỉ này là:
  • iCalUID
  • orderBy
  • privateExtendedProperty
  • q
  • sharedExtendedProperty
  • timeMin
  • timeMax
  • updatedMin
Tất cả các tham số truy vấn khác phải giống như tham số đồng bộ hoá ban đầu để tránh hành vi không xác định. Nếu syncToken hết hạn, máy chủ sẽ phản hồi bằng mã phản hồi 410 GONE và ứng dụng sẽ xoá bộ nhớ và thực hiện đồng bộ hoá đầy đủ mà không có syncToken nào.
Tìm hiểu thêm về quá trình đồng bộ hoá gia tăng.
Không bắt buộc. Lựa chọn mặc định là trả về tất cả các mục nhập.
timeMax datetime Giới hạn trên (loại trừ) cho thời gian bắt đầu của một sự kiện để lọc theo. Không bắt buộc. Lựa chọn mặc định là không lọc theo thời gian bắt đầu. Phải là dấu thời gian RFC3339 có chênh lệch múi giờ bắt buộc, ví dụ: 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Mili giây có thể được cung cấp nhưng sẽ bị bỏ qua. Nếu bạn đặt timeMin, timeMax phải lớn hơn timeMin.
timeMin datetime Giới hạn dưới (loại trừ) cho thời gian kết thúc của một sự kiện để lọc theo. Không bắt buộc. Lựa chọn mặc định là không lọc theo thời gian kết thúc. Phải là dấu thời gian RFC3339 có chênh lệch múi giờ bắt buộc, ví dụ: 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Mili giây có thể được cung cấp nhưng sẽ bị bỏ qua. Nếu bạn đặt timeMax, thì timeMin phải nhỏ hơn timeMax.
timeZone string Múi giờ dùng trong câu trả lời. Không bắt buộc. Mặc định là múi giờ của lịch.
updatedMin datetime Giới hạn dưới của thời gian sửa đổi gần đây nhất của một sự kiện (dưới dạng dấu thời gian RFC3339) để lọc theo. Khi được chỉ định, các mục nhập đã bị xoá kể từ thời điểm này sẽ luôn được đưa vào, bất kể showDeleted. Không bắt buộc. Lựa chọn mặc định không phải là lọc theo thời gian sửa đổi gần nhất.

Ủy quyền

Yêu cầu này cho phép uỷ quyền với ít nhất một trong các phạm vi sau:

Phạm vi
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

Để biết thêm thông tin, hãy xem trang xác thực và uỷ quyền.

Nội dung yêu cầu

Đừng cung cấp nội dung yêu cầu bằng phương thức này.

Phản hồi

Nếu thành công, phương thức này sẽ trả về nội dung phản hồi có cấu trúc như sau:

{
  "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
  ]
}
Tên tài sản Giá trị Mô tả Ghi chú
kind string Loại bộ sưu tập ("calendar#events").
etag etag ETag của bộ sưu tập.
summary string Tiêu đề của lịch. Chỉ có thể đọc.
description string Nội dung mô tả về lịch. Chỉ có thể đọc.
updated datetime Thời gian sửa đổi lịch gần đây nhất (dưới dạng dấu thời gian RFC3339). Chỉ có thể đọc.
timeZone string Múi giờ của lịch. Chỉ có thể đọc.
accessRole string Vai trò truy cập của người dùng đối với lịch này. Chỉ có thể đọc. Các giá trị có thể có là:
  • "none" - Người dùng không có quyền truy cập.
  • "freeBusyReader" - Người dùng có quyền đọc thông tin rảnh/bận.
  • "reader" – Người dùng có quyền đọc lịch. Các sự kiện riêng tư sẽ hiển thị với người dùng có quyền truy cập của độc giả, nhưng thông tin chi tiết về sự kiện sẽ bị ẩn.
  • "writer" – Người dùng có quyền đọc và ghi đối với lịch. Người dùng có quyền truy cập của người ghi sẽ thấy các sự kiện riêng tư và thông tin chi tiết về sự kiện sẽ hiển thị.
  • "owner" – Người dùng có quyền sở hữu lịch. Vai trò này có tất cả các quyền của vai trò người viết với khả năng bổ sung để xem và thao tác các ACL.
defaultReminders[] list Lời nhắc mặc định trên lịch cho người dùng đã xác thực. Những lời nhắc này áp dụng cho mọi sự kiện trên lịch này không ghi đè rõ ràng (tức là chưa đặt reminders.useDefault thành True).
defaultReminders[].method string Phương thức mà lời nhắc này sử dụng. Các giá trị có thể có là:
  • "email" – Lời nhắc được gửi qua email.
  • "popup" – Lời nhắc được gửi qua cửa sổ bật lên trên giao diện người dùng.

Bắt buộc khi thêm lời nhắc.

có thể ghi
defaultReminders[].minutes integer Số phút trước khi bắt đầu sự kiện mà lời nhắc sẽ kích hoạt. Các giá trị hợp lệ nằm trong khoảng từ 0 đến 40320 (4 tuần tính bằng phút).

Bắt buộc khi thêm lời nhắc.

có thể ghi
nextPageToken string Mã thông báo được dùng để truy cập vào trang tiếp theo của kết quả này. Bị bỏ qua nếu không có kết quả nào khác. Trong trường hợp này, nextSyncToken sẽ được cung cấp.
items[] list Danh sách sự kiện trên lịch.
nextSyncToken string Mã thông báo được sử dụng sau đó để chỉ truy xuất các mục đã thay đổi kể từ khi kết quả này được trả về. Được bỏ qua nếu có thêm kết quả. Trong trường hợp đó, nextPageToken sẽ được cung cấp.

Ví dụ

Lưu ý: Các đoạn mã mẫu của phương thức này không phải là ví dụ cho mọi ngôn ngữ lập trình được hỗ trợ (xem trang thông tin về các thư viện dùng cho ứng dụng để biết danh sách các ngôn ngữ được hỗ trợ).

Java

Dùng thư viện ứng dụng 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

Dùng thư viện ứng dụng 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

Dùng thư viện ứng dụng 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

Dùng thư viện ứng dụng 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?

Hãy dùng thử!

Hãy sử dụng APIs Explorer (Trình khám phá API) bên dưới để gọi phương thức này trên dữ liệu trực tiếp và xem phản hồi.