Events: list

Trả về các sự kiện trên lịch được 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

Thông số

Tên thông số Giá trị Mô tả
Thông 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 vào lịch chính của người dùng hiện đã đăng nhập, hãy sử dụng từ khoá "primary".
Thông số truy vấn không bắt buộc
alwaysIncludeEmail boolean Ngừng sử dụng 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 không được đặt, sẽ trả về tất cả các loại sự kiện.

Các giá trị được chấp nhận là:
  • "birthday": Các sự kiện đặc biệt diễn ra cả ngày và lặp lại hằng năm.
  • "default": Sự kiện định kỳ.
  • "focusTime": Sự kiện thời gian 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 vị trí làm việc.
iCalUID string Chỉ định mã sự kiện ở định dạng iCalendar để cung cấp trong phản hồi. Không bắt buộc. Sử dụng thuộc tính này nếu bạn muốn tìm một sự kiện theo mã iCalendar của sự kiện đó.
maxAttendees integer Số lượng người tham dự tối đa cần đưa vào nội dung phản hồi. Nếu số người tham dự vượt quá số lượng 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. Bạn có thể phát hiện các trang chưa hoàn chỉnh bằng trường nextPageToken không trống trong phản hồi. Theo mặc định, giá trị này 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. Giá trị mặc định là một 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). Bạn chỉ có thể sử dụng tính năng này khi truy vấn một sự kiện (tức là tham số singleEvents là 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ả cần trả về. Không bắt buộc.
privateExtendedProperty string Quy tắc ràng buộc thuộc tính mở rộng được chỉ định là propertyName=value. Chỉ khớp với các tài sản riêng tư. Thông số này có thể được lặp lại nhiều lần để trả về các sự kiện khớp với tất cả các quy tắc ràng buộc đã cho.
q string Cụm từ tìm kiếm dạng văn bản tự do để tìm những 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ị của các sự kiện về vị trí làm việc, thời gian nghỉ phép và thời gian tập trung. Ví dụ: khi tìm kiếm "Office" (Văn phòng) hoặc "Bureau" (Cục), bạn sẽ nhận được các sự kiện vị trí làm việc thuộc loại officeLocation, còn khi tìm kiếm "Out of office" (Vắng mặt) hoặc "Abwesend" (Vắng mặt), bạn sẽ nhận được các sự kiện vắng mặt. 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ỉ khớp với các thuộc tính được chia sẻ. Thông số này có thể được lặp lại nhiều lần để trả về các sự kiện khớp với tất cả các quy tắc ràng buộc đã cho.
showDeleted boolean Liệu có đưa các sự kiện đã xoá (có status bằng "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 cả showDeletedsingleEvents đều là True, thì hệ thống sẽ chỉ trả về các bản sao đơn lẻ của sự kiện đã xoá (nhưng không phải sự kiện định kỳ cơ bản). Không bắt buộc. Giá trị mặc định là False.
showHiddenInvitations boolean Liệu có đưa lời mời ẩn vào 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 và phiên bản của sự kiện định kỳ, chứ không phải chính sự kiện định kỳ cơ bản. Không bắt buộc. Giá trị mặc định là False.
syncToken string Mã thông báo lấy được từ trường nextSyncToken được trả về trên trang kết quả cuối cùng của yêu cầu danh sách trước đó. Điều này khiến 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ừ đó. Tất cả sự kiện đã xoá kể từ yêu cầu danh sách trước đó sẽ luôn nằm trong tập hợp kết quả và bạn không được đặ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 thông số truy vấn khác phải giống như khi đồ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ề tính năng đồng bộ hoá tăng dần.
Không bắt buộc. Chế độ mặc định là trả về tất 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ó độ lệch múi giờ bắt buộc, ví dụ: 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Bạn có thể cung cấp mili giây nhưng hệ thống sẽ bỏ qua. Nếu bạn đặt timeMin, timeMax phải lớn hơn timeMin.
timeMin datetime Giới hạn dưới (không bao gồm) cho thời gian kết thúc của sự kiện để lọc. Không bắt buộc. Chế độ 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ó độ lệch múi giờ bắt buộc, ví dụ: 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Bạn có thể cung cấp mili giây nhưng hệ thống sẽ bỏ qua. Nếu bạn đặt timeMax, 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. Khi được chỉ định, các mục đã 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

Khô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ề một phần nội dung phản hồi có cấu trúc 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 của 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 gần đây nhất của lịch (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ể sử dụng 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. Sự kiện riêng tư sẽ xuất hiện với những người dùng có quyền đọc, 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 vào lịch. Sự kiện riêng tư sẽ xuất hiện với những người dùng có quyền truy cập người viết và họ sẽ thấy được thông tin chi tiết về sự kiện.
  • "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 ghi, đồng thời có thêm khả năng xem và thao tác với 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 tất cả các sự kiện trên lịch này không ghi đè rõ ràng các sự kiện đó (tức là không đặ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.

writable
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. 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.

writable
nextPageToken string Mã thông báo dùng để truy cập vào trang tiếp theo của kết quả này. 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ề. Bỏ qua nếu có thêm kết quả, trong trường hợp này, 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

Sử 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

Sử 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ử!

Sử dụng 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.