Bu kılavuzda takvimler, etkinlikler ve bunların birbiriyle ilişkisi açıklanmaktadır.
Takvimler
Takvim; özet, varsayılan saat dilimi, konum vb. gibi ek meta verilerin yanı sıra ilgili etkinliklerin bir koleksiyonudur. Her takvim, e-posta adresi olan bir kimlikle tanımlanır. Takvimlerin birden fazla sahibi olabilir.
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/saatinin yanı sıra ö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
veend.dateTime
alanlarını kullanır. - Tüm gün süren etkinlikler, tüm günü veya art arda gelen günleri kapsar. Tüm gün süren etkinlikler, ne zaman gerçekleşeceklerini belirtmek için
start.date
veend.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:
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, hesabın 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 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ılarla 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 aracı, mevcut takvimleri kullanıcı listesine 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. Farklı kullanıcılar aynı takvim için farklı renkler ayarlayabildiğinden, başka bir örnek de ön plan rengidir.
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, varsayılan olarak içerik üreticinin takvim listesine de eklenir. | Kullanıcının listesine mevcut bir takvimi ekler. |
delete |
İkincil bir takvimi siler. | Kullanıcının listesinden bir takvimi kaldırır. |
get |
Takvim meta verilerini (ör. başlık, saat dilimi) 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ı (bu alanlar, etkinliğin ilk gerçekleşme zamanını tanımlar. Bu, tek başına bir etkinlikmiş gibi değerlendirilir.) ve
Yinelenme alanı (etkinliğin zaman içinde nasıl tekrarlanacağını tanımlar).
Tekrar alanı, RFC 5545'te tanımlandığı şekilde 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ığından en önemlisidir. Çeşitli bileşenlerden oluşur. Bunlardan bazıları:
FREQ
: Etkinliğin tekrarlanması gereken sıklık (ör.DAILY
veyaWEEKLY
). Zorunludur.INTERVAL
: Etkinliğin ne sıklıkta tekrarlanması gerektiğini belirtmek içinFREQ
ile birlikte kullanılı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 yineleneceği haftanın günleri (SU
,MO
,TU
vb.). Diğer benzer bileşenler arasındaBYMONTH
,BYYEARDAY
veBYHOUR
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
.
Bu özelliği, RRULE
kapsamında olmayan ek oluşumları eklemek için 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, tekrarlama 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, tekrar alanında birden çok kez yer alabilir.
Tekrar, tüm RRULE
ve RDATE
kurallarının birleşimi olarak tanımlanır. Tüm EXDATE
kurallarıyla hariç tutulanlar bu birleşimin dışında kalır.
Aşağıda, yinelenen etkinliklere ilişkin bazı örnekler verilmiştir:
15 Eylül 2015'ten itibaren her Salı ve Cuma günü saat 06:00 ile 07:00 arasında gerçekleşen ve 29 Eylül'de 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" ], …
1 Haziran 2015'te başlayıp ay boyunca 3 günde bir yinelenen, 10 Haziran hariç ancak 9 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.
Tekrarlanan etkinlik değişiklikleri, tekrarlanan etkinliğin tamamını (ve tüm örneklerini) veya yalnızca tek tek örnekleri etkileyebilir. Tekrarlanan üst etkinliğinden 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 edilmiş ek katılımcıları olabilir. Ayrıca, yinelenen etkinliği kaldırmadan bir örneği tamamen iptal edebilirsiniz (örnek iptalleri etkinlik status
içinde yansıtılır).
Google Calendar API aracılığıyla yinelenen etkinlikler ve örneklerle nasıl çalışılacağına dair örnekleri burada bulabilirsiniz.
Saat dilimleri
Saat dilimi, standart saatin tek tip olarak 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öntemlerinde zaman değerlerinin yorumlanma veya sunulma şeklini etkiler.
- Sorgu sonucu saat dilimi dönüştürme
get()
,list()
veinstances()
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()
veinstances()
yöntemleri, belirtilen aralığa giren örnekleri döndüren yöntemle birlikte başlangıç ve bitiş zamanı filtrelerini 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ğıdaki örneklerin tümünde aynı saat belirtilmektedir:
dateTime
alanına saat dilimi farkını ekleyin (örneğin,2017-01-25T09:00:00-0500
).- Saat dilimi farkı olmadan saati belirtin (ör.
2017-01-25T09:00:00
) vetimeZone
alanını boş bırakın (bu durumda varsayılan saat dilimi kullanılır). - Saati,
2017-01-25T09:00:00
gibi bir fark olmadan belirtin ancak saat dilimini belirtmek içintimeZone
alanını kullanın.
Dilerseniz etkinlik zamanlarını UTC olarak da belirtebilirsiniz:
- Zamanı UTC olarak belirtin:
2017-01-25T14:00:00Z
veya sıfır saat farkı kullanın2017-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:
Düzenli etkinliklerin saat dilimi
Yinelenen etkinlikler için her zaman tek bir saat dilimi belirtilmelidir. Etkinliğin tekrarlarını genişletmek için gereklidir.