Events: insert

ينشئ حدثًا. جرِّب الخدمة الآن أو اطّلِع على مثال.

الطلب

طلب HTTP

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

المعلمات

اسم المعلَمة القيمة الوصف
مَعلمات المسار
calendarId string معرِّف التقويم. لاسترداد معرّفات التقويم، يجب استدعاء الطريقة calendarList.list. إذا أردت الوصول إلى التقويم الأساسي للمستخدم الذي سجّل الدخول حاليًا، استخدِم "primary" .
مَعلمات طلب البحث الاختيارية
conferenceDataVersion integer رقم نسخة بيانات مكالمة الفيديو المتوافقة مع عميل واجهة برمجة التطبيقات يفترض الإصدار 0 عدم توفّر بيانات مكالمة الفيديو، ويتجاهل بيانات مكالمة الفيديو في النص الأساسي للحدث. يتيح الإصدار 1 إمكانية نسخ conferenceData بالإضافة إلى إنشاء مكالمات فيديو جديدة باستخدام الحقل createRequest في للمؤتمرات. القيمة التلقائية هي 0. تتراوح القيم المقبولة بين 0 و1 بشكل شامل.
maxAttendees integer الحد الأقصى لعدد الضيوف المطلوب تضمينهم في الرد. فإذا كان عدد الحاضرين أكثر من العدد المحدد، فسيتم عرض المشارك فقط. اختياريّ.
sendNotifications boolean تمّ الإيقاف. يُرجى استخدام sendUpdates بدلاً من ذلك.

ما إذا كنت تريد إرسال إشعارات بشأن إنشاء الحدث الجديد. تجدر الإشارة إلى أنّه قد يستمر إرسال بعض الرسائل الإلكترونية حتى بعد ضبط القيمة على false. والقيمة التلقائية هي false.
sendUpdates string تحديد ما إذا كنت تريد إرسال إشعارات بشأن إنشاء الحدث الجديد يُرجى العِلم أنّه قد يستمر إرسال بعض الرسائل الإلكترونية. والقيمة التلقائية هي false.

في ما يلي القيم المقبولة:
  • "all": يتم إرسال الإشعارات إلى جميع المدعوين.
  • "externalOnly": يتم إرسال الإشعارات إلى المدعوين الذين لا يستخدمون "تقويم Google" فقط.
  • "none": لا يتم إرسال أي إشعارات.
supportsAttachments boolean ما إذا كان عميل واجهة برمجة التطبيقات يسمح بإرفاق الأحداث اختياريّ. وتكون القيمة التلقائية False.

التفويض

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

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

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

نص الطلب

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

اسم الموقع القيمة الوصف ملاحظات
الخصائص المطلوبة
end nested object وقت انتهاء الفعالية (الحصري) وبالنسبة إلى الحدث المتكرّر، يكون هذا هو وقت انتهاء الحدث الأول.
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" - قبول الضيف الدعوة.
قابل للكتابة
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، مثل "أوروبا/زيورخ"). هذا الحقل مطلوب للأحداث المتكرّرة ويحدِّد المنطقة الزمنية التي يتم فيها توسيع التكرار. بالنسبة إلى الأحداث الفردية، هذا الحقل اختياري ويشير إلى منطقة زمنية مخصّصة لبداية/نهاية الحدث. قابل للكتابة
eventType string تمثّل هذه السمة نوع الفعالية المحدّد. لا يمكن تعديل هذا الاسم بعد إنشاء الحدث. القيم المتاحة:
  • "birthday" - حدث خاص يستمر طوال اليوم ويكون تكراره سنويًا.
  • "default" - حدث عادي أو لم يتم تحديده بعد.
  • "focusTime" - حدث في وقت التركيز.
  • "fromGmail" - حدث من Gmail. لا يمكن إنشاء هذا النوع من الأحداث.
  • "outOfOffice" - حدث خارج المكتب.
  • "workingLocation" - حدث مكان العمل.
قابل للكتابة
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. قابل للكتابة
id string معرّف معتم للحدث عند إنشاء أحداث فردية أو متكررة جديدة، يمكنك تحديد أرقام تعريفها. يجب أن تتّبع المعرّفات المقدَّمة القواعد التالية:
  • الأحرف المسموح بها في المعرّف هي تلك المستخدمة في ترميز base32hex، أي الأحرف الصغيرة a-v والأرقام من 0 إلى 9.يُرجى الاطّلاع على الفقرة 3. 1.2 في RFC2938.
  • يجب أن يتراوح طول المعرّف بين 5 و1024 حرفًا
  • يجب أن يكون المعرّف فريدًا لكل تقويم.
نظرًا لطبيعة النظام الموزَّعة على مستوى العالم، لا يمكننا ضمان رصد حالات تعارض المعرِّفات عند إنشاء الحدث. للحد من خطر الاصطدامات، ننصحك باستخدام خوارزمية UUID، كما هو موضح في RFC4122.

في حال عدم تحديد رقم تعريف، سينشئه الخادم تلقائيًا.

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

قابل للكتابة
location string الموقع الجغرافي للفعالية كنص حر الشكل. اختياريّ. قابل للكتابة
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" - الحدث خاص. يتم توفير هذه القيمة لأسباب تتعلّق بالتوافق.
قابل للكتابة
workingLocationProperties nested object بيانات الأحداث في مكان العمل قابل للكتابة
workingLocationProperties.customLocation object في حال توفّر هذه السمة، تشير إلى أنّ المستخدم يعمل من موقع جغرافي مخصّص. قابل للكتابة
workingLocationProperties.customLocation.label string تصنيف إضافي اختياري لمعلومات إضافية. قابل للكتابة
workingLocationProperties.homeOffice any value في حال توفّر هذه السمة، تشير إلى أنّ المستخدم يعمل من المنزل. قابل للكتابة
workingLocationProperties.officeLocation object في حال توفّرها، تشير إلى أنّ المستخدم يعمل من مكتب. قابل للكتابة
workingLocationProperties.officeLocation.buildingId string معرّف مبنى اختياري. ويجب أن يشير ذلك إلى معرّف مبنى في قاعدة بيانات الموارد الخاصة بالمؤسسة. قابل للكتابة
workingLocationProperties.officeLocation.deskId string معرّف سطح مكتب اختياري. قابل للكتابة
workingLocationProperties.officeLocation.floorId string معرّف حد أدنى اختياري قابل للكتابة
workingLocationProperties.officeLocation.floorSectionId string معرّف قسم الطابق الاختياري. قابل للكتابة
workingLocationProperties.officeLocation.label string اسم المكتب الذي يتم عرضه في برامج "تقويم Google" على الويب والأجهزة الجوّالة. ننصحك بالإشارة إلى اسم مبنى في قاعدة بيانات "الموارد" الخاصة بالمؤسسة. قابل للكتابة
workingLocationProperties.type string تمثّل هذه السمة نوع مكان العمل. القيم المتاحة:
  • "homeOffice" - يعمل المستخدم في المنزل.
  • "officeLocation" - يعمل المستخدم من مكتب.
  • "customLocation" - عمل المستخدم من موقع مخصص.
تم تحديد أي تفاصيل في حقل فرعي للاسم المحدّد، ولكن قد يكون هذا الحقل غير متوفّر إذا كان فارغًا. ويتم تجاهل أي حقول أخرى.

هذا الحقل مطلوب عند إضافة خصائص مكان العمل.

قابل للكتابة

الرد

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

أمثلة

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

Java

تستخدم مكتبة برامج Java.

// Refer to the Java quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/java
// Change the scope to CalendarScopes.CALENDAR and delete any stored
// credentials.

Event event = new Event()
    .setSummary("Google I/O 2015")
    .setLocation("800 Howard St., San Francisco, CA 94103")
    .setDescription("A chance to hear more about Google's developer products.");

DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
EventDateTime start = new EventDateTime()
    .setDateTime(startDateTime)
    .setTimeZone("America/Los_Angeles");
event.setStart(start);

DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
EventDateTime end = new EventDateTime()
    .setDateTime(endDateTime)
    .setTimeZone("America/Los_Angeles");
event.setEnd(end);

String[] recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"};
event.setRecurrence(Arrays.asList(recurrence));

EventAttendee[] attendees = new EventAttendee[] {
    new EventAttendee().setEmail("lpage@example.com"),
    new EventAttendee().setEmail("sbrin@example.com"),
};
event.setAttendees(Arrays.asList(attendees));

EventReminder[] reminderOverrides = new EventReminder[] {
    new EventReminder().setMethod("email").setMinutes(24 * 60),
    new EventReminder().setMethod("popup").setMinutes(10),
};
Event.Reminders reminders = new Event.Reminders()
    .setUseDefault(false)
    .setOverrides(Arrays.asList(reminderOverrides));
event.setReminders(reminders);

String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink());

Python

تستخدم مكتبة برامج Python.

# Refer to the Python quickstart on how to setup the environment:
# https://developers.google.com/calendar/quickstart/python
# Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
# stored credentials.

event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': False,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
}

event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

PHP

لاستخدام مكتبة برامج PHP

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

Ruby

تستخدم مكتبة برامج Ruby.

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Google I/O 2015',
  location: '800 Howard St., San Francisco, CA 94103',
  description: 'A chance to hear more about Google\'s developer products.',
  start: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T09:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  end: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T17:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  recurrence: [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  attendees: [
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'lpage@example.com'
    ),
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'sbrin@example.com'
    )
  ],
  reminders: Google::Apis::CalendarV3::Event::Reminders.new(
    use_default: false,
    overrides: [
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'email',
        minutes: 24 * 60
      ),
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'popup',
        minutes: 10
      )
    ]
  )
)

result = client.insert_event('primary', event)
puts "Event created: #{result.html_link}"

NET.

لاستخدام مكتبة برامج .NET

// Refer to the .NET quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/dotnet
// Change the scope to CalendarService.Scope.Calendar and delete any stored
// credentials.

Event newEvent = new Event()
{
    Summary = "Google I/O 2015",
    Location = "800 Howard St., San Francisco, CA 94103",
    Description = "A chance to hear more about Google's developer products.",
    Start = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    End = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
    Attendees = new EventAttendee[] {
        new EventAttendee() { Email = "lpage@example.com" },
        new EventAttendee() { Email = "sbrin@example.com" },
    },
    Reminders = new Event.RemindersData()
    {
        UseDefault = false,
        Overrides = new EventReminder[] {
            new EventReminder() { Method = "email", Minutes = 24 * 60 },
            new EventReminder() { Method = "sms", Minutes = 10 },
        }
    }
};

String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);

البدء

تستخدم مكتبة برامج Go.

// Refer to the Go quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/go
// Change the scope to calendar.CalendarScope and delete any stored credentials.

event := &calendar.Event{
  Summary: "Google I/O 2015",
  Location: "800 Howard St., San Francisco, CA 94103",
  Description: "A chance to hear more about Google's developer products.",
  Start: &calendar.EventDateTime{
    DateTime: "2015-05-28T09:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  End: &calendar.EventDateTime{
    DateTime: "2015-05-28T17:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  Recurrence: []string{"RRULE:FREQ=DAILY;COUNT=2"},
  Attendees: []*calendar.EventAttendee{
    &calendar.EventAttendee{Email:"lpage@example.com"},
    &calendar.EventAttendee{Email:"sbrin@example.com"},
  },
}

calendarId := "primary"
event, err = srv.Events.Insert(calendarId, event).Do()
if err != nil {
  log.Fatalf("Unable to create event. %v\n", err)
}
fmt.Printf("Event created: %s\n", event.HtmlLink)

JavaScript

تستخدم مكتبة برامج JavaScript.

// Refer to the JavaScript quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/js
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Node.js

تستخدم مكتبة برامج Node.js.

// Refer to the Node.js quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/node
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
};

calendar.events.insert({
  auth: auth,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
  console.log('Event created: %s', event.htmlLink);
});

جرّب الآن

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