Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CalendarGo

Overview

CalendarGo is a PHP learning project that consumes Pokémon GO event data, normalizes it and presents it through a daily view, two 14-day calendar views and event-type filters. Events are read-only: they cannot be created or modified in this application.

Data comes from the minified ScrapedDuck events feed, whose underlying event information is provided by LeekDuck. CalendarGo is a free demo with no paywall or advertising.

Why I built it

The project explores procedural PHP, remote JSON validation, date handling, safe HTML output and a small resilient file cache without frameworks or a database.

The project originally parsed local ICS files and was later migrated to a live JSON data source to keep the demo current and more reliable.

Tech Stack

  • PHP 8.2+
  • HTML and CSS
  • Vanilla JavaScript
  • ScrapedDuck JSON data

To run it locally:

php -S localhost:8000

Then open http://localhost:8000/.

The application timezone is configured by APP_TIMEZONE in utils/events.php and defaults to Atlantic/Canary. Timestamps ending in Z are parsed as UTC and converted to that timezone. Timestamps without an offset are interpreted directly in the application timezone.

The feed is cached for 15 minutes in data/cache/events.json. The PHP process must be able to write to data/cache/. Runtime cache and temporary files are ignored by Git. Set the CALENDARGO_CACHE_FILE environment variable to use another cache location. To force a refresh, delete events.json from the cache directory or wait for its 15-minute lifetime to expire. If refreshing fails, CalendarGo uses the last valid cache; if neither source is available, it displays a friendly unavailable-data message.

Status

Portfolio demo. ScrapedDuck is an external, scraped data source with no service-level agreement, so availability and schema continuity cannot be guaranteed. The project intentionally does not provide event management or persistence beyond its local feed cache.

Use of the data must credit both ScrapedDuck and LeekDuck. According to ScrapedDuck's published conditions, applications using it must not be placed behind a paywall or monetized with advertising.

Demo

This project requires a PHP environment with a writable cache directory.
Screenshots of the current version are available below.

Preview

Screenshot 2026-07-22 114058 Screenshot 2026-07-22 114115 Screenshot 2026-07-22 114128

About

PHP event calendar that displays and filters current Pokémon GO events from a remote JSON data source.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages