Nhập một sự kiện. Thao tác này dùng để thêm bản sao riêng tư của sự kiện hiện có vào lịch. Bạn chỉ có thể nhập những sự kiện có eventType
là default
.
Hành vi không dùng nữa: Nếu bạn nhập một sự kiện không phải default
, loại của sự kiện đó sẽ được thay đổi thành default
và mọi thuộc tính dành riêng cho từng loại sự kiện có thể đã bị loại bỏ.
Yêu cầu
Yêu cầu HTTP
POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events/import
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 | ||
conferenceDataVersion |
integer |
Số phiên bản của dữ liệu hội nghị truyền hình được ứng dụng API hỗ trợ. Phiên bản 0 giả định không hỗ trợ dữ liệu hội nghị và bỏ qua dữ liệu hội nghị trong phần nội dung của sự kiện. Phiên bản 1 cho phép hỗ trợ sao chép Hội nghị dữ liệu cũng như tạo hội nghị mới sử dụng trường createRequest của meetingData. Giá trị mặc định là 0.
Giá trị có thể chấp nhận là từ 0 đến 1 .
|
supportsAttachments |
boolean |
Liệu ứng dụng API có thực hiện thao tác có hỗ trợ tệp đính kèm sự kiện hay không. Không bắt buộc. Giá trị mặc định là False. |
Ủy quyền
Yêu cầu này cần có sự 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 |
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
Trong nội dung yêu cầu, hãy cung cấp tài nguyên Sự kiện với các thuộc tính sau:
Tên tài sản | Giá trị | Mô tả | Ghi chú |
---|---|---|---|
Thuộc tính bắt buộc | |||
end |
nested object |
Thời gian kết thúc (loại trừ) của sự kiện. Đối với một sự kiện định kỳ, đây là thời gian kết thúc của lần diễn ra đầu tiên. | |
iCalUID |
string |
Giá trị nhận dạng duy nhất của sự kiện như định nghĩa trong RFC5545. Mã này được dùng để xác định riêng biệt các sự kiện trên nhiều hệ thống lịch và phải được cung cấp khi nhập sự kiện qua phương thức nhập. Xin lưu ý rằng |
|
start |
nested object |
Thời gian bắt đầu (bao gồm) sự kiện. Đối với một sự kiện định kỳ, đây là thời gian bắt đầu sự kiện đầu tiên. | |
Thuộc tính không bắt buộc | |||
anyoneCanAddSelf |
boolean |
Liệu bất kỳ ai cũng có thể tự mời mình tham gia sự kiện hay không (không dùng nữa). Không bắt buộc. Giá trị mặc định là False. | có thể ghi |
attachments[].fileUrl |
string |
Đường liên kết URL đến tệp đính kèm. Để thêm tệp đính kèm trên Google Drive, hãy sử dụng định dạng tương tự như trong thuộc tính Bắt buộc khi thêm tệp đính kèm. |
có thể ghi |
attendees[] |
list |
Những người tham dự sự kiện. Xem hướng dẫn Sự kiện với người tham dự để biết thêm thông tin về cách lên lịch sự kiện với những người dùng lịch khác. Các tài khoản dịch vụ cần sử dụng tính năng uỷ quyền trên toàn miền để điền danh sách người tham dự. | có thể ghi |
attendees[].additionalGuests |
integer |
Số lượng khách bổ sung. Không bắt buộc. Giá trị mặc định là 0. | có thể ghi |
attendees[].comment |
string |
Nhận xét của người tham dự về phản hồi của họ. Không bắt buộc. | có thể ghi |
attendees[].displayName |
string |
Tên của người tham dự, nếu có. Không bắt buộc. | có thể ghi |
attendees[].email |
string |
Địa chỉ email của người tham dự (nếu có). Trường này phải xuất hiện khi thêm người tham dự. Đó phải là một địa chỉ email hợp lệ theo RFC5322. Bắt buộc khi thêm một người tham dự. |
có thể ghi |
attendees[].optional |
boolean |
Đây có phải là người tham dự không bắt buộc hay không. Không bắt buộc. Giá trị mặc định là False. | có thể ghi |
attendees[].resource |
boolean |
Liệu người tham dự có phải là một tài nguyên hay không. Chỉ có thể đặt khi người tham dự được thêm vào sự kiện lần đầu tiên. Các nội dung sửa đổi tiếp theo sẽ bị bỏ qua. Không bắt buộc. Giá trị mặc định là False. | có thể ghi |
attendees[].responseStatus |
string |
Trạng thái phản hồi của người tham dự. Các giá trị có thể có là:
|
có thể ghi |
attendeesOmitted |
boolean |
Liệu người tham dự có bị bỏ qua khỏi nội dung trình bày sự kiện hay không. Khi truy xuất một sự kiện, điều này có thể là do hạn chế do tham số truy vấn maxAttendee chỉ định. Khi cập nhật một sự kiện, bạn chỉ có thể dùng tính năng này để cập nhật câu trả lời của người tham gia. Không bắt buộc. Giá trị mặc định là False. |
có thể ghi |
colorId |
string |
Màu của sự kiện. Đây là mã nhận dạng tham chiếu đến một mục trong phần event của định nghĩa màu (xem điểm cuối màu). Không bắt buộc. |
có thể ghi |
conferenceData |
nested object |
Thông tin liên quan đến hội nghị truyền hình, chẳng hạn như thông tin chi tiết về một hội nghị truyền hình trên Google Meet. Để tạo thông tin chi tiết mới về hội nghị truyền hình, hãy sử dụng trường createRequest . Để duy trì các thay đổi, hãy nhớ đặt tham số yêu cầu conferenceDataVersion thành 1 cho tất cả các yêu cầu sửa đổi sự kiện. |
có thể ghi |
description |
string |
Mô tả về sự kiện. Có thể chứa HTML. Không bắt buộc. | có thể ghi |
end.date |
date |
Ngày, ở định dạng "yyyy-mm-dd", nếu đây là sự kiện cả ngày. | có thể ghi |
end.dateTime |
datetime |
Thời gian, dưới dạng một giá trị ngày-giờ kết hợp (được định dạng theo RFC3339). Bắt buộc phải có chênh lệch múi giờ trừ phi múi giờ được chỉ định rõ ràng trong timeZone . |
có thể ghi |
end.timeZone |
string |
Múi giờ mà giờ được chỉ định. (Định dạng thành tên của Cơ sở dữ liệu múi giờ IANA, ví dụ: "Châu Âu/Zurich".) Đối với các sự kiện định kỳ, trường này là bắt buộc và chỉ định múi giờ mà sự kiện lặp lại được mở rộng. Đối với các sự kiện đơn lẻ, trường này là không bắt buộc và biểu thị múi giờ tùy chỉnh cho thời điểm bắt đầu/kết thúc sự kiện. | có thể ghi |
extendedProperties.private |
object |
Các thuộc tính riêng tư đối với bản sao của sự kiện xuất hiện trên lịch này. | có thể ghi |
extendedProperties.shared |
object |
Những thuộc tính được chia sẻ giữa các bản sao của sự kiện trên trang của những người tham dự khác lịch. | có thể ghi |
focusTimeProperties |
nested object |
Dữ liệu sự kiện trong Thời gian cần tập trung. Được dùng nếu eventType là focusTime . |
có thể ghi |
gadget.display |
string |
Chế độ hiển thị của tiện ích. Không dùng nữa. Các giá trị có thể có là:
|
có thể ghi |
gadget.height |
integer |
Chiều cao của tiện ích tính bằng pixel. Chiều cao phải là số nguyên lớn hơn 0. Không bắt buộc. Không dùng nữa. | có thể ghi |
gadget.iconLink |
string |
URL biểu tượng của tiện ích. Giao thức URL phải là HTTPS. Không dùng nữa. | có thể ghi |
gadget.link |
string |
URL của tiện ích. Giao thức URL phải là HTTPS. Không dùng nữa. | có thể ghi |
gadget.preferences |
object |
Tùy chọn. | có thể ghi |
gadget.title |
string |
Tiêu đề của tiện ích. Không dùng nữa. | có thể ghi |
gadget.type |
string |
Loại tiện ích. Không dùng nữa. | có thể ghi |
gadget.width |
integer |
Chiều rộng của tiện ích tính bằng pixel. Chiều rộng phải là một số nguyên lớn hơn 0. Không bắt buộc. Không dùng nữa. | có thể ghi |
guestsCanInviteOthers |
boolean |
Liệu người tham dự không phải người tổ chức có thể mời người khác tham gia sự kiện hay không. Không bắt buộc. Giá trị mặc định là "True". | có thể ghi |
guestsCanModify |
boolean |
Liệu người tham dự không phải người tổ chức có thể sửa đổi sự kiện hay không. Không bắt buộc. Giá trị mặc định là False. | có thể ghi |
guestsCanSeeOtherGuests |
boolean |
Liệu người tham dự không phải người tổ chức có thể biết người tham dự sự kiện là ai không. Không bắt buộc. Giá trị mặc định là "True". | có thể ghi |
location |
string |
Vị trí địa lý của sự kiện dưới dạng văn bản tự do. Không bắt buộc. | có thể ghi |
organizer |
object |
Người tổ chức sự kiện. Nếu người tổ chức cũng là một người tham dự, thì điều này sẽ được thể hiện bằng một mục riêng trong attendees , trong đó trường organizer được đặt thành True. Để thay đổi người tổ chức, hãy sử dụng thao tác di chuyển. Chỉ có thể đọc, trừ phi nhập một sự kiện. |
có thể ghi |
organizer.displayName |
string |
Tên của người tổ chức, nếu có. | có thể ghi |
organizer.email |
string |
Địa chỉ email của người tổ chức, nếu có. Đó phải là một địa chỉ email hợp lệ theo RFC5322. | có thể ghi |
originalStartTime.date |
date |
Ngày, ở định dạng "yyyy-mm-dd", nếu đây là sự kiện cả ngày. | có thể ghi |
originalStartTime.dateTime |
datetime |
Thời gian, dưới dạng một giá trị ngày-giờ kết hợp (được định dạng theo RFC3339). Bắt buộc phải có chênh lệch múi giờ trừ phi múi giờ được chỉ định rõ ràng trong timeZone . |
có thể ghi |
originalStartTime.timeZone |
string |
Múi giờ mà giờ được chỉ định. (Định dạng thành tên của Cơ sở dữ liệu múi giờ IANA, ví dụ: "Châu Âu/Zurich".) Đối với các sự kiện định kỳ, trường này là bắt buộc và chỉ định múi giờ mà sự kiện lặp lại được mở rộng. Đối với các sự kiện đơn lẻ, trường này là không bắt buộc và biểu thị múi giờ tùy chỉnh cho thời điểm bắt đầu/kết thúc sự kiện. | có thể ghi |
outOfOfficeProperties |
nested object |
Dữ liệu sự kiện không có mặt tại văn phòng. Được dùng nếu eventType là outOfOffice . |
có thể ghi |
recurrence[] |
list |
Danh sách các dòng RQU, EXRules, RDATE và EXDATE cho một sự kiện định kỳ, như được chỉ định trong RFC5545. Lưu ý rằng các đường DTSTART và DTEND không được phép trong trường này; thời gian bắt đầu và kết thúc của sự kiện được chỉ định trong trường start và end . Trường này bị bỏ qua đối với các sự kiện đơn lẻ hoặc lần diễn ra sự kiện định kỳ. |
có thể ghi |
reminders.overrides[] |
list |
Nếu sự kiện không sử dụng lời nhắc mặc định, tuỳ chọn này sẽ liệt kê các lời nhắc dành riêng cho sự kiện hoặc nếu không được đặt, cho biết rằng chưa có lời nhắc nào được đặt cho sự kiện này. Số lượng lời nhắc ghi đè tối đa là 5. | có thể ghi |
reminders.overrides[].method |
string |
Phương thức mà lời nhắc này sử dụng. Các giá trị có thể có là:
Bắt buộc khi thêm lời nhắc. |
có thể ghi |
reminders.overrides[].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 |
reminders.useDefault |
boolean |
Liệu lời nhắc mặc định của lịch có áp dụng cho sự kiện hay không. | có thể ghi |
sequence |
integer |
Số thứ tự theo iLịch. | có thể ghi |
source.title |
string |
Tiêu đề của nguồn tin; ví dụ như tiêu đề của một trang web hoặc chủ đề email. | có thể ghi |
source.url |
string |
URL của nguồn trỏ đến một tài nguyên. Giao thức URL phải là HTTP hoặc HTTPS. | có thể ghi |
start.date |
date |
Ngày, ở định dạng "yyyy-mm-dd", nếu đây là sự kiện cả ngày. | có thể ghi |
start.dateTime |
datetime |
Thời gian, dưới dạng một giá trị ngày-giờ kết hợp (được định dạng theo RFC3339). Bắt buộc phải có chênh lệch múi giờ trừ phi múi giờ được chỉ định rõ ràng trong timeZone . |
có thể ghi |
start.timeZone |
string |
Múi giờ mà giờ được chỉ định. (Định dạng thành tên của Cơ sở dữ liệu múi giờ IANA, ví dụ: "Châu Âu/Zurich".) Đối với các sự kiện định kỳ, trường này là bắt buộc và chỉ định múi giờ mà sự kiện lặp lại được mở rộng. Đối với các sự kiện đơn lẻ, trường này là không bắt buộc và biểu thị múi giờ tùy chỉnh cho thời điểm bắt đầu/kết thúc sự kiện. | có thể ghi |
status |
string |
Trạng thái của sự kiện. Không bắt buộc. Các giá trị có thể có là:
|
có thể ghi |
summary |
string |
Tiêu đề sự kiện. | có thể ghi |
transparency |
string |
Liệu sự kiện có chặn thời gian trên lịch hay không. Không bắt buộc. Các giá trị có thể có là:
|
có thể ghi |
visibility |
string |
Chế độ hiển thị của sự kiện. Không bắt buộc. Các giá trị có thể có là:
|
có thể ghi |
Phản hồi
Nếu thành công, phương thức này sẽ trả về một tài nguyên Sự kiện trong nội dung phản hồi.
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.EventAttendee; import com.google.api.services.calendar.model.EventDateTime; import com.google.api.client.util.DateTime; import java.util.Date; // ... // Initialize Calendar service with valid OAuth credentials Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials) .setApplicationName("applicationName").build(); // Create and initialize a new event (could also retrieve an existing event) Event event = new Event(); event.setICalUID("originalUID"); Event.Organizer organizer = new Event.Organizer(); organizer.setEmail("organizerEmail"); organizer.setDisplayName("organizerDisplayName"); event.setOrganizer(organizer); ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>(); attendees.add(new EventAttendee().setEmail("attendeeEmail")); // ... event.setAttendees(attendees); Date startDate = new Date(); Date endDate = new Date(startDate.getTime() + 3600000); DateTime start = new DateTime(startDate, TimeZone.getTimeZone("UTC")); event.setStart(new EventDateTime().setDateTime(start)); DateTime end = new DateTime(endDate, TimeZone.getTimeZone("UTC")); event.setEnd(new EventDateTime().setDateTime(end)); // Import the event into a calendar Event importedEvent = service.events().calendarImport('primary', event).execute(); System.out.println(importedEvent.getId());
Python
Dùng thư viện ứng dụng Python.
event = { 'summary': 'Appointment', 'location': 'Somewhere', 'organizer': { 'email': 'organizerEmail', 'displayName': 'organizerDisplayName' }, 'start': { 'dateTime': '2011-06-03T10:00:00.000-07:00' }, 'end': { 'dateTime': '2011-06-03T10:25:00.000-07:00' }, 'attendees': [ { 'email': 'attendeeEmail', 'displayName': 'attendeeDisplayName', }, # ... ], 'iCalUID': 'originalUID' } imported_event = service.events().import_(calendarId='primary', body=event).execute() print imported_event['id']
PHP
Dùng thư viện ứng dụng PHP.
$event = new Google_Service_Calendar_Event(); $event->setSummary('Appointment'); $event->setLocation('Somewhere'); $start = new Google_Service_Calendar_EventDateTime(); $start->setDateTime('2011-06-03T10:00:00.000-07:00'); $event->setStart($start); $end = new Google_Service_Calendar_EventDateTime(); $end->setDateTime('2011-06-03T10:25:00.000-07:00'); $event->setEnd($end); $attendee1 = new Google_Service_Calendar_EventAttendee(); $attendee1->setEmail('attendeeEmail'); // ... $attendees = array($attendee1, // ..., ); $event->attendees = $attendees; $organizer = new Google_Service_Calendar_EventOrganizer(); $organizer->setEmail('organizerEmail'); $organizer->setDisplayName('organizerDisplayName'); $event->setOrganizer($organizer); $event->setICalUID('originalUID'); $importedEvent = $service->events->import('primary', $event); echo $importedEvent->getId();
Ruby
Dùng thư viện ứng dụng Ruby.
event = Google::Apis::CalendarV3::Event.new( summary: 'Appointment', location: 'Somewhere', organizer: { email: 'organizerEmail', display_name: 'organizerDisplayName' }, start: { date_time: '2011-06-03T10:00:00.000-07:00' }, end: { date_time: '2011-06-03T10:25:00.000-07:00' }, attendees: [ { email: 'attendeeEmail', display_name: 'attendeeDisplayName', }, # ... ], i_cal_uid: 'originalUID' ) result = client.import_event('primary', event) print result.id
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.