Sample code for 30+ languages & platforms
Lua

Get a Google Calendar

See more Google Calendar Examples

Demonstrates how to get a particular Google Calendar. The calendar can be referenced by the calendar ID, or by the keyword "primary".

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

-- This example uses a previously obtained access token having permission for the
-- Google Calendar scope.

-- In this example, Get Google Calendar OAuth2 Access Token, the access
-- token was saved to a JSON file.  This example fetches the access token from the file..
local jsonToken = chilkat.JsonObject.new()
local success = jsonToken:load_file("qa_data/tokens/googleCalendar.json")
if not jsonToken:has_member("access_token") then
    print("No access token found.")
    return
end

local http = chilkat.Http.new()
http.auth_token = jsonToken:string_of("access_token")

-- Let's get the primary calendar.
local jsonResponse = http:quick_get_str("https://www.googleapis.com/calendar/v3/users/me/calendarList/primary")
if not http.last_method_success then
    print(http.last_error_text)
    return
end

print(jsonResponse)

-- A sample response is:

-- {
--  "kind": "calendar#calendarListEntry",
--  "etag": "\"1465249947472000\"",
--  "id": "support@chilkatcloud.com",
--  "summary": "support@chilkatcloud.com",
--  "timeZone": "America/Chicago",
--  "colorId": "14",
--  "backgroundColor": "#9fe1e7",
--  "foregroundColor": "#000000",
--  "selected": true,
--  "accessRole": "owner",
--  "defaultReminders": [
--   {
--    "method": "popup",
--    "minutes": 10
--   }
--  ],
--  "notificationSettings": {
--   "notifications": [
--    {
--     "type": "eventCreation",
--     "method": "email"
--    },
--    {
--     "type": "eventChange",
--     "method": "email"
--    },
--    {
--     "type": "eventCancellation",
--     "method": "email"
--    },
--    {
--     "type": "eventResponse",
--     "method": "email"
--    }
--   ]
--  },
--  "primary": true
-- }

-- It can be parsed like this:
local json = chilkat.JsonObject.new()
json:load(jsonResponse)

print("kind: " .. json:string_of("kind"))
print("id: " .. json:string_of("id"))

-- Examine the notification settings, if any..
local numSettings = json:size_of_array("notificationSettings.notifications")
if numSettings > 0 then
    local i = 0
    while i < numSettings do
        json.i = i
        print("Notification Type: " .. json:string_of("notificationSettings.notifications[i].type"))
        print("Notification Method: " .. json:string_of("notificationSettings.notifications[i].method"))
        i = i + 1
    end
end