PHPackages                             ekotechnology/guzzlecal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. ekotechnology/guzzlecal

ActiveLibrary[HTTP &amp; Networking](/categories/http)

ekotechnology/guzzlecal
=======================

Google Calendar client that uses Guzzle

0.2.2(12y ago)10715PHPPHP &gt;=5.3.0

Since Jan 22Pushed 11y ago1 watchersCompare

[ Source](https://github.com/ekotechnology/guzzlecal)[ Packagist](https://packagist.org/packages/ekotechnology/guzzlecal)[ Docs](http://github.com/ekotechnology/guzzlecal)[ RSS](/packages/ekotechnology-guzzlecal/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (8)Used By (0)

Guzzlecal
=========

[](#guzzlecal)

Google Calendar Client that uses [Guzzle](http://guzzlephp.org) at its core.

Features
--------

[](#features)

### Authentication

[](#authentication)

- Helpers for OAuth2 URL creation
- Helpers for capturing OAuth2 authentication
- Requests sent through the Guzzle client are signed via plugin
    - If the OAuth2 settings specify an `offline` mode, expired access tokens can be automatically refreshed

### Calendar List

[](#calendar-list)

- List calendars that are available to the authenticated user
- Remove calendars from the listing

### Calendar

[](#calendar)

- Create new account sub-calendars
- View/Update metadata on existing calendars
- Delete account sub-calendars

### Events

[](#events)

- Create new events
    - Including recurring events
    - Add attendees/invitations
- View/Update metadata on events
- Delete single or recurring events

### Free/Busy Queries

[](#freebusy-queries)

- Allows you to query for times that are marked as `Busy` on the calendar

### Custom Requests

[](#custom-requests)

- If you don't want to use the response representations provided via Guzzlecal, we provide a passthru option that will just give you an OAuth2 authenticated Guzzle client that you can do whatever you want on. If you're using `offline` mode, expired tokens will still be refreshed for you automatically.

Installation
------------

[](#installation)

### Install via Composer

[](#install-via-composer)

Depending on what version of Guzzlecal you want to use, your settings will vary. The goal is to keep the most stable version of this package in master, with the develop branch containing bleeding edge changes. When you want to lock in to a specific version (and you *should* for anything important), then you'll want to use a require line in your composer.json that might look like `"ekotechnology/guzzlecal": "0.2"`, etc. If you want to follow along with the bleeding edge ( *This is **not** suggested for anything important*. ), you can do `"ekotechnology/guzzlecal": "dev-develop"` as your requirement.

If you'd rather not muck around with your composer.json manually, you can just search for Guzzlecal when adding requirements with the composer command.

### Install via Git/Filesystem

[](#install-via-gitfilesystem)

> If you are going to use this method, it is suggested that you star the repository so that you can integrate any security patches or bug fixes as soon as possible.

Use with Laravel 4
------------------

[](#use-with-laravel-4)

> This package was built for and within Laravel 4, although the goal is that it will function properly in other PHP projects. See the section below for more info.

### Configuration

[](#configuration)

Guzzlecal ships with a Service Provider and Facade so that it can tie in very nicely with Laravel 4. Once you've installed Guzzlecal, configuring it for Laravel is pretty simple. You just need to add an entry in for the Service Provider and the Facade.

From the base directory of your app, you need to go to the app configuration file which is found in app/config/app.php. You'll need to add an entry in the `providers` array with a value of `Ekotechnology\Guzzlecal\GuzzlecalServiceProvider`. This might make your `providers` array look something like this:

```
'providers' => array(
	'Illuminate\Foundation\Providers\ArtisanServiceProvider',
	'Illuminate\Auth\AuthServiceProvider',
	'Illuminate\Cache\CacheServiceProvider',
	'Illuminate\Foundation\Providers\CommandCreatorServiceProvider',
	'Illuminate\Foundation\Providers\ComposerServiceProvider',
	...
	'Illuminate\Validation\ValidationServiceProvider',
	'Illuminate\View\ViewServiceProvider',
	'Illuminate\Workbench\WorkbenchServiceProvider',
	'Ekotechnology\Guzzlecal\GuzzlecalServiceProvider'

),

```

Now, we just need to register the alias for the Facade. So in the `aliases` array, you'll need to add an entry with the value of `Ekotechnology\Guzzlecal\Facades\GuzzlecalFacade`. This might make your `aliases` array look like so:

```
'aliases' => array(
	'App'             => 'Illuminate\Support\Facades\App',
	'Artisan'         => 'Illuminate\Support\Facades\Artisan',
	'Auth'            => 'Illuminate\Support\Facades\Auth',
	'Blade'           => 'Illuminate\Support\Facades\Blade',
	'Cache'           => 'Illuminate\Support\Facades\Cache',
	'ClassLoader'     => 'Illuminate\Foundation\ClassLoader',
	'Config'          => 'Illuminate\Support\Facades\Config',
	...
	'Route'           => 'Illuminate\Support\Facades\Route',
	'Schema'          => 'Illuminate\Support\Facades\Schema',
	'Session'         => 'Illuminate\Support\Facades\Session',
	'URL'             => 'Illuminate\Support\Facades\URL',
	'Validator'       => 'Illuminate\Support\Facades\Validator',
	'View'            => 'Illuminate\Support\Facades\View',
	'Guzzlecal'       => 'Ekotechnology\Guzzlecal\Facades\GuzzlecalFacade'
),

```

### Example

[](#example)

Use outside of Laravel 4
------------------------

[](#use-outside-of-laravel-4)

If you're not using Laravel 4, you should still be able to use Guzzlecal. You'll want to make sure that you're autoloading your Composer autoloader, and if you aren't using Composer (You really should!), then you'll just have to make sure that the classes in src/Ekotechnology/Guzzlecal get loaded.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~30 days

Recently: every ~37 days

Total

6

Last Release

4714d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/13fd1ee0b2723fd9d7b2d3e873e407e78fa91b623437825c840a1aa2cf38c79c?d=identicon)[treahauet](/maintainers/treahauet)

---

Top Contributors

[![trea](https://avatars.githubusercontent.com/u/1181448?v=4)](https://github.com/trea "trea (55 commits)")[![jeromeWeb](https://avatars.githubusercontent.com/u/1975475?v=4)](https://github.com/jeromeWeb "jeromeWeb (1 commits)")

---

Tags

googleGuzzleoauth2calendar

### Embed Badge

![Health badge](/badges/ekotechnology-guzzlecal/health.svg)

```
[![Health](https://phpackages.com/badges/ekotechnology-guzzlecal/health.svg)](https://phpackages.com/packages/ekotechnology-guzzlecal)
```

###  Alternatives

[bilfeldt/laravel-http-client-logger

A logger for the Laravel HTTP Client

1531.6M3](/packages/bilfeldt-laravel-http-client-logger)[kozz/laravel-guzzle-provider

Guzzle 5/6 Service Provider for Laravel

621.1M2](/packages/kozz-laravel-guzzle-provider)[softonic/guzzle-oauth2-middleware

Guzzle middleware with OAuth2 integration

103.6M5](/packages/softonic-guzzle-oauth2-middleware)[onlime/laravel-http-client-global-logger

A global logger for the Laravel HTTP Client

1935.1k](/packages/onlime-laravel-http-client-global-logger)[garf/laravel-pinger

Ping search engines about website updates

2422.2k](/packages/garf-laravel-pinger)[wppconnect-team/wppconnect-laravel-client

A simple API with Guzzle wrapper, providing easy access to wppconnect's endpoints.

403.4k](/packages/wppconnect-team-wppconnect-laravel-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
