Etkinlik türleri

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ü, API'de aşağıdaki yerlerde bulunabilir:

  • Tüm etkinlikler eventType ile döndürülür.
  • Etkinlik kaynağı oluşturulurken veya güncellenirken eventType ayarlanmalıdır. Ayarlanmazsa 'default' türü kullanılır.
  • eventTypes Belirli türlerdeki etkinlikleri listelemek için Events:list çağrısında belirtilebilir. Tür belirtilmezse tüm etkinlik türleri döndürülür.
  • eventTypes Belirli türdeki etkinliklerle ilgili güncellemelere abone olmak için Events:watch çağrısında belirtilebilir. Tür belirtilmezse istek, tüm etkinlik türlerine abone olunmasıyla sonuçlanır.

Varsayılan etkinlik

default etkinlik türündeki etkinlikler oluşturulur ve Google Calendar API'nin ana kaynaklarından biri olarak kullanılır. Etkinliği daha fazla özelleştirmek için kullanılabilecek çok çeşitli özellikleri destekler.

Google 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, Google Takvim'de doğum günü etkinliklerini manuel olarak 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 Google Takvim ile senkronize edilir. Kullanıcıların kendi doğum günleri de Google Hesabı profillerinden Google Takvim'e senkronize edilir.

Google Calendar API, doğum günü etkinliklerini okumak için get, instances ve list yöntemlerini destekler. Yalnızca doğum günü etkinliklerini listelemek için eventTypes, 'birthday' olarak ayarlanabilir. Tür belirtilmezse 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: Doğum günü, yıl dönümü veya başka bir önemli tarih gibi bu özel etkinliğin türü.
  • 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 insert yöntemi kullanılarak doğum günü etkinlikleri oluşturulmasına olanak tanır:

  • eventType, 'birthday' olarak ayarlanır.
  • start ve end alanları, tam olarak bir gün süren bir tüm gün etkinliğini tanımlamalıdır.
  • visibility alan değeri 'private' olmalıdır.
  • transparency alan değeri 'transparent' olmalıdır.
  • Yıllık olarak tekrar etmesi gerekir. Bu nedenle, recurrence alanı 'RRULE:FREQ=YEARLY' olmalıdır. 29 Şubat'a denk gelen doğum günü etkinlikleri için aşağıdaki tekrarlama kuralı geçerli olmalıdır: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • colorId, summary ve reminders içerebilir.
  • birthdayProperties olabilir. Belirtilmişse type değeri 'birthday' olmalı ve hem customTypeName hem de contact boş olmalıdır.
  • Başka etkinlik özelliği olamaz.

API, update ve patch yöntemlerini kullanarak doğum günü etkinliklerinin colorId, summary ve reminders değerlerinin güncellenmesine olanak tanır. Etkinlik tarihini değiştirmek için start ve end alanları da güncellenebilir. 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.

Google 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 Google Takvim ile senkronize edilir. Benzer şekilde, kullanıcılar kendi doğum günlerini Google Hesabı profillerinde düzenleyebilir ve bu bilgi Google Takvim ile senkronize edilir.

Doğum tarihini desteklenmeyen bir şekilde 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 import işlemini destekler ancak etkinlik varsayılan etkinlik olarak içe aktarılır. Başka bir deyişle, eventType 'default' olur.

API, Google Takvim'deki doğum günü etkinliklerinde yapılan değişikliklere abone olmak için watch yöntemini destekler. Doğum günü etkinlikleriyle ilgili güncellemelere abone olmak için eventTypes seçeneğini 'birthday' olarak ayarlayabilirsiniz. Tür belirtilmezse doğum günleri de dahil olmak üzere tüm etkinlik türlerine abone olunur.

Doğum günü etkinlikleri, Google Calendar API'nin delete yöntemi kullanılarak silinebilir. Google Takvim'den silinen doğum günü etkinlikleri, Google Kişiler veya Google Hesabı profilindeki verileri etkilemez.

move veya update yöntemlerini kullanarak doğum günü etkinliğinin düzenleyicisini değiştirmek desteklenmez.

Gmail'den Etkinlikler

Gmail'den otomatik olarak oluşturulan etkinlikler 'fromGmail' etkinlik türüne sahiptir.

Google Calendar API, insert yöntemi kullanılarak bu etkinlik türünün oluşturulmasına izin vermez.

API, update ve patch yöntemleri kullanılarak colorId, reminders, visibility, transparency, status, attendees, private ve shared genişletilmiş özelliklerinin güncellenmesine olanak tanır.

API, Gmail'den etkinlik okumak için get ve list yöntemlerini destekler. eventTypes, yalnızca Gmail'den oluşturulan etkinlikleri listelemek için 'fromGmail' olarak ayarlanabilir. Tür belirtilmezse Gmail'den alınan etkinlikler diğer tüm etkinlik türleriyle birlikte listelenir.

API, Google Takvim'de Gmail'den gelen etkinliklerdeki değişikliklere abone olmak için watch yöntemini destekler. Tür belirtilmezse 'fromGmail' dahil tüm etkinlik türlerine abone olunur.

Gmail'den alınan etkinlikler, Google Calendar API'nin delete yöntemi kullanılarak silinebilir.

Gmail'den move veya update yöntemlerini kullanarak bir etkinliğin düzenleyicisini değiştirmek desteklenmez.

Odaklanma zamanı, ofis dışında durumu ve çalışma yeri

Google Calendar API, Google Takvim kullanıcılarının durumunu gösteren etkinlikler oluşturmak ve yönetmek için kullanılabilir.

Bu özellikler yalnızca birincil takvimlerde ve bazı Google Takvim kullanıcıları tarafından kullanılabilir. Daha fazla bilgi edinmek için Odaklanma zamanı, ofis dışında ve çalışma konumu etkinliklerini yönetme başlıklı makaleyi inceleyin.

Google Apps Komut Dosyası'ndaki etkinlik türlerini keşfetme

Google 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. Google Calendar API'ye istek göndermek için Apps Komut Dosyası'nı kullanmaya başlamak üzere Google Apps Komut Dosyası hızlı başlangıç kılavuzu'na da bakın.

Aşağıdaki talimatlarda, Google Apps Komut Dosyası'nda gelişmiş bir hizmet olarak Google Calendar API kullanılarak etkinliklerin nasıl okunacağı ve yönetileceği açıklanmaktadır. Google Calendar API kaynaklarının ve yöntemlerinin tam listesi için referans belgelerine bakın.

Komut dosyasını oluşturma ve ayarlama

  1. script.google.com/create adresine giderek bir komut dosyası oluşturun.
  2. Sol bölmede Hizmetler'in yanındaki Hizmet ekle'yi tıklayın .
  3. Google Calendar API'yi seçin ve Ekle'yi tıklayın.
  4. Etkinleştirildikten sonra API, sol bölmede görünür. API'deki kullanılabilir yöntemler ve sınıflar, düzenleyicide Calendar anahtar kelimesi kullanılarak listelenebilir.

(İsteğe bağlı) Google Cloud projesini güncelleyin

Her Google Apps Komut Dosyası projesinin ilişkili bir Google Cloud projesi vardır. Komut dosyanız, Google Apps Komut Dosyası'nın otomatik olarak oluşturduğu varsayılan projeyi kullanabilir. Özel bir Google Cloud projesi kullanmak istiyorsanız Farklı bir standart Cloud projesine geçme başlıklı makaleyi inceleyin. Google Cloud projesini ayarladıktan sonra sol tarafta Düzenleyici'yi seçerek kod düzenleyiciye geri dönün.

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.

  1. 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çin Events:list işlevini çağırabilirsiniz.

Kod örneğini çalıştırma

  1. 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.
  2. İlk çalıştırmada erişimi yetkilendirmeniz istenir. Apps Komut Dosyası'nın takviminize erişmesine izin verin.
  3. Komut dosyası yürütme sonuçlarını pencerenin alt kısmında görünen Yürütme Günlüğü'nde inceleyebilirsiniz.