I want to know if the pub is gonna be busy or if certain friends might not be available, so I need to know when Celtic games are on.
The first hit when I searched 'celtic games' was this Sky Sports: Celtic Fixtures page. Luckily they provide an iCal feed of the games. I used the Sabre VObject PHP class to parse their calendar file.
Install VObject using composer:
cd projectdir composer require sabre/vobject ~4.1
<?php use Sabre\VObject; include 'vendor/autoload.php'; $url = "https://www.skysports.com/calendars/football/fixtures/teams/celtic?live=false"; $vcalendar = VObject\Reader::read(fopen($url, 'r')); $today = date("Ymd"); $str = ""; foreach($vcalendar->VEVENT as $event) { $date = substr($event->DTSTART,0,8); if($today == $date) { $time = substr($event->DTSTART,8,12); $str .= "Warning: Celtic game today at "; $str .= date("g:ia", strtotime($time)); $str .= " ("; $str .= $event->SUMMARY; $str .= ")"; $str .= "\n"; } } if(!empty($str)) { require("matrix.class.php"); $mat = new matrix(); $room = "#glasgow"; $mat->post($str, $room); }
That runs once a day, in the morning and warns me in the main #glasgow channel. It uses my Matrix PHP class to post.