ivastly / ats-calendar-integration
Exports vacations from any ATS to any Calendar system, e.g. Securex => MS Outlook Calendar
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^7.1
- ext-readline: *
- nesk/puphpeteer: ^1.6
- php-ews/php-ews: ~1.0
This package is auto-updated.
Last update: 2024-12-29 06:01:29 UTC
README
Surprised to see your key colleague ran out for vacation again? Yes, there was an email about it 2 months ago.. Usually we forget about it same minute, and realize the fact when it is too late. You don't want another vacation to ruin your sprint again, do you?
Then welcome a solution to sync all vacations from any HR system to any Calendar, so you always know who is going to be AFK!
How To Start
Docker way
- create and fill
app/config/config.php
file
cp app/config/config.example.php app/config/config.php nano app/config/config.php
- put dockerized script to cron
docker run --rm --interactive --tty --volume $PWD:/app composer install docker-compose run puphpeteer php sync_once.php # put this on cron for every 5 minutes
Classic way
- install node and puppeteer
npm install @nesk/puphpeteer
- install dependencies
composer install
- create and fill
app/config/config.php
file
cp app/config/config.example.php app/config/config.php nano app/config/config.php
- finally, run the script in the background. It will export all vacations to your Outlook Calendar.
screen -S securex-outlook-sync php sync.php
Security concerns
Anything -> MS Exchange integration
MS Exchange API (known as Exchange Web Services) requires plain-text user password to be specified. To workaround this, the password is requested when the script starts. Thus, it is never stored on disk or github as plain text. It makes the solution to be enterprise ready and 100% IT-security compliant.
Known Limitations
- only Securex HR Online -> MS Exchange Calendar is supported
- please be patient, local Outlook client needs some time to synchronize calendar events (< 1 min)
TODO
- delete vacation events from Calendar if they disappear from Securex
- support custom observable periods (currently hardcoded to 1 month)
- if a vacation occupies more than 1 week, it is represented as multiple Calendar events - fix it
- support more Calendars - Google Calendar, Zoho Calendar, etc.
- support more ATS - BambooHR, Recruitee, Manatal, Oracle Taleo, etc.
dockerize- tests
LICENSE
See LICENSE file