Takvimler ve etkinlikler

Bu kılavuzda takvimler, etkinlikler ve bunların birbiriyle ilişkisi açıklanmaktadır.

Takvimler

Takvim, özet, varsayılan saat dilimi ve konum gibi ek meta verilerle birlikte ilgili etkinliklerin bir koleksiyonudur. Her takvim, e-posta adresi olan bir kimlikle tanımlanır. Takvimler başkalarıyla paylaşılabilir. Birincil takvimler, ilişkili kullanıcı hesabına aittir. Diğer takvimler ise tek bir veri sahibine aittir.

Etkinlikler

Etkinlik, belirli bir tarih veya zaman aralığıyla ilişkilendirilmiş bir nesnedir. Etkinlikler benzersiz bir kimlikle tanımlanır. Etkinlikler, başlangıç ve bitiş tarihi/saati dışında özet, açıklama, konum, durum, hatırlatıcılar ve ekler gibi başka veriler de içerir.

Etkinlik türleri

Google Takvim, tek seferlik ve düzenli etkinlikleri destekler:

  • Tek bir etkinlik, benzersiz bir oluşumu temsil eder.
  • Yinelenen bir etkinlik, birden fazla oluşumu tanımlar.

Etkinlikler zamanlanmış veya tüm gün süren de olabilir:

  • Zamanlanmış bir etkinlik, belirli iki zaman noktası arasında gerçekleşir. Zamanlanmış etkinlikler, ne zaman gerçekleşeceklerini belirtmek için start.dateTime ve end.dateTime alanlarını kullanır.
  • Tüm gün süren etkinlikler, tüm günü veya art arda günleri kapsar. Tüm gün süren etkinlikler, ne zaman gerçekleşeceklerini belirtmek için start.date ve end.date alanlarını kullanır. Saat dilimi alanının tüm gün süren etkinlikler için bir önemi olmadığını unutmayın.

Düzenleyenler

Etkinliklerin tek bir düzenleyeni vardır. Bu düzenleyen, etkinliğin ana kopyasını içeren takvimdir. Etkinliklerde birden fazla katılımcı da olabilir. Katılımcı, genellikle davet edilen kullanıcının birincil takvimidir.

Aşağıdaki şemada takvimler, etkinlikler ve diğer ilgili öğeler arasındaki kavramsal ilişki gösterilmektedir:

Takvimler ve etkinlikler kavramsal modeli

Birincil takvimler ve diğer takvimler

Birincil takvim, tek bir kullanıcı hesabıyla ilişkili özel bir takvim türüdür. Bu takvim, her yeni kullanıcı hesabı için otomatik olarak oluşturulur ve kimliği genellikle kullanıcının birincil e-posta adresiyle eşleşir. Hesap var olduğu sürece birincil takvimi hiçbir zaman silinemez veya kullanıcı tarafından "sahipsiz" bırakılamaz. Ancak bu bilgi diğer kullanıcılarla paylaşılabilir.

Birincil takvime ek olarak, istediğiniz sayıda başka takvim oluşturabilirsiniz. Bu takvimler değiştirilebilir, silinebilir ve başkalarıyla paylaşılabilir. Bu tür takvimlerde, takvimi silme hakkı da dahil olmak üzere en yüksek ayrıcalıklara sahip tek bir veri sahibi bulunur. Veri sahibinin erişim düzeyi düşürülemez. Veri sahibi başlangıçta takvimi oluşturan kullanıcı olarak belirlenir ancak veri sahipliği Google Takvim kullanıcı arayüzünde aktarılabilir.

Takvim ve takvim listesi

Takvimler koleksiyonu, mevcut tüm takvimleri temsil eder. Takvim oluşturmak ve silmek için kullanılabilir. Ayrıca, bir takvime erişimi olan tüm kullanıcılarla paylaşılan genel özellikleri de alabilir veya ayarlayabilirsiniz. Örneğin, bir takvimin başlığı ve varsayılan saat dilimi genel özelliklerdir.

CalendarList, kullanıcının listesine eklediği tüm takvim girişlerinin bir koleksiyonudur (web kullanıcı arayüzünün sol panelinde gösterilir). Bu yöntemi, kullanıcının listesine mevcut takvimleri eklemek ve listeden kaldırmak için kullanabilirsiniz. Ayrıca, kullanıcıya özel takvim özelliklerinin (ör. varsayılan hatırlatıcılar) değerlerini almak ve ayarlamak için de kullanılır. Başka bir örnek de ön plan rengidir. Farklı kullanıcılar aynı takvim için farklı renkler ayarlayabilir.

Aşağıdaki tabloda, iki koleksiyondaki işlemlerin anlamı karşılaştırılmaktadır:

İşlem Takvimler CalendarList
insert Yeni bir ikincil takvim oluşturur. Bu takvim, içerik üreticinin takvim listesine de eklenir ve takvim silinmediği veya aktarılmadığı sürece kaldırılamaz. Mevcut bir takvimi kullanıcının listesine ekler.
delete İkincil bir takvimi siler. Kullanıcının listesinden bir takvimi kaldırır.
get Başlık ve saat dilimi gibi takvim meta verilerini alır. Meta verilerin yanı sıra kullanıcıya özel özelleştirmeleri (ör. renk veya hatırlatıcıları geçersiz kılma) alır.
patch/update Takvim meta verilerini değiştirir. Kullanıcıya özel takvim özelliklerini değiştirir.

Düzenli etkinlikler

Bazı etkinlikler düzenli olarak birden fazla kez gerçekleşir. Örneğin, haftalık toplantılar, doğum günleri ve tatiller. Bu tekrarlanan etkinlikler, farklı başlangıç ve bitiş zamanlarına sahip olmanın dışında genellikle aynıdır.

Belirli bir plana göre tekrarlanan etkinliklere yinelenen etkinlik denir. Tek seferlik etkinlikler tekrarlanmaz ve yalnızca bir kez gerçekleşir.

Yinelenme kuralı

Yinelenen bir etkinliğin programı iki bölümden oluşur:

  • Başlangıç ve bitiş alanları (ilk oluşumu tanımlar, sanki bu yalnızca bağımsız tek bir etkinlikmiş gibi) ve

  • Yinelenme alanı (etkinliğin zaman içinde nasıl tekrarlanacağını tanımlar).

Yinelenme alanı, RFC 5545'te tanımlandığı gibi bir veya daha fazla RRULE, RDATE ya da EXDATE özelliğini temsil eden bir dizeler dizisi içerir.

Etkinliğin tekrarlanması için düzenli bir kural tanımladığından RRULE özelliği en önemlisidir. Çeşitli bileşenlerden oluşur. Bunlardan bazıları:

  • FREQ: Etkinliğin tekrarlanması gereken sıklık (ör. DAILY veya WEEKLY). Zorunludur.

  • INTERVAL: Etkinliğin ne sıklıkta tekrarlanması gerektiğini belirtmek için FREQ ile birlikte çalışır. Örneğin, FREQ=DAILY;INTERVAL=2 iki günde bir anlamına gelir.

  • COUNT: Bu etkinliğin tekrarlanması gereken sayı.

  • UNTIL: Etkinliğin tekrar edilmesi gereken tarih veya tarih-saat (dahil).

  • BYDAY: Etkinliğin tekrar edilmesi gereken haftanın günleri (SU, MO, TU vb.). Diğer benzer bileşenler arasında BYMONTH, BYYEARDAY ve BYHOUR yer alır.

RDATE özelliği, etkinlik oluşumlarının gerçekleşmesi gereken ek tarihleri veya tarih-saatleri belirtir. Örneğin, RDATE;VALUE=DATE:19970101,19970120. RRULE kapsamına girmeyen ek oluşumları eklemek için bu özelliği kullanın.

EXDATE özelliği, RDATE'e benzer ancak etkinliğin gerçekleşmemesi gereken tarihleri veya tarih-saatleri belirtir. Yani bu tür durumlar hariç tutulmalıdır. Bu, yinelenme kuralı tarafından oluşturulan geçerli bir örneğe işaret etmelidir.

EXDATE ve RDATE, saat dilimi içerebilir ve tüm gün süren etkinlikler için tarih (tarih-saat değil) olmalıdır.

Özelliklerin her biri, tekrar alanı içinde birden çok kez görünebilir. Tekrar, tüm RRULE ve RDATE kurallarının birleşimi olarak tanımlanır. Tüm EXDATE kurallarıyla hariç tutulanlar bu birleşime dahil değildir.

Aşağıda, yinelenen etkinliklere ilişkin bazı örnekler verilmiştir:

  1. 15 Eylül 2015'ten itibaren her Salı ve Cuma günleri 06:00-07:00 saatleri arasında gerçekleşen ve 29 Eylül 2015'te beşinci kez gerçekleştiğinde sona eren bir etkinlik:

    ...
    "start": {
      "dateTime": "2015-09-15T06:00:00+02:00",
      "timeZone": "Europe/Zurich"
    },
    "end": {
      "dateTime": "2015-09-15T07:00:00+02:00",
      "timeZone": "Europe/Zurich"
    },
    "recurrence": [
      "RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=TU,FR"
    ],
    ...
    
  2. 1 Haziran 2015'te başlayıp ay boyunca 3 günde bir yinelenen, 10 Haziran hariç ancak 9 Haziran ve 11 Haziran'ı içeren tüm günlük bir etkinlik:

    ...
    "start": {
      "date": "2015-06-01"
    },
    "end": {
      "date": "2015-06-02"
    },
    "recurrence": [
      "EXDATE;VALUE=DATE:20150610",
      "RDATE;VALUE=DATE:20150609,20150611",
      "RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"
    ],
    ...
    

Örnekler ve istisnalar

Düzenli etkinlikler, farklı zamanlarda gerçekleşen belirli örneklerden oluşur. Bu örnekler, etkinlik olarak kabul edilir.

Düzenli etkinlik değişiklikleri, düzenli etkinliğin tamamını (ve tüm örneklerini) veya yalnızca tek tek örnekleri etkileyebilir. Üst düzenli etkinlikten farklı olan örnekler istisnalar olarak adlandırılır.

Örneğin, bir istisnanın farklı bir özeti, farklı bir başlangıç saati veya yalnızca bu örneğe davet edilen ek katılımcıları olabilir. Ayrıca, düzenli etkinliği kaldırmadan bir örneği tamamen iptal edebilirsiniz (örnek iptalleri etkinlik status bölümünde gösterilir).

Google Takvim API'yi kullanarak düzenli etkinlikler ve örneklerle nasıl çalışılacağıyla ilgili örnekler için Yinelenen etkinlikler başlıklı makaleyi inceleyin.

Saat dilimleri

Saat dilimi, tek tip standart saatin uygulandığı bir bölgeyi belirtir. Google Takvim API'sinde saat dilimlerini belirtmek için IANA saat dilimi tanımlayıcılarını kullanırsınız.

Hem takvimler hem de etkinlikler için saat dilimini ayarlayabilirsiniz. Aşağıdaki bölümlerde bu ayarların etkileri açıklanmaktadır.

Takvim saat dilimi

Takvimin saat dilimi, sorgu sonuçları üzerindeki etkileri nedeniyle varsayılan saat dilimi olarak da bilinir. Takvim saat dilimi, events.get(), events.list() ve events.instances() yöntemleriyle zaman değerlerinin yorumlanma veya sunulma şeklini etkiler.

Sorgu sonucu saat dilimi dönüştürme
get(), list() ve instances() yöntemlerinin sonuçları, timeZone parametresinde belirttiğiniz saat diliminde döndürülür. Bu parametreyi atlarsanız bu yöntemlerin tümünde varsayılan olarak takvim saat dilimi kullanılır.
Tüm gün süren etkinlikleri zaman aralığı içeren sorgularla eşleştirme
, list() ve instances() yöntemleri, belirtilen aralığa giren örnekleri döndüren yöntemle birlikte başlangıç ve bitiş zamanı filtreleri belirtmenize olanak tanır. Tüm gün süren etkinliklerin başlangıç ve bitiş zamanlarını hesaplamak için takvim saat dilimi kullanılır. Bu sayede, etkinliklerin filtre spesifikasyonuna uygun olup olmadığı belirlenir.

Etkinlik saat dilimi

Etkinlik örneklerinin başlangıç ve bitiş zamanı vardır. Bu zamanların belirtilmesinde saat dilimi yer alabilir. Saat dilimini çeşitli şekillerde belirtebilirsiniz. Aşağıdakilerin tümü aynı saati belirtir:

  • dateTime alanına saat dilimi farkını ekleyin (örneğin, 2017-01-25T09:00:00-0500).
  • Saati, timeZone alanını boş bırakarak (bu, varsayılan saat dilimini örtülü olarak kullanır) ofset olmadan belirtin (ör. 2017-01-25T09:00:00).
  • Saati, 2017-01-25T09:00:00 gibi bir fark olmadan belirtin ancak saat dilimini belirtmek için timeZone alanını kullanın.

Dilerseniz etkinlik saatlerini UTC olarak da belirtebilirsiniz:

  • Saati UTC olarak belirtin: 2017-01-25T14:00:00Z veya sıfır fark kullanın 2017-01-25T14:00:00+0000.

Etkinlik saatinin dahili gösterimi tüm bu durumlarda aynıdır ancak timeZone alanının ayarlanması, Takvim kullanıcı arayüzünü kullanarak etkinlik saat dilimi ayarladığınızda olduğu gibi etkinliğe bir saat dilimi ekler:

Bir etkinlikteki saat dilimini gösteren ekran görüntüsü parçası

Düzenli etkinliğin saat dilimi

Yinelenen etkinlikler için, etkinliğin tekrarlarını genişletmek üzere her zaman tek bir saat dilimi belirtmeniz gerekir.