Takvimler ve etkinlikler

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

Takvimler

Takvim, özet, varsayılan saat dilimi, konum gibi ek meta verilerle birlikte ilgili etkinliklerin bir koleksiyonudur. 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şkilendirilen nesnedir. Etkinlikler benzersiz bir kimlikle tanımlanır. Etkinlikler, başlangıç ve bitiş tarihi ve saatinin yanı sıra özet, açıklama, konum, durum, hatırlatıcılar, ekler vb. gibi diğer verileri de içerir.

Etkinlik türleri

Google Takvim, tek ve tekrarlanan etkinlikleri destekler:

  • Tek bir etkinlik, benzersiz bir olayı temsil eder.
  • Yinelenen etkinlikler birden fazla gerçekleşmeyi tanımlar.

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

  • Zamanlanmış etkinlikler, 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 bir günün tamamını veya art arda gelen bir dizi günü kapsar. Tam gün etkinlikler, ne zaman gerçekleştiklerini 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 anlamlı olmadığını unutmayın.

Düzenleyenler

Etkinliklerin tek bir düzenleyeni 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 diyagramda takvimler, etkinlikler ve ilgili diğer öğ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 kimliği genellikle kullanıcının birincil e-posta adresiyle eşleşir. Hesap mevcut olduğu sürece birincil takvimi hiçbir zaman silinemez veya kullanıcı tarafından "sahipliği kaldırılamaz". Ancak bu öğe 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 birden fazla kullanıcı arasında paylaşı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ılar arasında paylaşılan genel özellikleri alabilir veya ayarlayabilirsiniz. Örneğin, bir takvimin başlığı ve varsayılan saat dilimi global ö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). Mevcut takvimleri kullanıcı listesine eklemek ve listeden kaldırmak için bu seçeneği kullanabilirsiniz. Ayrıca, varsayılan hatırlatıcılar gibi kullanıcıya özgü takvim özelliklerinin değerlerini almak ve ayarlamak için de bu özelliği kullanırsınız. Farklı kullanıcılar aynı takvim için farklı renkler ayarlayabileceğinden ön plan rengi de buna örnek verilebilir.

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

İşlem Takvimler CalendarList
insert Yeni bir ikincil takvim oluşturur. Bu takvim varsayılan olarak içerik üreticinin takvim listesine de eklenir. Mevcut bir takvimi kullanıcının listesine ekler.
delete İkincil takvimi siler. Bir takvimi kullanıcının listesinden kaldırır.
get Takvim meta verilerini (ör. başlık, saat dilimi) alır. Meta verileri ve renk veya hatırlatıcıları geçersiz kılma gibi kullanıcıya özel özelleştirmeleri alır.
patch/update Takvim meta verilerinde değişiklik yapma Kullanıcıya özel takvim özelliklerini değiştirir.

Düzenli etkinlikler

Haftalık toplantılar, doğum günleri ve tatiller gibi bazı etkinlikler düzenli bir programda birden çok kez gerçekleşir. Bu tekrarlanan etkinliklerin başlangıç ve bitiş zamanları farklı olsa da genellikle aynıdır.

Belirli bir programa göre tekrarlanan etkinlikler yinelenen olarak adlandırılır. Tek etkinlikler tekrarlanmaz ve yalnızca bir kez gerçekleşir.

Yinelenme kuralı

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

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

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

Tekrarlama 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.

Etkinliğin tekrarlanması için normal bir kural tanımladığı için RRULE mülkü en önemlisidir. Bu işlem 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 kaç kez tekrarlanacağı.

  • UNTIL: Etkinliğin tekrarlanacağı tarih veya tarih saati (dahil).

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

RDATE mülkü, etkinlik gerçekleşmelerinin gerçekleşmesi gereken ek tarihleri veya tarih saatlerini belirtir. Örneğin, RDATE;VALUE=DATE:19970101,19970120. RRULE kapsamında olmayan ek oluşumlar eklemek için bunu kullanın.

EXDATE özelliği RDATE'ye benzer ancak etkinliğin yapılmaması gereken tarihleri veya tarih saatlerini belirtir. Yani, bu oluşumlar hariç tutulmalıdır. Bu, yineleme kuralı tarafından oluşturulan geçerli bir örneğe yönlendirmelidir.

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

Bu özelliklerin her biri, yineleme alanında birden çok kez bulunabilir. Yinelenme, tüm RRULE ve RDATE kurallarının toplamından tüm EXDATE kuralları tarafından hariç tutulanların çıkarılmasıyla 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 günü 06:00-07:00 arasında gerçekleşen ve 29 Eylül'deki beşinci gerçekleşme işleminden 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 ay boyunca 3 günde bir tekrarlanan, 10 Haziran hariç ancak 9 ve 11 Haziran da dahil olmak üzere 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ç örneğinden oluşur, yani etkinliğin farklı zamanlarda tekrarlanması. Bu örnekler etkinlik olarak görev yapar.

Yinelenen etkinlik değişiklikleri, yinelenen etkinliğin tamamını (ve tüm örneklerini) veya yalnızca tek bir örneğini etkileyebilir. Üst öğe olan yinelenen etkinlikten farklı olan örneklere istisna denir.

Örneğin, bir istisna farklı bir özete, farklı bir başlangıç saatine veya yalnızca söz konusu oturuma davet edilen ek katılımcılara sahip olabilir. Düzenli etkinliği kaldırmadan da bir örneği tamamen iptal edebilirsiniz (örnek iptalleri etkinliğe status yansıtılır).

Google Calendar API aracılığıyla düzenli etkinlikler ve örneklerle nasıl çalışabileceğinize dair örnekleri burada bulabilirsiniz.

Saat dilimleri

Saat dilimi, tek bir standart saatin kullanıldığı bir bölgeyi belirtir. Google Takvim API'sinde, IANA saat dilimi tanımlayıcılarını kullanarak saat dilimlerini belirtirsiniz.

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

Takvim 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öntemleri tarafından 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ü varsayılan olarak takvim saat dilimini kullanır.
Tüm gün süren etkinlikleri zaman aralığıyla belirtilen sorgularla eşleştirme
list() ve instances() yöntemleri, belirtilen aralıkta yer alan döndürülen örnekleri kullanarak başlangıç ve bitiş zamanı filtreleri belirtmenizi sağlar. Takvim saat dilimi, tüm gün süren etkinliklerin filtre spesifikasyonuna uyup uymadığını belirlemek için başlangıç ve bitiş zamanlarını hesaplamak amacıyla kullanılır.

Etkinlik saat dilimi

Etkinlik örnekleri bir başlangıç ve bitiş zamanına sahiptir. Bu zamanların belirtilmesi saat dilimini içerebilir. Saat dilimini çeşitli şekillerde belirtebilirsiniz. Aşağıdakilerin tümü aynı zamanı belirtir:

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

İsterseniz etkinlik saatlerini UTC olarak da belirtebilirsiniz:

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

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

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

Yinelenen etkinlik saat dilimi

Yinelenen etkinlikler için her zaman tek bir saat dilimi belirtilmelidir. Etkinliğin tekrarlarını genişletmek için gereklidir.