Bu sayfada, eventType özelliği ve Google Takvim API'sinde kullanılabilen etkinlik türlerinin özellikleri açıklanmaktadır.
Google Takvim, kullanıcıların genel etkinliklerin yanı sıra belirli kullanım alanları için tasarlanmış ve özel özelliklere sahip etkinlikler oluşturmasına olanak tanır.
Etkinlik türünü API'deki aşağıdaki yerlerde bulabilirsiniz:
- Tüm etkinlikler
eventTypedöndürür. - Etkinlik kaynağı oluştururken veya güncellerken
eventTypedeğerini ayarlayın. Ayarlanmadan bırakılırsa API,'default'kullanır. - Belirli türlerdeki etkinlikleri listelemek için
events.listçağrısındaeventTypesdeğerini belirtin. Tür belirtilmezse API tüm etkinlik türlerini döndürür. - Belirli türlerdeki etkinliklerle ilgili güncellemeleri almak için
eventTypesevents.watchçağrısında belirtin. Tür belirtilmezse istek tüm etkinlik türlerine abone olur.
Varsayılan etkinlik
default etkinlik türündeki etkinlikler oluşturulur ve Calendar API'nin ana kaynaklarından biri olarak kullanılır. Etkinliği daha fazla özelleştirmek için çok çeşitli özellikleri destekler.
Takvim etkinlikleriyle çalışmaya başlamak için Etkinlik oluşturma başlıklı makaleyi inceleyin.
Doğum Günü
Doğum günleri, yıllık olarak tekrarlanan özel etkinliklerdir.
Kullanıcılar, Takvim'de manuel olarak doğum günü etkinlikleri oluşturabilir. Ayrıca, kullanıcılar Google Kişiler'e kişi ekleyip doğum gününü ve diğer önemli tarihleri girdiğinde bu bilgiler Takvim ile senkronize edilir. Kullanıcıların kendi doğum günleri de Google Hesabı profillerinden Takvim'e senkronize edilir.
Calendar API, doğum günü etkinliklerini okumak için events.get, events.instances ve
events.list yöntemlerini destekler. Yalnızca doğum günü etkinliklerini listelemek için eventTypes değerini 'birthday' olarak ayarlayabilirsiniz. Tür belirtilmezse yanıtta doğum günleri diğer tüm etkinlik türleriyle birlikte listelenir.
Döndürülen Event nesnelerinde, bu özel etkinlik hakkında daha fazla bilgi için birthdayProperties alanını inceleyin. birthdayProperties aşağıdaki alanları içerir:
type: Bu özel etkinliğin türü (doğum günü, yıl dönümü veya başka bir önemli tarih).customTypeName: Bu özel etkinlik için kullanıcı tarafından belirtilen etiket.type,'custom'olarak ayarlanırsa bu alan doldurulur.contact: Bu özel etkinliğin bağlı olduğu kişinin kaynak adı (varsa). Bu,'people/c12345'biçimindedir ve People API'den iletişim bilgilerini getirmek için kullanılabilir.
API, aşağıdaki özelliklere sahip events.insert yöntemini kullanarak doğum günü etkinlikleri oluşturmanıza olanak tanır:
eventType,'birthday'olarak ayarlanır.startveendalanları, tam olarak bir gün süren tüm gün süren bir etkinliği tanımlamalıdır.visibilityAlan değeri'private'olmalıdır.transparencyAlan değeri'transparent'olmalıdır.- Yıllık olarak tekrarlanmalıdır. Bu nedenle,
recurrencealanı'RRULE:FREQ=YEARLY'olmalıdır. 29 Şubat'a denk gelen doğum günü etkinlikleri için aşağıdaki yinelenme kuralı geçerli olmalıdır:'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'. colorId,summaryveremindersiçerebilir.- Şunları içerebilir:
birthdayProperties. Belirtilirsetype,'birthday'olmalı ve hemcustomTypeNamehem decontactboş olmalıdır. - Başka etkinlik özelliği olamaz.
API, events.update ve events.patch yöntemlerini kullanarak doğum günü etkinliklerinin colorId, summary ve reminders değerlerini güncellemenize olanak tanır.
Etkinlik tarihini değiştirmek için start ve end alanlarını da güncelleyebilirsiniz. Bu durumda, yeni değerler tam olarak bir gün süren ve tüm gün devam eden bir etkinlik tanımlamalıdır. Bir doğum günü etkinliği contact'ye bağlıysa veya type 'self' ise etkinliğin zamanlama ayrıntıları güncellenemez.
Calendar API, özel birthdayProperties ile doğum günü etkinlikleri oluşturmaya veya bu özellikleri güncellemeye izin vermez. Önemli tarihler People API ile düzenlenebilir ve değişiklikler Takvim ile senkronize edilir. Benzer şekilde, kullanıcılar kendi doğum günlerini Google Hesabı profillerinde düzenleyebilir ve bu bilgi Takvim ile senkronize edilir.
Doğum tarihi oluşturmaya veya güncellemeye çalışan istekler başarısız olur. Bu durumda, sorunu belirlemek için hata mesajını inceleyin.
API, doğum günü etkinlikleri için events.import işlemini destekler ancak etkinlik varsayılan etkinlik olarak içe aktarılır. Başka bir deyişle, eventType 'default' olur.
API, Takvim'deki doğum günü etkinliklerinde yapılan değişikliklere abone olmak için events.watch yöntemini destekler.
Doğum günü etkinlikleriyle ilgili güncellemelere abone olmak için eventTypes'ı 'birthday' olarak ayarlayabilirsiniz. Tür belirtilmezse istek, doğum günleri de dahil olmak üzere tüm etkinlik türlerine abone olur.
Calendar API'nin events.delete yöntemini kullanarak doğum günü etkinliklerini silebilirsiniz. Takvim'den silinen doğum günü etkinlikleri, Google Kişiler veya Google Hesabı profilindeki verileri etkilemez.
Doğum günü etkinliğinin düzenleyicisini events.move veya events.update yöntemlerini kullanarak değiştirmek desteklenmez.
Gmail'den Etkinlikler
Gmail'den otomatik olarak oluşturulan etkinlikler 'fromGmail' etkinlik türüne sahiptir.
Calendar API, events.insert yöntemi kullanılarak bu etkinlik türünün oluşturulmasına izin vermez.
API, events.update ve events.patch yöntemlerini kullanarak colorId, reminders, visibility, transparency, status, attendees, private ve shared genişletilmiş özelliklerini güncellemenize olanak tanır.
API, Gmail'den etkinlik okumak için events.get ve events.list yöntemlerini destekler. Yalnızca Gmail'den oluşturulan etkinlikleri listelemek için
eventTypes seçeneğini
'fromGmail' olarak ayarlayabilirsiniz. Tür belirtilmezse Gmail'den Etkinlikler diğer tüm etkinlik türleriyle birlikte listelenir.
API, Takvim'de Gmail'den Etkinlikler'deki değişikliklere abone olmak için events.watch
yöntemini destekler. Tür belirtilmezse istek, 'fromGmail' dahil olmak üzere tüm etkinlik türlerine abone olur.
Calendar API'nin events.delete yöntemini kullanarak Gmail'den etkinlikleri silebilirsiniz.
Gmail'den bir etkinliğin düzenleyenini events.move veya events.update yöntemlerini kullanarak değiştirmek desteklenmez.
Odaklanma zamanı, ofis dışında durumu ve çalışma yeri
Takvim kullanıcılarının durumunu gösteren etkinlikler oluşturmak ve yönetmek için Calendar API'yi kullanabilirsiniz.
Bu özellikler yalnızca birincil takvimlerde ve bazı Takvim kullanıcıları tarafından kullanılabilir. Daha fazla bilgi için Odaklanma zamanı, ofis dışında ve çalışma konumu etkinliklerini yönetme başlıklı makaleyi inceleyin.
Apps Komut Dosyası'ndaki etkinlik türlerini keşfetme
Apps Komut Dosyası, Google Workspace ile entegre olan iş uygulamaları oluşturmanıza olanak tanıyan JavaScript tabanlı bir bulut komut dosyası dilidir. Komut dosyaları tarayıcı tabanlı bir kod düzenleyicide geliştirilir ve Google'ın sunucularında depolanıp çalıştırılır. Calendar API'ye istek göndermek için Apps Komut Dosyası'nı kullanmaya başlamak üzere Apps Komut Dosyası hızlı başlangıç kılavuzuna da göz atın.
Aşağıdaki talimatlarda, Apps Komut Dosyası'nda gelişmiş bir hizmet olarak Calendar API'yi kullanarak etkinliklerin nasıl okunacağı ve yönetileceği açıklanmaktadır. Takvim API kaynaklarının ve yöntemlerinin tam listesi için referans belgelerine bakın.
Komut dosyası oluşturma ve ayarlama
- script.google.com/create adresine giderek bir komut dosyası oluşturun.
- Sol bölmede Hizmetler'in yanındaki Hizmet ekle'yi tıklayın.
- Calendar API'yi seçip Ekle'yi tıklayın.
- API'yi etkinleştirdikten sonra sol bölmede görünür. Düzenleyiciye
Calendaryazarak API'deki kullanılabilir yöntemleri ve sınıfları listeleyebilirsiniz.
(İsteğe bağlı) Cloud projesini güncelleme
Her Apps Komut Dosyası projesinin ilişkili bir Cloud projesi vardır. Komut dosyanız, Apps Komut Dosyası'nın otomatik olarak oluşturduğu varsayılan projeyi kullanabilir. Özel bir Cloud projesi kullanmak istiyorsanız Farklı bir standart Cloud projesine geçme başlıklı makaleyi inceleyin. Cloud projesini ayarladıktan sonra, kod düzenleyiciye geri dönmek için sol tarafta Düzenleyici'yi seçin.
Komut dosyasına kod ekleme
Aşağıdaki kod örneğinde, farklı eventType değerlere sahip etkinliklerin nasıl listeleneceği, okunacağı ve oluşturulacağı gösterilmektedir.
Aşağıdaki kodu kod düzenleyiciye yapıştırın.
const CALENDAR_ID = 'CALENDAR_ID' || 'primary'; /** Lists default events. */ function listDefaultEvents() { listEvents('default'); } /** Lists birthday events. */ function listBirthdays() { listEvents('birthday'); } /** Lists events from Gmail. */ function listEventsFromGmail() { listEvents('fromGmail'); } /** * Lists events with the given event type. If no type is specified, lists all events. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list */ function listEvents(eventType = undefined) { // Query parameters for the list request. const optionalArgs = { eventTypes: eventType ? [eventType] : undefined, singleEvents: true, timeMax: '2024-07-30T00:00:00+01:00', timeMin: '2024-07-29T00:00:00+01:00', } try { var response = Calendar.Events.list(CALENDAR_ID, optionalArgs); response.items.forEach(event => console.log(event)); } catch (exception) { console.log(exception.message); } } /** * Reads the event with the given eventId. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get */ function readEvent() { try { var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID'); console.log(response); } catch (exception) { console.log(exception.message); } } /** Creates a default event. */ function createDefaultEvent() { const event = { start: { dateTime: '2024-07-30T10:30:00+01:00'}, end: { dateTime: '2024-07-30T12:30:00+01:00'}, description: 'Created from Apps Script.', eventType: 'default', summary: 'Sample event', } createEvent(event); } /** Creates a birthday event. */ function createBirthday() { const event = { start: { date: '2024-01-29' }, end: { date: '2024-01-30' }, eventType: 'birthday', recurrence: ["RRULE:FREQ=YEARLY"], summary: "My friend's birthday", transparency: "transparent", visibility: "private", } createEvent(event); } /** * Creates a Calendar event. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert */ function createEvent(event) { try { var response = Calendar.Events.insert(event, CALENDAR_ID); console.log(response); } catch (exception) { console.log(exception.message); } }Aşağıdakini değiştirin:
CALENDAR_ID: Etkinliklerin alınacağı ve oluşturulacağı takvimin e-posta adresi. Bu sabit başlangıçta'primary'olarak ayarlanır. Bu, oturum açmış kullanıcının birincil takvimine erişmek için kullanılan bir anahtar kelimedir. Bu değeri değiştirdiğinizde, erişiminiz olan diğer kullanıcıların takvimlerindeki etkinlikleri okuyabilirsiniz.EVENT_ID: Etkinliğin kimliği. Etkinlik kimliklerini almak içinevents.listnumaralı telefonu arayabilirsiniz.
Kod örneğini çalıştırma
- Kod düzenleyicinin üst kısmındaki açılır menüden çalıştırılacak işlevi seçin ve Çalıştır'ı tıklayın.
- Komut dosyasını ilk kez çalıştırdığınızda erişimi yetkilendirmeniz istenir. Apps Komut Dosyası'nın takviminize erişmesine izin verin.
- Komut dosyası yürütme sonuçlarını pencerenin alt kısmında görünen Yürütme günlüğü'nde inceleyebilirsiniz.