Events: insert

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

الطلب

طلب HTTP

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

المعلمات

اسم المعلَمة القيمة الوصف
مَعلمات المسار
calendarId string معرّف التقويم لاسترداد أرقام تعريف التقاويم، يمكنك استدعاء الطريقة calendarList.list. إذا كنت تريد الوصول إلى التقويم الأساسي للمستخدم الذي سجّل الدخول حاليًا، استخدِم الكلمة الرئيسية "primary".
مَعلمات طلب البحث الاختيارية
conferenceDataVersion integer رقم إصدار بيانات المؤتمر المتوافقة مع برنامج تشغيل واجهة برمجة التطبيقات يفترض الإصدار 0 عدم توفّر بيانات المؤتمر ويتجاهل بيانات المؤتمر في نص الحدث. يتيح الإصدار 1 إمكانية نسخ ConferenceData بالإضافة إلى إنشاء مكالمات فيديو جديدة باستخدام حقل createRequest في conferenceData. القيمة التلقائية هي 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
https://www.googleapis.com/auth/calendar.app.created
https://www.googleapis.com/auth/calendar.events.owned

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

نص الطلب

في نص الطلب، قدِّم مرجع أحداث يتضمّن السمات التالية:

اسم السمة القيمة الوصف ملاحظات
السمات المطلوبة
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" - قبِل الحاضر الدعوة.
قابلة للكتابة
birthdayProperties nested object بيانات عيد الميلاد أو الحدث الخاص تُستخدَم إذا كان eventType يساوي "birthday". غير قابل للتغيير قابلة للكتابة
birthdayProperties.type string نوع عيد الميلاد أو الحدث الخاص القيم المحتمَلة هي:
  • "anniversary" - ذكرى سنوية غير عيد ميلاد تحتوي دائمًا على contact.
  • "birthday": حدث عيد ميلاد هذه هي القيمة الافتراضية.
  • "custom": تاريخ خاص يتم تحديد تصنيفه بشكل أكبر في حقل customTypeName. تحتوي دائمًا على contact.
  • "other" - تاريخ خاص لا يندرج ضمن الفئات الأخرى ولا يتضمّن تصنيفًا مخصّصًا. تحتوي دائمًا على contact.
  • "self": عيد ميلاد مالك التقويم. لا يمكن أن يكون لديك contact.
لا تتيح Calendar API إنشاء أحداث إلا من النوع "birthday". لا يمكن تغيير النوع بعد إنشاء الحدث.
قابلة للكتابة
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 قائمة بخطوط RRULE وEXRULE و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);
});

جرّب الآن

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