Takvimler ve etkinlikler

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

Takvimler

Takvim özet, varsayılan saat dilimi, konum gibi ek meta verilerle birlikte ilgili etkinliklerin oluşturduğu bir koleksiyondur. Her takvim, e-posta adresi olan bir kimlikle tanımlanır. Takvimlerin birden çok sahibi olabilir.

Etkinlikler

Etkinlik, belirli bir tarih veya saat aralığıyla ilişkilendirilmiş bir nesnedir. Etkinlikler benzersiz bir kimlikle tanımlanır. Etkinliklerde başlangıç ve bitiş tarihi/saatinin yanı sıra özet, açıklama, konum, durum, hatırlatıcılar, ekler vb. veriler bulunur.

Etkinlik türleri

Google Takvim tek ve yinelenen etkinlikleri destekler:

  • Tek bir etkinlik, benzersiz bir etkinliği temsil eder.
  • Yinelenen bir etkinlik, birden fazla tekrarı tanımlar.

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

  • Zamanlanmış bir etkinlik, belirli iki zaman noktası arasında gerçekleşir. Zamanlanmış etkinlikler, ne zaman gerçekleşeceğini belirtmek için start.dateTime ve end.dateTime alanlarını kullanır.
  • Tüm gün süren bir etkinlik tüm günü veya ardışık gün serisini kapsar. Tüm gün süren etkinlikler, ne zaman gerçekleşeceğini 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 önemli olmadığını unutmayın.

Düzenleyenler

Etkinliklerin tek bir düzenleyicisi vardır. Bu, 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:

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 hesabın kimliği genellikle kullanıcının birincil e-posta adresiyle eşleşir. Hesap var olduğu sürece, birincil takvimi kullanıcı tarafından hiçbir zaman silinemez veya "sahipsiz" olamaz. Ancak dosyayı diğer kullanıcılarla paylaşmaya devam edebilirsiniz.

Birincil takvime ek olarak, açıkça istediğiniz sayıda başka takvim oluşturabilirsiniz. Bu takvimler değiştirilebilir, silinebilir ve birden fazla kullanıcı arasında paylaşılabilir.

Takvim ve takvim listesi

Takvimler koleksiyonu, mevcut tüm takvimleri temsil eder. Takvimleri oluşturmak ve silmek için kullanılabilir. Ayrıca, bir takvime erişimi olan tüm kullanıcılar arasında 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 yer aldığı bir koleksiyondur (web kullanıcı arayüzünün sol panelinde gösterilir). Mevcut takvimleri kullanıcı listesine eklemek veya kullanıcı listesinden kaldırmak için bu uygulamayı kullanabilirsiniz. Bu etiketi, varsayılan hatırlatıcılar gibi kullanıcıya özel takvim özelliklerinin değerlerini almak ve ayarlamak için de kullanabilirsiniz. Başka bir örnek de ön plan rengidir. Çünkü farklı kullanıcılar aynı takvim için farklı renklere sahip olabilir.

Aşağıdaki tabloda, iki koleksiyon için işlemlerin anlamları karşılaştırılmıştır:

İşlem Takvimler Takvim Listesi
insert Yeni bir ikincil takvim oluşturur. Varsayılan olarak bu takvim, oluşturan kişinin takvim listesine de eklenir. Mevcut bir takvimi kullanıcının listesine ekler.
delete İkincil bir takvimi siler. Takvimi kullanıcının listesinden kaldırır.
get Takvim meta verilerini (ör. başlık, saat dilimi) alır. Meta verilerin ve renk veya geçersiz kılma hatırlatıcıları gibi kullanıcıya özel özelleştirmeleri alır.
patch/update Takvim meta verilerini değiştirir. Kullanıcıya özel takvim özelliklerini değiştirir.

Düzenli etkinlikler

Bazı etkinlikler (ör. haftalık toplantılar, doğum günleri ve tatiller) düzenli bir şekilde birden fazla kez gerçekleşir. Bu tekrarlanan etkinlikler, farklı başlangıç ve bitiş zamanları dışında genellikle aynıdır.

Belirli bir programa göre tekrar eden etkinliklere yinelenen adı verilir. Tek etkinlikler yinelenmez ve yalnızca bir kez gerçekleşir.

Yinelenme kuralı

Düzenli bir etkinliğin zamanlaması iki bölümden tanımlanır:

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

  • Yinelenme alanı (etkinliğin zaman içinde nasıl tekrarlanması gerektiğini tanımlar).

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

RRULE özelliği, etkinliğin tekrarlanması için düzenli bir kural tanımladığı için en önemlidir. Birkaç bileşenden oluşur. Bunlardan bazıları şunlardır:

  • FREQ: Etkinliğin tekrarlanma sıklığı (ör. DAILY veya WEEKLY). Zorunlu.

  • 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 tekrarlanma sayısı.

  • UNTIL: Etkinliğin tekrarlanması gereken tarih veya tarih/saat (dahil).

  • BYDAY — Etkinliğin tekrarlanması gereken günler (SU, MO, TU vb.). Diğer benzer bileşenler arasında BYMONTH, BYYEARDAY ve BYHOUR yer alır.

RDATE özelliği, etkinliğin gerçekleşmesi gereken ek tarihleri veya tarih-saatleri belirtir. Örneğin, RDATE;VALUE=DATE:19970101,19970120. RRULE kapsamında olmayan fazladan tekrarları eklemek için bunu kullanın.

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

EXDATE ve RDATE bir saat dilimine sahip olabilir ve tüm gün süren etkinlikler için tarih (tarih-saat değil) olmalıdır.

Özelliklerin her biri yinelenme alanında birden çok kez görünebilir. Yinelenme, tüm EXDATE kuralları tarafından hariç tutulan tüm RRULE ve RDATE kurallarının toplamı olarak tanımlanır.

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

  1. 15 Eylül 2015'ten itibaren her Salı ve Cuma 06:00'dan 07:00'ye kadar gerçekleşen ve 29 Eylül'de beşinci olaydan sonra 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şlayan ve 10 Haziran hariç ancak 9-11 Haziran hariç ay boyunca her 3 günde bir tekrarlanan tüm gün süren 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 bir etkinlik birkaç örnekten oluşur: Söz konusu etkinliğin farklı zamanlarda tekrarlanması. Bu örnekler etkinlik olarak görev yapar.

Düzenli etkinlik değişiklikleri, yinelenen etkinliğin tamamını (ve tüm örneklerini) veya yalnızca tek tek örnekleri etkileyebilir. Üst tekrarlanan etkinliklerinden farklı örneklere istisnalar adı verilir.

Örneğin, bir istisnanın farklı bir özeti, farklı bir başlangıç zamanı veya yalnızca söz konusu örneğe davet edilmiş ek katılımcıları olabilir. Ayrıca, düzenli etkinliği kaldırmadan bir örneği tamamen iptal edebilirsiniz (örnek iptalleri status etkinliğine yansıtılır).

Google Calendar API'yi kullanarak yinelenen etkinlikler ve örneklerle nasıl çalışabileceğinize dair örnekleri burada bulabilirsiniz.

Saat dilimleri

Saat dilimi, tek tip standart saati gözlemleyen bölgeyi belirtir. Google Calendar API'de, saat dilimlerini IANA saat dilimi tanımlayıcılarını kullanarak belirtirsiniz.

Takvimler ve 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, zaman değerlerinin events.get(), events.list() ve events.instances() yöntemleri tarafından yorumlanma veya sunulma şeklini etkiler.

Sorgu sonucu saat dilimi dönüşümü
get(), list() ve instances() yöntemlerinin sonuçları, timeZone parametresinde belirttiğiniz saat diliminde döndürülür. Bu parametreyi çıkarırsanız bu yöntemlerin tümü varsayılan olarak takvim saat dilimini kullanır.
Tüm gün etkinliklerini zaman parantezli sorgularla eşleştirme
list() ve instances() yöntemleri, başlangıç ve bitiş zamanı filtrelerini belirtmenize olanak tanır ve yöntemle belirtilen aralıkta yer alan örnekleri döndürür. Takvim saat dilimi, filtre spesifikasyonuna dahil olup olmadıklarını belirlemek amacıyla tüm gün süren etkinliklerin başlangıç ve bitiş zamanlarını hesaplamak için kullanılır.

Etkinlik saat dilimi

Etkinlik örneklerinin başlangıç ve bitiş zamanı vardır. Bu zamanların spesifikasyonu saat dilimini içerebilir. Saat dilimini birkaç şekilde belirtebilirsiniz. Aşağıdakiler aynı saati belirtir:

  • dateTime alanına saat dilimi farkını ekleyin (ör. 2017-01-25T09:00:00-0500).
  • Saati ofset olmadan belirtin. Örneğin, 2017-01-25T09:00:00 için timeZone alanını boş bırakın (dolaylı olarak varsayılan saat dilimi kullanılır).
  • Zamanı ofset olmadan belirtin (örneğin, 2017-01-25T09:00:00). Ancak saat dilimini belirtmek için timeZone alanını kullanın.

Tercih ederseniz, etkinlik saatlerini UTC olarak da belirtebilirsiniz:

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

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

Bir etkinliğin saat dilimini gösteren ekran görüntüsü parçası

Düzenli etkinlik saat dilimi

Düzenli etkinlikler için her zaman tek bir saat dilimi belirtilmelidir. Bu, etkinliğin tekrarlanma sayısını artırmak için gereklidir.