Events: insert

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

درخواست کنید

درخواست HTTP

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

پارامترها

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

ارسال اعلان‌هایی درباره ایجاد رویداد جدید. توجه داشته باشید که برخی از ایمیل‌ها ممکن است همچنان ارسال شوند حتی اگر مقدار را روی false تنظیم کنید. پیش فرض false است.
sendUpdates string ارسال اعلان‌هایی درباره ایجاد رویداد جدید. توجه داشته باشید که برخی از ایمیل‌ها ممکن است همچنان ارسال شوند. پیش فرض false است.

مقادیر قابل قبول عبارتند از:
  • " all ": اعلان ها برای همه مهمانان ارسال می شود.
  • " externalOnly ": اعلان‌ها فقط برای مهمانان غیر Google Calendar ارسال می‌شوند.
  • " none ": هیچ اعلانی ارسال نمی شود.
supportsAttachments boolean اینکه آیا سرویس گیرنده API در حال انجام عملیات از پیوست های رویداد پشتیبانی می کند یا خیر. اختیاری. پیش فرض نادرست است.

مجوز

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

دامنه
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

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

درخواست بدن

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

نام ملک ارزش توضیحات یادداشت ها
ویژگی های مورد نیاز
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 " - شرکت کننده دعوت را پذیرفته است.
قابل نوشتن
birthdayProperties nested object داده های تولد یا رویداد ویژه. اگر eventType "birthday" باشد استفاده می شود. تغییرناپذیر. قابل نوشتن
birthdayProperties. type string نوع تولد یا رویداد خاص. مقادیر ممکن عبارتند از:
  • "anniversary" - سالگردی غیر از تولد. همیشه contact دارد.
  • "birthday" - یک رویداد تولد. این مقدار پیش فرض است.
  • "custom" - تاریخ خاصی که برچسب آن بیشتر در قسمت customTypeName مشخص شده است. همیشه contact دارد.
  • "other" - تاریخ خاصی که در دسته های دیگر قرار نمی گیرد و دارای برچسب سفارشی نیست. همیشه contact دارد.
  • "self" - تولد خود صاحب تقویم. نمی توان contact داشت.
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 داده‌های رویداد Focus Time. اگر eventType focusTime باشد استفاده می شود. قابل نوشتن
gadget. display string حالت نمایش گجت. منسوخ شده است. مقادیر ممکن عبارتند از:
  • " icon " - ابزارک در کنار عنوان رویداد در نمای تقویم نمایش داده می شود.
  • " chip " - وقتی روی رویداد کلیک می شود، ابزار نمایش داده می شود.
قابل نوشتن
gadget. height integer ارتفاع این ابزار به پیکسل. ارتفاع باید یک عدد صحیح بزرگتر از 0 باشد. اختیاری است. منسوخ شده است. قابل نوشتن
gadget. preferences object ترجیحات قابل نوشتن
gadget. title string عنوان ابزار. منسوخ شده است. قابل نوشتن
gadget. type string نوع گجت منسوخ شده است. قابل نوشتن
gadget. width integer عرض ابزار به پیکسل. عرض باید یک عدد صحیح بزرگتر از 0 باشد. اختیاری است. منسوخ شده است. قابل نوشتن
guestsCanInviteOthers boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند دیگران را به رویداد دعوت کنند. اختیاری. پیش فرض True است. قابل نوشتن
guestsCanModify boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند رویداد را تغییر دهند یا خیر. اختیاری. پیش فرض نادرست است. قابل نوشتن
guestsCanSeeOtherGuests boolean آیا شرکت‌کنندگانی غیر از سازمان‌دهنده می‌توانند ببینند شرکت‌کنندگان رویداد چه کسانی هستند یا خیر. اختیاری. پیش فرض True است. قابل نوشتن
id string شناسه غیر شفاف رویداد. هنگام ایجاد رویدادهای جدید یا تکرار شونده، می توانید شناسه آنها را مشخص کنید. شناسه های ارائه شده باید از این قوانین پیروی کنند:
  • کاراکترهای مجاز در شناسه آنهایی هستند که در رمزگذاری base32hex استفاده می شوند، به عنوان مثال حروف کوچک av و ارقام 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 " - یادآوری ها از طریق یک پنجره بازشو UI ارسال می شوند.

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

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

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

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

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

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

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

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

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

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

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

قابل نوشتن
summary string عنوان رویداد. قابل نوشتن
transparency string آیا رویداد زمان را در تقویم مسدود می کند یا خیر. اختیاری. مقادیر ممکن عبارتند از:
  • " opaque " - مقدار پیش فرض. این رویداد زمان را در تقویم مسدود می کند. این معادل تنظیم Show me as برای Busy در Calendar UI است.
  • " transparent " - رویداد زمان را در تقویم مسدود نمی کند. این معادل با تنظیم Show me as برای موجود در رابط کاربری تقویم است.
قابل نوشتن
visibility string قابل مشاهده بودن رویداد اختیاری. مقادیر ممکن عبارتند از:
  • " default " - از قابلیت مشاهده پیش‌فرض برای رویدادهای تقویم استفاده می‌کند. این مقدار پیش فرض است.
  • " public " - رویداد عمومی است و جزئیات رویداد برای همه خوانندگان تقویم قابل مشاهده است.
  • " private " - رویداد خصوصی است و فقط شرکت کنندگان رویداد می توانند جزئیات رویداد را مشاهده کنند.
  • " confidential " - رویداد خصوصی است. این مقدار به دلایل سازگاری ارائه شده است.
قابل نوشتن
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 نام دفتری که در Calendar Web and Mobile Clients نمایش داده می شود. توصیه می کنیم نام ساختمان را در پایگاه داده منابع سازمان ذکر کنید. قابل نوشتن
workingLocationProperties. type string نوع محل کار مقادیر ممکن عبارتند از:
  • " homeOffice " - کاربر در خانه کار می کند.
  • " officeLocation " - کاربر از یک دفتر کار می کند.
  • " customLocation " - کاربر از یک مکان سفارشی کار می کند.
هر گونه جزئیات در قسمت فرعی نام مشخص شده مشخص شده است، اما اگر خالی باشد ممکن است این فیلد وجود نداشته باشد. هر فیلد دیگری نادیده گرفته می شود.

هنگام افزودن ویژگی های محل کار مورد نیاز است.

قابل نوشتن

پاسخ

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

نمونه ها

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

جاوا

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

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

پایتون

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

# 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 استفاده می کند.

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}"

دات نت

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

// 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)

جاوا اسکریپت

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

// 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);
});

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

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