[Lazarus] Google Calendar APIs
Marcello
markbass72 at zoho.com
Thu Jul 21 16:09:17 CEST 2016
Hi all
I'm trying to create a event on a google calendar. Starting from
"calendardemo" I create a new procedure to test my code and a button to
execute.
Following code works properly: after execution I can see the event using
a browser.
I know that recently a bug was closed
(http://bugs.freepascal.org/view.php?id=29487) but I do not think it is
the same problem.
Any suggestions?
Thanks
Marcello
procedure TMainForm.Insert;
var Entry: TEvent;
begin
Entry:=TEvent.Create();
try
Entry.id := 'aaa' + FormatDateTime('yyyymmddhhnnss', Now);
Entry.summary:=Format('test event: %s', [Entry.id]);
Entry.description:='empty description, yeah!';
Entry.location:='a location';
Entry.start := TEventDateTime.Create();
Entry.start.dateTime:= ComposeDateTime(EncodeDate(2016,7,16),EncodeTime(23 -2,0,0,0));
Entry.start.timeZone:='Europe/Rome';
Entry._end := TEventDateTime.Create();
Entry._end.dateTime := ComposeDateTime(EncodeDate(2016,7,16),EncodeTime(23 -2,10,0,0));
Entry._end.timeZone:='Europe/Rome';
SaveRefreshToken;
FCalendarAPI.EventsResource.Insert(FCurrentCalendar.ID, Entry);
finally
Entry.Free;
end;
end;
Follow request.log
--------------------------------------------------------------------------------
Request : POST https://www.googleapis.com/calendar/v3/calendars/mygoogleaccount@gmail.com/events
Headers:
Content-type:application/json
Authorization: Bearer ya29.CjUnA_TOUWN8YvS8KjqYqFtrIyfJEQPJkyrl36V4LuM8T90b6qwMKJ0j4kTsx3YrW42QKF0MAg
Body:
{ "description" : "empty description, yeah!", "end" : { "dateTime" : "2016-07-16T21:10:00.000Z", "timeZone" : "Europe\/Rome" }, "id" : "aaa20160721160146", "location" : "a location", "start" : { "dateTime" : "2016-07-16T21:00:00.000Z", "timeZone" : "Europe\/Rome" }, "summary" : "test event: aaa20160721160146" }
Trying multiple protocols.
--------------------------------------------------------------------------------
Response : 200 : OK
Headers:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Thu, 21 Jul 2016 14:01:46 GMT
Vary: X-Origin
Content-Type: application/json; charset=UTF-8
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30,29,28,27,26,25"
Accept-Ranges: none
Vary: Origin,Accept-Encoding
Transfer-Encoding: chunked
Body:
{
"kind": "calendar#event",
"etag": "\"2938219412944000\"",
"id": "aaa20160721160146",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=YWFhMjAxNjA3MjExNjAxNDYgbWFnZ2lvcmRvbW80bUBt",
"created": "2016-07-21T14:01:46.000Z",
"updated": "2016-07-21T14:01:46.472Z",
"summary": "test event: aaa20160721160146",
"description": "empty description, yeah!",
"location": "a location",
"creator": {
"email": "mygoogleaccount at gmail.com",
"self": true
},
"organizer": {
"email": "mygoogleaccount at gmail.com",
"self": true
},
"start": {
"dateTime": "2016-07-16T23:00:00+02:00",
"timeZone": "Europe/Rome"
},
"end": {
"dateTime": "2016-07-16T23:10:00+02:00",
"timeZone": "Europe/Rome"
},
"iCalUID": "aaa20160721160146 at google.com",
"sequence": 0,
"reminders": {
"useDefault": true
}
}
More information about the Lazarus
mailing list