Events: import

یک رویداد را وارد می کند. این عملیات برای افزودن یک کپی خصوصی از یک رویداد موجود به یک تقویم استفاده می شود. فقط رویدادهایی با eventType default می‌توانند وارد شوند.

رفتار منسوخ شده: اگر یک رویداد غیر default وارد شود، نوع آن به default تغییر می‌کند و هر گونه ویژگی خاص نوع رویداد که ممکن است داشته باشد حذف می‌شود.

اکنون آن را امتحان کنید یا نمونه ای را ببینید .

درخواست

درخواست HTTP

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

مولفه های

نام پارامتر ارزش شرح
پارامترهای مسیر
calendarId string شناسه تقویم برای بازیابی شناسه های تقویم با روش calendarList.list تماس بگیرید. اگر می‌خواهید به تقویم اصلی کاربر وارد شده در حال حاضر دسترسی داشته باشید، از کلمه کلیدی " primary " استفاده کنید.
پارامترهای پرس و جو اختیاری
conferenceDataVersion integer شماره نسخه داده های کنفرانس که توسط سرویس گیرنده API پشتیبانی می شود. نسخه 0 هیچ پشتیبانی از داده های کنفرانس را فرض نمی کند و داده های کنفرانس را در بدنه رویداد نادیده می گیرد. نسخه 1 پشتیبانی از کپی ConferenceData و همچنین برای ایجاد کنفرانس های جدید با استفاده از فیلد createRequest کنفرانس دیتا را امکان پذیر می کند. مقدار پیش‌فرض 0 است. مقادیر قابل قبول 0 تا 1 هستند.
supportsAttachments boolean اینکه آیا سرویس گیرنده API در حال انجام عملیات از پیوست های رویداد پشتیبانی می کند یا خیر. اختیاری. حالت پیش فرض غلط است.

مجوز

این درخواست نیاز به مجوز با حداقل یکی از حوزه های زیر دارد:

محدوده
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

برای اطلاعات بیشتر، به صفحه احراز هویت و مجوز مراجعه کنید.

درخواست بدن

در بدنه درخواست، یک منبع رویدادها با ویژگی های زیر ارائه کنید:

نام ملک ارزش شرح یادداشت
خواص مورد نیاز
end nested object زمان پایان (انحصاری) رویداد. برای یک رویداد تکراری، این زمان پایان اولین نمونه است.
iCalUID string شناسه منحصر به فرد رویداد همانطور که در RFC5545 تعریف شده است. برای شناسایی منحصر به فرد رویدادها در سراسر سیستم های تقویم استفاده می شود و باید هنگام وارد کردن رویدادها از طریق روش واردات ارائه شود.

توجه داشته باشید که iCalUID و id یکسان نیستند و فقط یکی از آنها باید در زمان ایجاد رویداد ارائه شود. یک تفاوت در معناشناسی آنها این است که در رویدادهای تکرار شونده، همه رخدادهای یک رویداد دارای id های متفاوت هستند در حالی که همه آنها iCalUID یکسان دارند. برای بازیابی یک رویداد با استفاده از iCalUID آن، روش events.list را با استفاده از پارامتر iCalUID فراخوانی کنید. برای بازیابی یک رویداد با استفاده از id آن، متد events.get را فراخوانی کنید.

start nested object زمان (شامل) شروع رویداد. برای یک رویداد تکراری، این زمان شروع اولین نمونه است.
ویژگی های اختیاری
anyoneCanAddSelf boolean اینکه آیا هر کسی می تواند خود را به رویداد دعوت کند یا نه (منسوخ شده است). اختیاری. حالت پیش فرض غلط است. قابل نوشتن
attachments[]. fileUrl string لینک URL به پیوست.

برای افزودن پیوست‌های فایل Google Drive از همان قالبی که در ویژگی alternateLink منبع Files در Drive API استفاده می‌شود، استفاده کنید.

هنگام افزودن پیوست ضروری است.

قابل نوشتن
attendees[] list شرکت کنندگان در این رویداد. برای اطلاعات بیشتر در مورد زمان‌بندی رویدادها با سایر کاربران تقویم، راهنمای رویدادها با شرکت‌کنندگان را ببینید. حساب‌های سرویس باید از تفویض اختیار در دامنه دامنه برای پر کردن فهرست شرکت‌کنندگان استفاده کنند. قابل نوشتن
attendees[]. additionalGuests integer تعداد مهمانان اضافی اختیاری. پیش فرض 0 است. قابل نوشتن
attendees[]. comment string نظر پاسخ حاضرین. اختیاری. قابل نوشتن
attendees[]. displayName string نام شرکت کننده، در صورت وجود. اختیاری. قابل نوشتن
attendees[]. email string آدرس ایمیل شرکت کننده در صورت وجود. این فیلد باید هنگام اضافه کردن یک شرکت کننده وجود داشته باشد. این باید یک آدرس ایمیل معتبر مطابق با RFC5322 باشد.

هنگام اضافه کردن یک شرکت کننده الزامی است.

قابل نوشتن
attendees[]. optional boolean آیا این یک شرکت کننده اختیاری است. اختیاری. حالت پیش فرض غلط است. قابل نوشتن
attendees[]. resource boolean آیا شرکت کننده یک منبع است. فقط زمانی تنظیم می شود که شرکت کننده برای اولین بار به رویداد اضافه شود. اصلاحات بعدی نادیده گرفته می شود. اختیاری. حالت پیش فرض غلط است. قابل نوشتن
attendees[]. responseStatus string وضعیت پاسخ شرکت کنندگان مقادیر ممکن عبارتند از:
  • " needsAction " - شرکت کننده به دعوت نامه پاسخ نداده است (برای رویدادهای جدید توصیه می شود).
  • " declined " - شرکت کننده دعوت را رد کرده است.
  • " tentative " - شرکت کننده به طور آزمایشی دعوت را پذیرفته است.
  • " accepted " - شرکت کننده دعوت را پذیرفته است.
قابل نوشتن
attendeesOmitted boolean اینکه آیا شرکت کنندگان ممکن است از نمایندگی رویداد حذف شده باشند یا خیر. هنگام بازیابی یک رویداد، این ممکن است به دلیل محدودیت مشخص شده توسط پارامتر query maxAttendee باشد. هنگام به‌روزرسانی یک رویداد، می‌توان از این فقط برای به‌روزرسانی پاسخ شرکت‌کننده استفاده کرد. اختیاری. حالت پیش فرض غلط است. قابل نوشتن
colorId string رنگ رویداد. این یک شناسه است که به ورودی در بخش event تعریف رنگ ها اشاره دارد ( نقطه پایانی رنگ ها را ببینید). اختیاری. قابل نوشتن
conferenceData nested object اطلاعات مربوط به کنفرانس، مانند جزئیات کنفرانس Google Meet. برای ایجاد جزئیات کنفرانس جدید از قسمت createRequest استفاده کنید. برای تداوم تغییرات خود، به یاد داشته باشید که پارامتر درخواست conferenceDataVersion را برای همه درخواست‌های تغییر رویداد روی 1 تنظیم کنید. قابل نوشتن
description string شرح رویداد. می تواند حاوی HTML باشد. اختیاری. قابل نوشتن
end. date date اگر این یک رویداد تمام روز باشد، تاریخ، با فرمت "yyyy-mm-dd". قابل نوشتن
end. dateTime datetime زمان، به عنوان یک مقدار ترکیبی تاریخ-زمان (بر اساس RFC3339 قالب‌بندی شده است). یک افست منطقه زمانی مورد نیاز است مگر اینکه یک منطقه زمانی به صراحت در timeZone مشخص شده باشد. قابل نوشتن
end. timeZone string منطقه زمانی که زمان در آن مشخص شده است. (قالب بندی شده به عنوان نام پایگاه داده منطقه زمانی IANA، به عنوان مثال "اروپا/زوریخ".) برای رویدادهای تکرار شونده، این فیلد مورد نیاز است و منطقه زمانی را که در آن تکرار گسترش می یابد، مشخص می کند. برای رویدادهای تک این فیلد اختیاری است و یک منطقه زمانی سفارشی را برای شروع/پایان رویداد نشان می‌دهد. قابل نوشتن
extendedProperties. private object ویژگی هایی که برای کپی رویدادی که در این تقویم ظاهر می شود خصوصی هستند. قابل نوشتن
extendedProperties. shared object ویژگی هایی که بین نسخه هایی از رویداد در تقویم سایر شرکت کنندگان به اشتراک گذاشته می شود. قابل نوشتن
focusTimeProperties nested object داده‌های رویداد Focus Time. اگر eventType focusTime باشد استفاده می شود. قابل نوشتن
gadget. display string حالت نمایش گجت. منسوخ. مقادیر ممکن عبارتند از:
  • " icon " - ابزارک در کنار عنوان رویداد در نمای تقویم نمایش داده می شود.
  • " chip " - وقتی روی رویداد کلیک می شود، ابزار نمایش داده می شود.
قابل نوشتن
gadget. height integer ارتفاع این ابزار به پیکسل. ارتفاع باید یک عدد صحیح بزرگتر از 0 باشد. اختیاری است. منسوخ. قابل نوشتن
gadget. preferences object اولویت ها. قابل نوشتن
gadget. title string عنوان ابزار. منسوخ. قابل نوشتن
gadget. type string نوع گجت منسوخ. قابل نوشتن
gadget. width integer عرض ابزار به پیکسل. عرض باید یک عدد صحیح بزرگتر از 0 باشد. اختیاری است. منسوخ. قابل نوشتن
guestsCanInviteOthers boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند دیگران را به رویداد دعوت کنند. اختیاری. پیش فرض True است. قابل نوشتن
guestsCanModify boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند رویداد را تغییر دهند یا خیر. اختیاری. حالت پیش فرض غلط است. قابل نوشتن
guestsCanSeeOtherGuests boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند ببینند شرکت‌کنندگان رویداد چه کسانی هستند یا خیر. اختیاری. پیش فرض True است. قابل نوشتن
location string موقعیت جغرافیایی رویداد به عنوان متن آزاد. اختیاری. قابل نوشتن
organizer object برگزارکننده این رویداد. اگر سازمان‌دهنده نیز یک شرکت‌کننده باشد، با یک ورودی جداگانه در attendees با فیلد organizer روی True مشخص می‌شود. برای تغییر سازمان دهنده، از عملیات انتقال استفاده کنید. فقط خواندنی، به جز هنگام وارد کردن یک رویداد. قابل نوشتن
organizer. displayName string نام سازمان دهنده، در صورت موجود بودن. قابل نوشتن
organizer. email string آدرس ایمیل سازمان دهنده، در صورت وجود. این باید یک آدرس ایمیل معتبر مطابق با RFC5322 باشد. قابل نوشتن
originalStartTime. date date اگر این یک رویداد تمام روز باشد، تاریخ، با فرمت "yyyy-mm-dd". قابل نوشتن
originalStartTime. dateTime datetime زمان، به عنوان یک مقدار ترکیبی تاریخ-زمان (بر اساس RFC3339 قالب‌بندی شده است). یک افست منطقه زمانی مورد نیاز است مگر اینکه یک منطقه زمانی به صراحت در timeZone مشخص شده باشد. قابل نوشتن
originalStartTime. timeZone string منطقه زمانی که زمان در آن مشخص شده است. (قالب بندی شده به عنوان نام پایگاه داده منطقه زمانی IANA، به عنوان مثال "اروپا/زوریخ".) برای رویدادهای تکرار شونده، این فیلد مورد نیاز است و منطقه زمانی را که در آن تکرار گسترش می یابد، مشخص می کند. برای رویدادهای تک این فیلد اختیاری است و یک منطقه زمانی سفارشی را برای شروع/پایان رویداد نشان می‌دهد. قابل نوشتن
outOfOfficeProperties nested object داده های رویداد خارج از دفتر. اگر eventType outOfOffice باشد استفاده می شود. قابل نوشتن
recurrence[] list فهرست خطوط RRULE، EXRULE، RDATE و EXDATE برای یک رویداد تکرارشونده، همانطور که در RFC5545 مشخص شده است. توجه داشته باشید که خطوط DTSTART و DTEND در این قسمت مجاز نیستند. زمان شروع و پایان رویداد در قسمت های start و end مشخص شده است. این فیلد برای رویدادهای منفرد یا مواردی از رویدادهای تکرار شونده حذف شده است. قابل نوشتن
reminders. overrides[] list اگر رویداد از یادآورهای پیش‌فرض استفاده نمی‌کند، یادآوری‌های خاص رویداد را فهرست می‌کند، یا اگر تنظیم نشده باشد، نشان می‌دهد که هیچ یادآوری برای این رویداد تنظیم نشده است. حداکثر تعداد یادآورهای لغو 5 عدد است. قابل نوشتن
reminders.overrides[]. method string روش استفاده شده توسط این یادآوری. مقادیر ممکن عبارتند از:
  • " email " - یادآوری ها از طریق ایمیل ارسال می شوند.
  • " popup " - یادآوری ها از طریق یک پنجره بازشو UI ارسال می شوند.

هنگام افزودن یادآوری لازم است.

قابل نوشتن
reminders.overrides[]. minutes integer تعداد دقیقه‌های قبل از شروع رویداد که یادآور باید راه‌اندازی شود. مقادیر معتبر بین 0 تا 40320 (4 هفته در دقیقه) هستند.

هنگام افزودن یادآوری لازم است.

قابل نوشتن
reminders. useDefault boolean آیا یادآوری‌های پیش‌فرض تقویم برای رویداد اعمال می‌شود. قابل نوشتن
sequence integer شماره دنباله طبق iCalendar. قابل نوشتن
source. title string عنوان منبع؛ برای مثال عنوان یک صفحه وب یا موضوع ایمیل. قابل نوشتن
source. url string URL منبعی که به یک منبع اشاره می کند. طرح URL باید HTTP یا HTTPS باشد. قابل نوشتن
start. date date اگر این یک رویداد تمام روز باشد، تاریخ، با فرمت "yyyy-mm-dd". قابل نوشتن
start. dateTime datetime زمان، به عنوان یک مقدار ترکیبی تاریخ-زمان (بر اساس RFC3339 قالب‌بندی شده است). یک افست منطقه زمانی مورد نیاز است مگر اینکه یک منطقه زمانی به صراحت در timeZone مشخص شده باشد. قابل نوشتن
start. timeZone string منطقه زمانی که زمان در آن مشخص شده است. (قالب بندی شده به عنوان نام پایگاه داده منطقه زمانی IANA، به عنوان مثال "اروپا/زوریخ".) برای رویدادهای تکرار شونده، این فیلد مورد نیاز است و منطقه زمانی را که در آن تکرار گسترش می یابد، مشخص می کند. برای رویدادهای تک این فیلد اختیاری است و یک منطقه زمانی سفارشی را برای شروع/پایان رویداد نشان می‌دهد. قابل نوشتن
status string وضعیت رویداد. اختیاری. مقادیر ممکن عبارتند از:
  • " confirmed " - رویداد تایید شد. این وضعیت پیش فرض است.
  • " tentative " - این رویداد به طور آزمایشی تایید شده است.
  • " cancelled " - رویداد لغو شد (حذف شد). روش لیست رویدادهای لغو شده را فقط در همگام سازی افزایشی (زمانی که syncToken یا updatedMin مشخص شده است) برمی گرداند یا اگر پرچم showDeleted روی true تنظیم شده باشد. روش دریافت همیشه آنها را برمی گرداند.

    یک وضعیت لغو شده بسته به نوع رویداد، دو حالت مختلف را نشان می دهد:

    1. استثناهای لغو شده یک رویداد تکرارشونده لغو نشده نشان می دهد که این نمونه دیگر نباید به کاربر ارائه شود. مشتریان باید این رویدادها را برای طول عمر رویداد تکرار شونده والد ذخیره کنند.

      استثناهای لغو شده فقط دارای مقادیری برای فیلدهای id ، recurringEventId و originalStartTime هستند. ممکن است فیلدهای دیگر خالی باشند.

    2. همه رویدادهای لغو شده دیگر نشان دهنده رویدادهای حذف شده هستند. مشتریان باید نسخه‌های همگام‌سازی محلی خود را حذف کنند. چنین رویدادهای لغو شده در نهایت ناپدید می شوند، بنابراین به در دسترس بودن آنها به طور نامحدود اعتماد نکنید.

      رویدادهای حذف شده فقط برای پر شدن فیلد id تضمین می شود.

    در تقویم سازمان‌دهنده، رویدادهای لغو شده همچنان جزئیات رویداد (خلاصه، مکان و غیره) را نشان می‌دهند تا بتوان آنها را بازیابی کرد (حذف نشده). به طور مشابه، رویدادهایی که کاربر به آنها دعوت شده و آنها به صورت دستی حذف شده اند همچنان جزئیات را ارائه می دهند. با این حال، درخواست‌های همگام‌سازی افزایشی با تنظیم showDeleted روی false، این جزئیات را بر نمی‌گردانند.

    اگر رویدادی سازمان‌دهنده خود را تغییر دهد (مثلاً از طریق عملیات جابجایی ) و سازمان‌دهنده اصلی در لیست شرکت‌کنندگان نباشد، یک رویداد لغو شده را پشت سر می‌گذارد که در آن فقط فیلد id تضمین می‌شود که پر شود.

قابل نوشتن
summary string عنوان رویداد. قابل نوشتن
transparency string آیا رویداد زمان را در تقویم مسدود می کند یا خیر. اختیاری. مقادیر ممکن عبارتند از:
  • " opaque " - مقدار پیش فرض. این رویداد زمان را در تقویم مسدود می کند. این معادل تنظیم Show me as برای Busy در Calendar UI است.
  • " transparent " - رویداد زمان را در تقویم مسدود نمی کند. این معادل با تنظیم Show me as برای موجود در رابط کاربری تقویم است.
قابل نوشتن
visibility string قابل مشاهده بودن رویداد اختیاری. مقادیر ممکن عبارتند از:
  • " default " - از قابلیت مشاهده پیش‌فرض برای رویدادهای تقویم استفاده می‌کند. این مقدار پیش فرض است.
  • " public " - رویداد عمومی است و جزئیات رویداد برای همه خوانندگان تقویم قابل مشاهده است.
  • " private " - رویداد خصوصی است و فقط شرکت کنندگان رویداد می توانند جزئیات رویداد را مشاهده کنند.
  • " confidential " - رویداد خصوصی است. این مقدار به دلایل سازگاری ارائه شده است.
قابل نوشتن

واکنش

در صورت موفقیت آمیز بودن، این روش یک منبع رویدادها را در بدنه پاسخ باز می گرداند.

مثال ها

توجه: نمونه‌های کد موجود برای این روش همه زبان‌های برنامه‌نویسی پشتیبانی‌شده را نشان نمی‌دهند (برای فهرست زبان‌های پشتیبانی‌شده به صفحه کتابخانه‌های سرویس گیرنده مراجعه کنید).

جاوا

از کتابخانه سرویس گیرنده جاوا استفاده می کند.

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());

پایتون

از کتابخانه کلاینت پایتون استفاده می کند.

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

از کتابخانه مشتری 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 استفاده می کند.

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

آن را امتحان کنید!

از APIs Explorer زیر برای فراخوانی این روش در داده‌های زنده و دیدن پاسخ استفاده کنید.