Events: insert

لإنشاء حدث. جرِّبه الآن أو اطّلِع على مثال.

الطلب

طلب HTTP

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

المَعلمات

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

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

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

التفويض

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

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

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

نص الطلب

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

اسم الموقع القيمة الوصف Notes
الخصائص المطلوبة
end nested object تمثّل هذه السمة وقت انتهاء الحدث (الحصري). بالنسبة إلى حدث متكرر، هذا هو وقت انتهاء الحدث الأول.
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" - قبل الضيف الدعوة.
قابل للكتابة
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 النوع المحدّد للحدث لا يمكن تعديل هذا الاسم بعد إنشاء الحدث. القيم المتاحة:
  • "default" - حدث عادي أو لم يتم تحديده بعد
  • "outOfOffice" - حدث خارج المكتب.
  • "focusTime": حدث لوقت التركيز
  • "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 ما إذا كان بإمكان الضيوف غير المنظِّم دعوة الآخرين إلى الحدث اختياريّ. والقيمة التلقائية هي "صحيح". قابل للكتابة
guestsCanModify boolean ما إذا كان بإمكان الضيوف غير المنظِّم تعديل الحدث اختياريّ. والقيمة التلقائية هي "خطأ". قابل للكتابة
guestsCanSeeOtherGuests boolean ما إذا كان بإمكان الضيوف، غير المنظِّم، معرفة الحاضرين في الحدث. اختياريّ. والقيمة التلقائية هي "صحيح". قابل للكتابة
id string معرّف مبهم للحدث عند إنشاء أحداث فردية أو متكرّرة جديدة، يمكنك تحديد أرقام تعريفها. يجب أن تلتزم المعرّفات المقدَّمة بالقواعد التالية:
  • الأحرف المسموح بها في المعرّف هي تلك المستخدَمة في ترميز base32hex، أي الأحرف الصغيرة a-v والأرقام من 0 إلى 9، راجِع الفقرة 3.1.2 في RFC2938.
  • يجب أن يتراوح طول المعرّف بين 5 و1,024 حرفًا.
  • يجب أن يكون المعرّف فريدًا لكل تقويم
نظرًا لطبيعة النظام الموزعة عالميًا، لا يمكننا ضمان الكشف عن تصادمات المعرِّفات في وقت إنشاء الحدث. للحدّ من خطر الاصطدامات، نقترح استخدام خوارزمية UUID معروفة (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 قائمة أسطر RRU وEXCODE و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 رقم التسلسل وفقًا لـ iالتقويم قابل للكتابة
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" - القيمة التلقائية يحظر الحدث وقتًا في التقويم. يعادل ذلك إعداد عرض كـ على مشغول في واجهة مستخدم التقويم.
  • "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);
});

تجربة

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