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 رقم نسخة بيانات مكالمة الفيديو المتوافقة مع عميل واجهة برمجة التطبيقات يفترض الإصدار 0 عدم توفّر بيانات مكالمة الفيديو، ويتجاهل بيانات مكالمة الفيديو في النص الأساسي للحدث. يتيح الإصدار 1 إمكانية نسخ conferenceData بالإضافة إلى إنشاء مكالمات فيديو جديدة باستخدام الحقل createRequest في للمؤتمرات. القيمة التلقائية هي 0. تتراوح القيم المقبولة بين 0 و1 بشكل شامل.
supportsAttachments boolean ما إذا كان عميل واجهة برمجة التطبيقات يسمح بإرفاق الأحداث اختياريّ. وتكون القيمة التلقائية False.

التفويض

يتطلب هذا الطلب تفويضًا باستخدام نطاق واحد على الأقل من النطاقات التالية:

النطاق
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

لمزيد من المعلومات، يُرجى الاطّلاع على صفحة المصادقة والتفويض.

نص الطلب

في نص الطلب، قدِّم مورد الأحداث مع الخصائص التالية:

اسم الموقع القيمة الوصف ملاحظات
الخصائص المطلوبة
end nested object وقت انتهاء الفعالية (الحصري) وبالنسبة إلى الحدث المتكرّر، يكون هذا هو وقت انتهاء الحدث الأول.
iCalUID string المعرِّف الفريد للحدث على النحو المحدّد في RFC5545. ويتم استخدامه لتحديد الأحداث بشكلٍ فريد على مستوى أنظمة التقويم، ويجب تقديمه عند استيراد الأحداث من خلال طريقة import.

يُرجى العلم أنّ iCalUID وid غير متطابقَين ويجب تقديم أحدهما فقط في وقت إنشاء الحدث. ويتمثّل الاختلاف في دلالاتها في أنّه في الأحداث المتكرّرة، تكون لكل تكرارات حدث واحد id مختلفة، بينما تتشارك جميعها iCalUID نفسها. لاسترداد حدث باستخدام iCalUID، يمكنك استدعاء طريقةevents.list باستخدام مَعلمة iCalUID. لاسترداد حدث باستخدام id، يمكنك استدعاء طريقة events.get.

start nested object وقت بدء الحدث (شامل). وفي ما يتعلّق بحدث متكرّر، يكون هذا هو وقت بدء الحدث الأول.
الخصائص الاختيارية
anyoneCanAddSelf boolean ما إذا كان يمكن لأي شخص دعوة نفسه إلى الحدث (متوقف). اختياريّ. وتكون القيمة التلقائية False. قابل للكتابة
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 ما إذا كان هذا الحضور اختياري أم لا. اختياريّ. وتكون القيمة التلقائية False. قابل للكتابة
attendees[].resource boolean ما إذا كان الضيف مصدرًا. لا يمكن ضبط هذا الإعداد إلا عند إضافة الضيف إلى الحدث لأول مرة. ويتم تجاهل التعديلات اللاحقة. اختياريّ. وتكون القيمة التلقائية False. قابل للكتابة
attendees[].responseStatus string حالة ردّ الضيف القيم المتاحة:
  • "needsAction" - عدم ردّ الضيف على الدعوة (يُنصح بهذا الإجراء للأحداث الجديدة)
  • "declined" - رفض الضيف الدعوة.
  • "tentative" - إذا قبِل الضيف الدعوة بشكل مبدئي.
  • "accepted" - قبول الضيف الدعوة.
قابل للكتابة
attendeesOmitted boolean ما إذا كان قد تم استبعاد الضيوف من تمثيل الحدث. عند استرداد حدث، قد يرجع ذلك إلى قيود تحدّدها معلَمة طلب البحث maxAttendee. عند تحديث حدث، يمكن استخدام ذلك لتحديث رد المشارك فقط. اختياريّ. وتكون القيمة التلقائية False. قابل للكتابة
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 بيانات أحداث وقت التركيز يتم استخدامه إذا كانت قيمة السمة 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 ما إذا كان بإمكان الضيوف الآخرين غير المنظّم تعديل الحدث اختياريّ. وتكون القيمة التلقائية False. قابل للكتابة
guestsCanSeeOtherGuests boolean ما إذا كان بإمكان الضيوف الآخرين غير المنظّم الاطّلاع على هوية ضيوف الحدث اختياريّ. الإعداد الافتراضي هو True. قابل للكتابة
location string الموقع الجغرافي للفعالية كنص حر الشكل. اختياريّ. قابل للكتابة
organizer object منظِّم الحدث. إذا كان المنظِّم أيضًا أحد الضيوف، تتم الإشارة إلى ذلك من خلال إدخال منفصل في attendees مع ضبط الحقل organizer على "صحيح". لتغيير المنظِّم، يمكنك استخدام عملية النقل. للقراءة فقط، باستثناء عند استيراد حدث. قابل للكتابة
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 قائمة سطور Rالقواعد وEXالقواعد وRDATE وEXDATE لحدث متكرر كما هو موضح في RFC5545. تجدر الإشارة إلى أنّه لا يُسمح باستخدام الأسطر DTSTART وDTEND في هذا الحقل. يتم تحديد وقت بدء الحدث وانتهائه في الحقلين start وend. تم حذف هذا الحقل للأحداث الفردية أو مثيلات الأحداث المتكرّرة. قابل للكتابة
reminders.overrides[] list إذا كان الحدث لا يستخدم التذكيرات الافتراضية، فإن هذا يسرد التذكيرات الخاصة بالحدث، أو إذا لم يتم تعيينه، يشير إلى أنه لم يتم تعيين تذكيرات لهذا الحدث. الحد الأقصى لعدد تذكيرات الإلغاء هو 5. قابل للكتابة
reminders.overrides[].method string الطريقة المستخدمة في هذا التذكير القيم المتاحة:
  • "email" - يتم إرسال التذكيرات عبر البريد الإلكتروني.
  • "popup" - يتم إرسال التذكيرات عبر نافذة منبثقة لواجهة المستخدم.

مطلوب عند إضافة تذكير.

قابل للكتابة
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" - يتم إلغاء الحدث (حذفه). تعرض الطريقة list الأحداث الملغاة فقط عند المزامنة المتزايدة (عند تحديد syncToken أو updatedMin) أو إذا تم ضبط علامة showDeleted على true. تؤدي الطريقة get دائمًا إلى إرجاعها.

    تمثّل حالة الإلغاء حالتَين مختلفتَين استنادًا إلى نوع الحدث:

    1. تشير الاستثناءات التي تم إلغاؤها لحدث متكرّر لم يتم إلغاؤه إلى أنّه يجب عدم عرض هذا الحدث مرة أخرى للمستخدم. على العملاء تخزين هذه الأحداث طوال فترة الحدث الرئيسي المتكرر.

      يمكن ضمان تعبئة قيم للحقول id وrecurringEventId وoriginalStartTime فقط في الاستثناءات الملغاة. وقد تكون الحقول الأخرى فارغة.

    2. تمثل جميع الأحداث الملغاة الأخرى أحداثًا محذوفة. على العملاء إزالة النُسخ التي تمت مزامنتها محليًا. وستختفي هذه الأحداث المُلغاة في نهاية المطاف، لذا لا تعتمد على توفُّرها إلى أجل غير مسمى.

      يمكن فقط ضمان تعبئة الحقل id للأحداث المحذوفة.

    في تقويم المنظِّم، تستمر الأحداث الملغاة في الكشف عن تفاصيل الحدث (الملخص والموقع الجغرافي وما إلى ذلك) حتى يمكن استعادتها (إلغاء حذفها). وبالمثل، تواصل الأحداث التي تمت دعوة المستخدم إليها والتي أزالها يدويًا تقديم التفاصيل. ومع ذلك، لن تعرض طلبات المزامنة المتزايدة التي تم ضبط showDeleted على "خطأ" هذه التفاصيل فيها.

    إذا تم تغيير منظِّم الحدث (من خلال عملية نقل مثلاً) ولم يكن المنظّم الأصلي مدرَجًا في قائمة الضيوف، سيؤدي ذلك إلى ترك حدث مُلغى مع ضمان تعبئة حقل id فقط.

قابل للكتابة
summary string تمثل هذه الخاصية عنوان الفعالية. قابل للكتابة
transparency string ما إذا كان الحدث يحجب الوقت في التقويم اختياريّ. القيم المتاحة:
  • "opaque" - القيمة التلقائية. يحدد الحدث الوقت في التقويم. يعادل ذلك ضبط إظهار كـ على مشغول في واجهة مستخدم "تقويم Google".
  • "transparent" - لا يحدد الحدث وقتًا في التقويم. يعادل ذلك ضبط إظهار كـ على متاح في واجهة مستخدم "تقويم Google".
قابل للكتابة
visibility string مستوى رؤية الحدث. اختياريّ. القيم المتاحة:
  • "default" - استخدام مستوى الرؤية التلقائي للأحداث في التقويم. هذه هي القيمة الافتراضية.
  • "public" - الحدث عام وتفاصيل الحدث مرئية لجميع قراء التقويم.
  • "private" - يكون الحدث خاصًا ويمكن لضيوف الحدث فقط عرض تفاصيله.
  • "confidential" - الحدث خاص. يتم توفير هذه القيمة لأسباب تتعلّق بالتوافق.
قابل للكتابة

الرد

وفي حال نجاح الإجراء، سيتم عرض مورد الأحداث في نص الاستجابة.

أمثلة

ملاحظة: إنّ الأمثلة المرتبطة بالرموز والمتوفرة لهذه الطريقة لا تمثّل كل لغات البرمجة المتوافقة (يُرجى مراجعة صفحة مكتبات البرامج للاطّلاع على قائمة باللغات المتوافقة).

Java

تستخدم مكتبة برامج 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

تستخدم مكتبة برامج 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

لاستخدام مكتبة برامج 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

تستخدم مكتبة برامج 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

جرّب الآن

يمكنك استخدام "مستكشف واجهات برمجة التطبيقات" أدناه لطلب هذه الطريقة على البيانات المباشرة والاطّلاع على الردّ.