PHP code example of chetansingh / calendar-manager

1. Go to this page and download the library: Download chetansingh/calendar-manager library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

chetansingh / calendar-manager example snippets




hetansingh\CalendarManager\Services\CalendarManager;

$calendar = new CalendarManager([
    'drivers' => [
        'google' => [
            'client_id' => 'google-client-id',
            'client_secret' => 'google-client-secret',
            'redirect_uri' => 'https://your-app.test/google/callback',
            'access_token' => $googleAccessToken,
            'calendar_id' => 'primary',
        ],
        'outlook' => [
            'access_token' => $microsoftGraphAccessToken,
            'user_email' => '[email protected]',
        ],
    ],
]);

echo $calendar->driver('google')->getAuthUrl();

$calendar = new CalendarManager([
    'client_id' => 'google-client-id',
    'client_secret' => 'google-client-secret',
    'redirect_uri' => 'https://your-app.test/google/callback',
]);



hetansingh\CalendarManager\Services\CalendarManager;

$calendar = new CalendarManager([
    'client_id' => 'google-client-id',
    'client_secret' => 'google-client-secret',
    'redirect_uri' => 'https://your-app.test/google-callback.php',
]);

header('Location: ' . $calendar->driver('google')->getAuthUrl());
exit;



session_start();

rManager\Services\CalendarManager;

$calendar = new CalendarManager([
    'client_id' => 'google-client-id',
    'client_secret' => 'google-client-secret',
    'redirect_uri' => 'https://your-app.test/google-callback.php',
]);

if (empty($_GET['code'])) {
    exit('Google authorization code missing.');
}

$token = $calendar->driver('google')->handleCallback($_GET['code']);

if (!empty($token['error'])) {
    exit('Google auth failed: ' . ($token['error_description'] ?? $token['error']));
}

// Store this token for the logged-in user.
// In production, save it in your database, encrypted if possible.
$_SESSION['google_access_token'] = $token;

header('Location: /calendar.php');
exit;

session_start();

$calendar = new CalendarManager([
    'client_id' => 'google-client-id',
    'client_secret' => 'google-client-secret',
    'redirect_uri' => 'https://your-app.test/google-callback.php',
    'access_token' => $_SESSION['google_access_token'],
]);

$events = $calendar->driver('google')->listEvents([
    'maxResults' => 10,
    'singleEvents' => true,
    'orderBy' => 'startTime',
    'timeMin' => date('c'),
]);

$newToken = $calendar->driver('google')->refreshAccessToken($storedRefreshToken);

// Save the new access token details for the user.
// Keep the old refresh token if Google does not return a new one.

$event = $calendar->driver('google')->quickCreate([
    'title' => 'Planning call',
    'start' => '2026-05-01 10:00',
    'end' => '2026-05-01 10:30',
    'timezone' => 'Asia/Kolkata',
    'description' => 'Discuss launch tasks',
    'attendees' => ['[email protected]'],
]);

$outlookEvent = $calendar->driver('outlook')->quickCreate([
    'title' => 'Planning call',
    'start' => '2026-05-01 10:00',
    'end' => '2026-05-01 10:30',
    'timezone' => 'Asia/Kolkata',
    'attendees' => ['[email protected]'],
]);

$googleMeet = $calendar->driver('google')->createEventWithMeet([
    'title' => 'Demo call',
    'start' => '2026-05-01 15:00',
    'end' => '2026-05-01 15:30',
    'timezone' => 'Asia/Kolkata',
]);

$teamsMeeting = $calendar->driver('outlook')->createEventWithMeet([
    'title' => 'Demo call',
    'start' => '2026-05-01 15:00',
    'end' => '2026-05-01 15:30',
    'timezone' => 'Asia/Kolkata',
]);

$events = $calendar->driver('google')->listNormalizedEvents([
    'maxResults' => 10,
    'singleEvents' => true,
    'orderBy' => 'startTime',
    'timeMin' => date('c'),
]);

$events = $calendar->driver('google')->eventsBetween(
    '2026-05-01 00:00',
    '2026-05-31 23:59',
    ['timezone' => 'Asia/Kolkata']
);

$events = $calendar->driver('google')->searchEvents('planning');

[
    'id' => '...',
    'provider' => 'google',
    'title' => 'Planning call',
    'start' => '2026-05-01T10:00:00+05:30',
    'end' => '2026-05-01T10:30:00+05:30',
    'meeting_link' => 'https://...',
    'raw' => $providerEvent,
]

$busy = $calendar->driver('google')->checkAvailability([
    'timeMin' => '2026-05-01T09:00:00+05:30',
    'timeMax' => '2026-05-01T18:00:00+05:30',
]);

$schedule = $calendar->driver('outlook')->checkAvailability([
    'schedules' => ['[email protected]'],
    'startTime' => [
        'dateTime' => '2026-05-01T09:00:00',
        'timeZone' => 'Asia/Kolkata',
    ],
    'endTime' => [
        'dateTime' => '2026-05-01T18:00:00',
        'timeZone' => 'Asia/Kolkata',
    ],
]);