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

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

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

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

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

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

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

    אם מארגן האירוע ישתנה (למשל באמצעות הפעולה 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 שבהמשך כדי להפעיל את השיטה הזו על נתונים פעילים ולראות את התגובה.