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ünü API'deki aşağıdaki yerlerde bulabilirsiniz:

  • Tüm etkinlikler eventType döndürür.
  • Etkinlik kaynağı oluştururken veya güncellerken eventType değerini ayarlayın. Ayarlanmadan bırakılırsa API, 'default' kullanır.
  • Belirli türlerdeki etkinlikleri listelemek için events.list çağrısında eventTypes değ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 eventTypes events.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.
  • start ve end alanları, tam olarak bir gün süren tüm gün süren bir etkinliği tanımlamalıdır.
  • visibility Alan değeri 'private' olmalıdır.
  • transparency Alan değeri 'transparent' olmalıdır.
  • Yıllık olarak tekrarlanmalıdır. 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 yinelenme kuralı geçerli olmalıdır: 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • colorId, summary ve reminders içerebilir.
  • Şunları içerebilir: birthdayProperties. Belirtilirse type, 'birthday' olmalı ve hem customTypeName hem de contact boş 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

  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. Calendar API'yi seçip Ekle'yi tıklayın.
  4. API'yi etkinleştirdikten sonra sol bölmede görünür. Düzenleyiciye Calendar yazarak 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.

  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 numaralı telefonu arayabilirsiniz.

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. Komut dosyasını ilk kez çalıştırdığınızda 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.