falco442 / cake-google-calendar
Plugin Google Calendar for CakePHP 2.x
Installs: 29
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 2
Type:cakephp-plugin
This package is not auto-updated.
Last update: 2022-02-01 13:05:49 UTC
README
This is a short CakePHP plugin for Google Calendar, still in development. For now, it can:
- create an event on Google Calendar
- get the Google User's calendar list
Install
Manual install
Download the .zip file and extract it in your app/Plugin folder, renaming the master folder as "GoogleCalendar"
Clone with Git
Go to app/Plugin
folder and give the command
git clone https://github.com/falco442/CakePHP-GoogleCalendarPlugin.git GoogleCalendar
With Composer
After installing CakePHP 2.x with Composer (follow this instructions) you can install the plugin with the command
composer require falco442/cake-google-calendar
Usage
Load the component
Load GoogleCalendar in your Components in the AppController.php
:
public $components = array( ..., 'GoogleCalendar.GoogleCalendar'=>array( 'id'=>'your-Google-App-id', 'secret'=>'your-Google-App-secret' ) );
and this will load the component located in the plugin.
Create an event
If you want to create an event on Google Calendar, all you have to do is to use the function insertEvent()
, passing two arguments: the array of the data of the event, and the Google id (Google mail) of the user for which create the event:
$this->GoogleCalendar->insertEvent($googleAccountID, $event);
where the event has to be an array of the form
$event = array( 'start'=>'2014-12-31 22:00:00', 'end'=>'2015-01-01 03:30:00', 'summary'=>'New Years Eve Dinner', 'description'=>'We will have a great party!!', 'location'=>'Via Nazionale 6 Roma' );
The function returns the id
of the event returned by Google.
Get the User's calendar list
To get a user's calendar list, simply use the function getCalendarList()
, that accepts a unique parameter: the Google Account ID of the user of which we want to retrieve the calendar list:
$this->GoogleCalendar->getCalendarList($googleAccountID);
the function returns an array which contains the calendar list for the $googleAccountID
.
Extra
Map Event fields
If you don't want to map everytime the fields of the event (maybe because your events' table fields are not named as the Google Calendar events' fields are), you can pass the mapping parameters in AppController.php
:
public $components = array( ..., 'GoogleCalendar.GoogleCalendar'=>array( 'id'=>'your-Google-App-id', 'secret'=>'your-Google-App-secret', 'eventMap'=>array( 'summary'=>'event_title', 'description'=>'event_description' 'location'=>'event_address', 'start'=>'start_datetime', 'end'=>'end_datetime' ) ) );
Change Time Zone
Note that events' start and date accepts only a datetime
format, and post to Google Calendar a datetime in the format RFC3339, with a timezone set by default.
The default timezone is Europe/Rome
, but you can change it from the AppController.php
:
public $components = array( ..., 'GoogleCalendar.GoogleCalendar'=>array( 'id'=>'your-Google-App-id', 'secret'=>'your-Google-App-secret', 'timeZone'=>'your-Time-Zone-code' ) );
You can find here the list of supported timezones by PHP.