Bu rehberde takvimler, etkinlikler ve birbiriyle olan ilişkileri açıklanmaktadır.
Takvimler
Takvim, özet, varsayılan saat dilimi, konum gibi ek meta verilerin yanı sıra ilgili etkinliklerin bir koleksiyonudur. Her takvim, bir e-posta adresi olan bir kimlikle tanımlanır. Takvimlerin birden fazla sahibi olabilir.
Etkinlikler
Etkinlik, belirli bir tarih veya saat aralığıyla ilişkilendirilmiş bir nesnedir. Etkinlikler benzersiz bir kimlikle tanımlanır. Başlangıç ve bitiş tarihinin yanı sıra etkinlikler; özet, açıklama, konum, durum, hatırlatıcılar, ekler gibi diğer verileri de içerir.
Etkinlik türleri
Google Takvim, tek ve tekrarlanan etkinlikleri destekler:
- Tek bir etkinlik benzersiz bir durumu temsil eder.
- Yinelenen etkinlik birden çok tekrarı tanımlar.
Etkinlikler zamanlanmış veya tüm gün de olabilir:
- Zamanlanmış etkinlik, zamanın iki belirli noktası arasında gerçekleşir. Zamanlanmış etkinlikler, ne zaman gerçekleşeceklerini belirtmek için
start.dateTime
veend.dateTime
alanlarını kullanır. - Tüm gün süren bir etkinlik tüm güne veya art arda gün sayısına yayılır. Tüm gün süren etkinlikler, ne zaman gerçekleştiğini belirtmek için
start.date
veend.date
alanlarını kullanır. Saat dilimi alanının tüm gün etkinlikleri için anlamlı olmadığını unutmayın.
Düzenleyenler
Etkinliklerde, etkinliğin ana kopyasını içeren takvim olan tek bir düzenleyici bulunur. Etkinliklerde birden fazla katılımcı da olabilir. Katılımcılar 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şkilendirilmiş ö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, kullanıcının birincil takvimi hiçbir zaman silinemez veya "sahibi" olamaz. Ancak yine de diğer kullanıcılarla paylaşılabilir.
Birincil takvime ek olarak istediğiniz sayıda takvim oluşturabilirsiniz. Bu takvimler birden çok kullanıcı üzerinde değiştirilebilir, silinebilir ve paylaşılabilir.
Takvim ve takvim listesi
Takvimler koleksiyonu tüm mevcut takvimleri temsil eder. Takvim oluşturmak ve silmek için kullanılabilir. Ayrıca, 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 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 listeyi, kullanıcı listesine mevcut takvimleri eklemek veya listeden kaldırmak için kullanabilirsiniz. Bunu, varsayılan hatırlatıcılar gibi kullanıcıya özgü takvim özelliklerinin değerlerini almak ve ayarlamak için de kullanabilirsiniz. Başka bir örnek ö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 anlamı karşılaştırılmıştır:
İşlem | Takvimler | Takvim Listesi |
---|---|---|
insert |
Yeni bir ikincil takvim oluşturur. Bu takvim varsayılan olarak içerik üreticinin takvim listesine de eklenir. | Kullanıcı listesine mevcut bir takvimi ekler. |
delete |
İkincil bir takvimi siler. | Bir takvimi kullanıcının listesinden kaldırır. |
get |
Başlık ve saat dilimi gibi takvim meta verilerini alır. | Meta verilerin artı renk veya hatırlatıcı geçersiz kılma gibi kullanıcıya özel özelleştirmelerini alır. |
patch /update |
Takvim meta verilerini değiştirir. | 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 aralıklarla birden çok kez gerçekleşir. Farklı başlangıç ve bitiş zamanları dışında, yinelenen etkinlikler genellikle aynıdır.
Tanımlı bir programa göre tekrarlayan etkinlikler yinelenen olarak adlandırılır. Tek etkinlikler yinelenmez 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ı (bu, tek başına bir etkinlikmiş gibi ilk tekrarı tanımlar) ve
Yinelenme alanı (etkinliğin zaman içinde nasıl tekrarlanması gerektiğini tanımlar).
Yineleme alanı, RFC 5545'te tanımlandığı gibi bir veya birkaç RRULE
, RDATE
veya EXDATE
özelliğini temsil eden bir dize dizisi içerir.
RRULE
özelliği, etkinliğin tekrarlanmasına yönelik normal bir kural olarak en önemli olanıdır. Birkaç bileşenden oluşur. Bunların bazıları aşağıda verilmiştir:
FREQ
: Etkinliğin tekrarlanma sıklığı (DAILY
veyaWEEKLY
gibi). Zorunlu.INTERVAL
: Etkinliğin ne sıklıkla tekrarlanacağını belirtmek içinFREQ
ile birlikte çalışır. ÖrneğinFREQ=DAILY;INTERVAL=2
, iki günde bir anlamına gelir.COUNT
: Bu etkinliğin kaç kez tekrarlanacağı.UNTIL
- Etkinliğin tekrarlanacağı tarih veya saat (dahil).BYDAY
- Etkinliğin tekrarlanacağı haftanın günleri (SU
,MO
,TU
vb.). Diğer benzer bileşenler arasındaBYMONTH
,BYYEARDAY
veBYHOUR
bulunur.
RDATE
özelliği, etkinliklerin meydana gelmesi gereken ek tarihleri veya tarih saatlerini belirtir. Örneğin, RDATE;VALUE=DATE:19970101,19970120
.
RRULE
kapsamında olmayan ekstra durumlar eklemek için bunu kullanın.
EXDATE
özelliği RDATE işlevine benzer ancak etkinliğin olmaması gereken tarihleri veya tarih saatlerini belirtir. Yani tekrarlar 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 olmalıdır (tarih-saat değil).
Özelliklerin her biri yineleme alanında birden çok kez oluşabilir.
Yineleme, tüm RRULE
ve RDATE
kurallarının birleştirilmesiyle, tüm EXDATE
kurallarının hariç tutulduğu kurallar olarak tanımlanır.
Tekrarlanan etkinliklere bazı örnekler:
15 Eylül 2015'ten itibaren ve her ayın 29 Eylül'de beşinci kez gerçekleştikten sonra, her Salı ve Cuma 06:00'dan 07:00'a kadar gerçekleşen 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" ], …
1 Haziran 2015'te başlayan ve ay boyunca her 3 günde bir tüm gün tekrarlanan (10 Haziran hariç ancak 9 ve 11 Haziran dahil) 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 çeşitli örneklerden oluşur: Söz konusu etkinlikler farklı zamanlarda gerçekleşir. Bu örnekler etkinlik olarak görev yapar.
Düzenli etkinlik değişiklikleri, düzenli etkinliğin tamamını (ve tüm örneklerini) veya yalnızca bağımsız örnekleri etkileyebilir. Ana düzenli etkinliklerinden farklı olan örneklere istisnalar denir.
Örneğin, bir istisna farklı bir özete, farklı bir başlangıç zamanına veya yalnızca söz konusu örneğe davet edilen ek katılımcılara sahip olabilir. Ayrıca, düzenli etkinliği kaldırmadan örneği tamamen iptal edebilirsiniz (örnek iptalleri etkinliğe status
yansıtılır).
Takvim API'si aracılığıyla, yinelenen etkinlikler ve örneklerle nasıl çalışabileceğinizle ilgili örneklere buradan ulaşabilirsiniz.
Saat dilimleri
Saat dilimi, tek tip standart saat gözlemlenen bir bölgeyi belirtir. Calendar API'de saat dilimlerini IANA saat dilimi tanımlayıcılarını kullanarak 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öntemlerinin saat değerlerinin yorumlanma veya sunulma şeklini etkiler.
- Sorgu sonucu saat dilimi dönüşümü
get()
,list()
veinstances()
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 süren etkinlikleri zamana bağlı sorgularla eşleştirme
list()
veinstances()
yöntemleri, başlangıç ve bitiş zamanı filtrelerini belirtmenizi sağlar. Belirtilen aralıkta yer alan örnekleri döndürür. Takvim saat dilimi, tüm gün süren etkinliklerin başlangıç ve bitiş zamanlarını hesaplamak için kullanılır. Bu değerler, filtre spesifikasyonunun içinde olup olmadıklarını belirler.
Etkinlik saat dilimi
Etkinlik örneklerinin başlangıç ve bitiş zamanı vardır. Bu zamanlarla ilgili spesifikasyonlar saat dilimini içerebilir. Saat dilimini birkaç şekilde belirtebilirsiniz. Aşağıdakilerin tümü aynı saati belirtir:
dateTime
alanına saat dilimi farkı ekleyin (ör.2017-01-25T09:00:00-0500
).- Saat farkı olmadan zamanı belirtin. Örneğin,
2017-01-25T09:00:00
vetimeZone
alanını boş bırakın (varsayılan olarak varsayılan saat dilimi kullanılır). - Saat farkı olmadan saati belirtin. Örneğin,
2017-01-25T09:00:00
ancak saat dilimini belirtmek içintimeZone
alanını kullanın.
Dilerseniz etkinlik zamanlarını UTC olarak da belirtebilirsiniz:
- Saati UTC olarak belirtin:
2017-01-25T14:00:00Z
veya sıfır ofseti kullanın2017-01-25T14:00:00+0000
.
Etkinlik süresinin dahili temsili tüm bu durumlardan aynıdır, ancak timeZone
alanının ayarlanması Takvim kullanıcı arayüzünü kullanarak bir etkinlik saat dilimi ayarladığınızda olduğu gibi etkinliğe bir saat dilimi ekler.
Düzenli etkinlik saat dilimi
Düzenli etkinlikler için her zaman tek bir saat dilimi belirtilmelidir. Etkinliğin yinelemelerinin genişletilmesi için gereklidir.