Attendances tile | laravel-dashboard | Spatie

 SPATIE

  Laravel Dashboard
====================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-dashboard](https://spatie.be/docs/laravel-dashboard/v3)  Adding-tiles  Attendances tile

 Version   v4   v3   v2   v1

 Other versions for crawler [v4](https://spatie.be/docs/laravel-dashboard/v4) [v3](https://spatie.be/docs/laravel-dashboard/v3) [v2](https://spatie.be/docs/laravel-dashboard/v2) [v1](https://spatie.be/docs/laravel-dashboard/v1)

- [ Introduction ](https://spatie.be/docs/laravel-dashboard/v3/introduction)
- [ Support us ](https://spatie.be/docs/laravel-dashboard/v3/support-us)
- [ Requirements ](https://spatie.be/docs/laravel-dashboard/v3/requirements)
- [ Installation &amp; setup ](https://spatie.be/docs/laravel-dashboard/v3/installation-setup)
- [ Upgrading ](https://spatie.be/docs/laravel-dashboard/v3/upgrading)
- [ Questions and issues ](https://spatie.be/docs/laravel-dashboard/v3/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-dashboard/v3/changelog)
- [ About us ](https://spatie.be/docs/laravel-dashboard/v3/about-us)

Usage
-----

- [ Creating your first dashboard ](https://spatie.be/docs/laravel-dashboard/v3/basic-usage/creating-your-first-dashboard)
- [ Positioning tiles ](https://spatie.be/docs/laravel-dashboard/v3/basic-usage/positioning-tiles)
- [ Customizing the views ](https://spatie.be/docs/laravel-dashboard/v3/basic-usage/customizing-the-views)

Adding tiles
------------

- [ Overview ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/overview)
- [ Creating your own tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/creating-your-own-tile)
- [ Google calendar tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/google-calendar)
- [ Time and Weather tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/time-weather)
- [ Oh Dear Uptime tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/oh-dear-uptime)
- [ Twitter tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/twitter-tile)
- [ Velo tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/velo)
- [ Belgian trains tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/belgian-trains)
- [ Attendances tile ](https://spatie.be/docs/laravel-dashboard/v3/adding-tiles/attendances)

      You are viewing the documentation for **an older version** of this package. You can check the version you are using with the following command:

 `                                    composer show spatie/laravel-dashboard                                                                                                                                                                                                                                    `

Attendances tile
================

###  On this page

1. [ Installation ](#content-installation)
2. [ Usage ](#content-usage)

This tile displays who will be in the office this week, based upon Google calendar.

![screenshot](https://spatie.be/docs/laravel-dashboard/v3/images/attendances.png)

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

You can install the tile via composer:

```
composer require spatie/laravel-dashboard-attendances-tile
```

You must also [set up](https://github.com/spatie/laravel-google-calendar#installation) the `spatie/laravel-google-calendar` package. That package will fetch data for Google Calendar. Here are instructions that show how you can [obtain credentials to communicate with Google Calendar](https://github.com/spatie/laravel-google-calendar#how-to-obtain-the-credentials-to-communicate-with-google-calendar).

In the `dashboard` config file, you must add this configuration in the `tiles` key.

The `emails` should contain the email addresses of the team. Each member should allow access to their calendar via the service account created earlier.

A team member works from home whenever he puts a keyword from `keywords.home` into the name of an event within his Google calendar. A team member works in the office when there is a keyword from the `keywords.office` list in the name of an event in his Google calendar.

When a team member has no events with any keywords from home or office, then the member will automatically work from the office. Unless `missingKeywordMeansAtOffice` is set to `false`, which will mean the team member works from home.

```
// in config/dashboard.php

return [
    // ...
    'tiles' => [
        'attendances' => [
            'emails' =>  [
                'freek@spatie.be',
                'ruben@spatie.be',
                'vic@spatie.be',
            ],
            'keywords' => [
                'home' => ['thuis', 'verlof', 'ziek',],
                'office' => ['kantoor'],
            ],
            'missingKeywordMeansAtOffice' => true,
        ],
];
```

In `app\Console\Kernel.php` you should schedule the `Spatie\AttendancesTile\FetchAttendancesCommand` to run. You can let in run every minute if you want. You could also run this less frequently if fast updates on the dashboard aren't that important for this tile.

```
// in app/console/Kernel.php

protected function schedule(Schedule $schedule)
{
    // ...
    $schedule->command(Spatie\AttendancesTile\FetchAttendancesCommand::class)->everyMinute();
}
```

Usage
-----------------------------------------------------------------------

In your dashboard view you use the `livewire:attendances-tile` component.

```

```

### Customizing the view

If you want to customize the view used to render this tile, run this command:

```
php artisan vendor:publish --provider="Spatie\AttendancesTile\AttendancesTileServiceProvider" --tag="dashboard-attendances-tile-views"
```
