Google Calendar API Servisinden Tatil Günlerini Almak

1 yıldan fazla önce
1 dakikalık okuma
301 okunma
1 beğeni

Çalıştığım projede yıllık bazda tatil günlerini almam gerekiyordu. Bunu manuel yapmak yerine güncel bir servis üzerinden çekmek daha sürdürülebilir geldiği için Google Calendar API’sini kullandım. Tek bir servise API key parametresi göndererek ilgili JSON datasını çekebilirsiniz.

Öncelikle Google Console‘dan proje oluşturup Google Calendar API‘sini aktif etmeniz gerekiyor. Aşağıdaki linkten Google Console sayfasına ulaşabilirsiniz ve API’yi aktif edip keyi alabilirsiniz.

https://console.cloud.google.com/

1curl --location --request GET 'https://www.googleapis.com/calendar/v3/calendars/tr.turkish%[email protected]/events?key=[API_KEY]' \
2--header 'Content-Type: application/json; charset=utf-8'
1{
2    "kind": "calendar#events",
3    "etag": "\"123\"",
4    "summary": "Türkiye'deki Tatiller",
5    "updated": "2022-07-25T13:41:56.000Z",
6    "timeZone": "UTC",
7    "accessRole": "reader",
8    "defaultReminders": [],
9    "nextSyncToken": "",
10    "items": [
11      {
12            "kind": "calendar#event",
13            "etag": "\"3259965051556000\"",
14            "id": "20210423_6d7gcjt9mjvl8jmt96ogf5ne68",
15            "status": "confirmed",
16            "htmlLink": "https://www.google.com/calendar/event?eid=MjAyMTA0MjNfNmQ3Z2NqdDltanZsOGptdDk2b2dmNW5lNjggdHIudHVya2lzaCNob2xpZGF5QHY",
17            "created": "2021-08-26T12:55:25.000Z",
18            "updated": "2021-08-26T12:55:25.778Z",
19            "summary": "Ulusal Egemenlik ve Çocuk Bayramı",
20            "description": "Resmi tatil",
21            "creator": {
22                "email": "tr.turkish#[email protected]",
23                "displayName": "Türkiye'deki Tatiller",
24                "self": true
25            },
26            "organizer": {
27                "email": "tr.turkish#[email protected]",
28                "displayName": "Türkiye'deki Tatiller",
29                "self": true
30            },
31            "start": {
32                "date": "2021-04-23"
33            },
34            "end": {
35                "date": "2021-04-24"
36            },
37            "transparency": "transparent",
38            "visibility": "public",
39            "iCalUID": "[email protected]",
40            "sequence": 0,
41            "eventType": "default"
42        },
43     ...
44     ...
45    ]

Tüm tatil günleri items dizisinde dönmektedir. Bu dizi altındaki kullanabileceğiniz genel alanlar;

  • summary: Tatil Adı (Ramazan Bayramı vb.)
  • start altındaki date: Tatil başlangıç tarihi
  • end altındaki date: Tatil bitiş tarihi
© Atakan Yasin Uludağ v0.1.1