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 של conferenceData. ערך ברירת המחדל הוא 0. הערכים הקבילים הם 0 עד 1, כולל.
maxAttendees integer מספר המשתתפים המקסימלי שאפשר לכלול בתשובה. אם יש יותר ממספר הנוכחים שצוין, רק המשתתף יוחזר. זה שינוי אופציונלי.
sendNotifications boolean הוצא משימוש. יש להשתמש במקום זאת ב-sendUpdates.

האם לשלוח התראות על יצירת האירוע החדש. חשוב לדעת שחלק מהאימיילים עדיין עשויים להישלח גם אם תגדירו את הערך ל-false. ערך ברירת המחדל הוא false.
sendUpdates string האם לשלוח התראות על יצירת האירוע החדש. חשוב לזכור שחלק מהאימיילים עדיין עשויים להישלח. ערך ברירת המחדל הוא false.

הערכים הקבילים הם:
  • 'all': ההתראות נשלחות לכל המשתתפים.
  • 'externalOnly': ההתראות נשלחות רק למשתתפים שלא משתמשים ביומן Google.
  • "none": לא נשלחות התראות.
supportsAttachments boolean האם לקוח ה-API שמבצע את הפעולה תומך בקבצים מצורפים לאירועים. זה שינוי אופציונלי. ברירת המחדל היא 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' – המשתתף או המשתתפת אישרו את ההזמנה.
לכתיבה
birthdayProperties nested object נתונים של יום הולדת או אירוע מיוחד. משמש אם הערך של eventType הוא "birthday". קבוע. ניתן לכתיבה
birthdayProperties.type string סוג יום ההולדת או האירוע המיוחד. הערכים האפשריים הם:
  • "anniversary" – יום הולדת של אירוע אחר. תמיד יש contact.
  • "birthday" – אירוע יום הולדת. זהו ערך ברירת המחדל.
  • "custom" – תאריך מיוחד שהתווית שלו מצוינה בשדה customTypeName. תמיד יש contact.
  • "other" – תאריך מיוחד שלא שייך לאף אחת מהקטגוריות האחרות ואין לו תווית מותאמת אישית. תמיד יש contact.
  • "self" – יום ההולדת של הבעלים של היומן. לא יכול להיות contact.
ה-API של היומן תומך רק ביצירת אירועים מסוג "birthday". לא ניתן לשנות את הסוג אחרי שיוצרים את האירוע.
לכתיבה
colorId string הצבע של האירוע. זהו מזהה שמתייחס לרשומה בקטע event של הגדרת הצבעים (ראו נקודת הקצה colors). זה שינוי אופציונלי. ניתן לכתיבה
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 Time Zone Database, למשל 'Europe/Zurich'). בשדות של אירועים חוזרים, השדה הזה נדרש ומציין את אזור הזמן שבו התדירות מורחבת. לאירועים בודדים, השדה הזה הוא אופציונלי ומציין אזור זמן מותאם אישית להתחלה או לסיום של האירוע. ניתן לכתיבה
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 ל-1,024 תווים
  • המזהה צריך להיות ייחודי בכל יומן
בגלל אופי המערכת המבוזר בכל העולם, אנחנו לא יכולים להבטיח שהתנגשויות בין מזהים יזוהו בזמן יצירת האירוע. כדי לצמצם את הסיכון להתנגשויות, מומלץ להשתמש באלגוריתם UUID מקובל, כמו זה שמתואר ב-RFC4122.

אם לא מציינים מזהה, הוא נוצר באופן אוטומטי על ידי השרת.

חשוב לזכור שהשדות icalUID ו-id הם לא זהים, ויש לספק רק אחד מהם בזמן יצירת האירוע. הבדל אחד בסמנטיקה שלהם הוא שבאירועים חוזרים, לכל אירוע של אירוע אחד יש id שונים, אבל לכולם יש אותם ערכי icalUID.

לכתיבה
location string המיקום הגיאוגרפי של האירוע כטקסט חופשי. זה שינוי אופציונלי. ניתן לכתיבה
originalStartTime.date date התאריך, בפורמט 'yyyy-mm-dd', אם מדובר באירוע שנמשך כל היום. לכתיבה
originalStartTime.dateTime datetime השעה, כערך משולב של תאריך ושעה (בפורמט RFC3339). חובה לציין את הפרש השעות באזור הזמן, אלא אם צוין אזור זמן באופן מפורש ב-timeZone. לכתיבה
originalStartTime.timeZone string אזור הזמן שבו מצוין השעה. (בפורמט של שם במסד הנתונים IANA Time Zone Database, למשל 'Europe/Zurich'). בשדות של אירועים חוזרים, השדה הזה נדרש ומציין את אזור הזמן שבו התדירות מורחבת. לאירועים בודדים, השדה הזה הוא אופציונלי ומציין אזור זמן מותאם אישית להתחלה או לסיום של האירוע. לכתיבה
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 Time Zone Database, למשל 'Europe/Zurich'). בשדות של אירועים חוזרים, השדה הזה נדרש ומציין את אזור הזמן שבו התדירות מורחבת. לאירועים בודדים, השדה הזה הוא אופציונלי ומציין אזור זמן מותאם אישית להתחלה או לסיום של האירוע. ניתן לכתיבה
status string סטטוס האירוע. זה שינוי אופציונלי. הערכים האפשריים הם:
  • 'confirmed' – האירוע אושר. זהו סטטוס ברירת המחדל.
  • 'tentative' – האירוע אושר באופן זמני.
  • 'cancelled' – האירוע בוטל (נמחק). שיטת list מחזירה אירועים שבוטלו רק בסנכרון מצטבר (כשמציינים את הערכים syncToken או updatedMin) או אם הדגל showDeleted מוגדר לערך true. הם תמיד מוחזרים על ידי השיטה get.

    הסטטוס 'מבוטל' מייצג שני מצבים שונים, בהתאם לסוג האירוע:

    1. אם יש חריגות שבוטלו באירוע חוזר שלא בוטל, המשמעות היא שהאירוע הזה לא אמור להופיע יותר למשתמש. לקוחות צריכים לאחסן את האירועים האלה למשך כל תקופת החיים של האירוע החוזר הראשי.

      מובטח שרק בשדות id, ‏ recurringEventId ו-originalStartTime של החרגות שבוטלו יהיו ערכים מאוכלסים. השדות האחרים עשויים להיות ריקים.

    2. כל שאר האירועים שבוטלו מייצגים אירועים שנמחקו. לקוחות צריכים להסיר את העותקים שלהם שסונכרנו באופן מקומי. אירועים כאלה שבוטלו ייעלמו בסופו של דבר, לכן אל תסמכו על כך שהם יהיו זמינים ללא הגבלת זמן.

      רק באירועים שנמחקו מובטח שהשדה id מאוכלס.

    ביומן של המארגן, פרטי האירועים שבוטלו (סיכום, מיקום וכו') עדיין גלויים, כדי שניתן יהיה לשחזר אותם (לבטל את המחיקה שלהם). באופן דומה, האירועים שאליהם המשתמש הוזמן ושהסירו אותו באופן ידני ימשיכו לספק פרטים. עם זאת, בקשות סנכרון מצטברות שבהן showDeleted מוגדר כ-False לא יחזירו את הפרטים האלה.

    אם מארגן האירוע ישתנה (למשל באמצעות הפעולה move) והמארגן המקורי לא נכלל ברשימת הנוכחים, יישאר אירוע מבוטל שבו רק השדה 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' – המשתמש עובד ממיקום מותאם אישית.
כל הפרטים מצוינים בשדה משנה של השם שצוין, אבל יכול להיות שהשדה הזה יהיה חסר אם הוא ריק. המערכת תתעלם משדות אחרים.

חובה להוסיף את השדה הזה כשמוסיפים נכסים של מיקומי עבודה.

לכתיבה

תשובה

אם הפעולה בוצעה ללא שגיאות, ה-method מחזיר משאב אירועים בגוף התגובה.

דוגמאות

הערה: דוגמאות הקוד הזמינות לשיטה זו לא מייצגות את כל שפות התכנות הנתמכות (רשימת השפות הנתמכות זמינה בדף של ספריות המשתמשים).

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

משתמשת בספריית הלקוח של 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);
});

נסה בעצמך!

אפשר להשתמש ב-APIs Explorer שבהמשך כדי להפעיל את השיטה הזו על נתונים פעילים ולראות את התגובה.