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 fazla sahibi olabilir.
Etkinlikler
Etkinlik, belirli bir tarih veya saat aralığıyla ilişkilendirilmiş bir 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 aralığı 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 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
veend.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. Etkinlikler birden fazla katılımcıya da sahip 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 bir 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 özgü 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 etkinliklere düzenli denir. Tek etkinlikler tekrarlanmaz ve yalnızca bir kez gerçekleşir.
Yinelenme kuralı
Yinelenen bir etkinliğin programı iki bölümde tanımlanır:
Başlangıç ve bitiş alanları (ilk oluşumu, tek başına tek bir etkinlikmiş gibi tanımlar) ve
Yinelenme alanı (etkinliğin zaman içinde nasıl tekrarlanacağını 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
veyaWEEKLY
). Zorunlu.INTERVAL
: Etkinliğin ne sıklıkta tekrarlanacağını belirtmek içinFREQ
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 tekrarlanacağı tarih veya tarih saati (dahil).BYDAY
: Etkinliğin tekrarlanacağı haftanın günleri (SU
,MO
,TU
vb.). Benzer diğer bileşenler arasındaBYMONTH
,BYYEARDAY
veBYHOUR
bulunur.
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 olmaması 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ği işaret etmelidir.
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.
Tekrar, tüm RRULE
ve RDATE
kurallarının birleşimi eksi tüm EXDATE
kuralları tarafından hariç tutulanlar olarak tanımlanır.
Yinelenen etkinliklere ilişkin bazı örnekler aşağıda verilmiştir:
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" ], …
1 Haziran 2015'te başlayan ve 10 Haziran hariç olmak üzere ayın tamamında 3 günde bir yinelenen, tüm gün süren bir etkinlik (9 ve 11 Haziran dahil):
... "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
Yinelenen bir etkinlik, farklı zamanlarda gerçekleşen belirli oluşumları kapsayan birkaç örnek içerir. Bu örnekler de etkinlik gibi davranır.
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, istisnalar 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 yinelenen etkinlikler ve örneklerle çalışma örneklerini burada bulabilirsiniz.
Saat dilimleri
Saat dilimi, tek bir standart saatin geçerli olduğu 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üşümü
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ü varsayılan olarak takvim saat dilimini kullanır.- Tüm gün süren etkinlikleri zaman aralığıyla belirtilen sorgularla eşleştirme
list()
veinstances()
yöntemleri, başlangıç ve bitiş zamanı filtrelerini belirtmenize olanak tanır. Bu yöntemler, belirtilen aralığa giren örnekleri döndürür. 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 birkaç şekilde belirtebilirsiniz. Aşağıdakilerin tümü aynı zamanı belirtir:
dateTime
alanına bir saat dilimi ofseti ekleyin (ör.2017-01-25T09:00:00-0500
).- Saati,
timeZone
alanını boş bırakarak (bu durumda varsayılan saat dilimi kullanılır)2017-01-25T09:00:00
gibi bir ofset olmadan belirtin. - Saati, saat farkı olmadan belirtin (ör.
2017-01-25T09:00:00
). Ancak saat dilimini belirtmek içintimeZone
alanını kullanın.
Dilerseniz etkinlik zamanlarını UTC olarak da belirtebilirsiniz:
- UTC olarak zamanı belirtin:
2017-01-25T14:00:00Z
veya sıfır saat farkı kullanın2017-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:
Düzenli etkinlik saat dilimi
Yinelenen etkinlikler için her zaman tek bir saat dilimi belirtilmelidir. Etkinliğin tekrarlarını genişletmek için gereklidir.