Campsite Reservation Cancellation Finder (Yellowstone National Park)

Overview

yellowstone-camping logo juftin logo

yellowstone-camping

yellowstone-camping is a Campsite Reservation Cancellation Finder for Yellowstone National Park. This simple Python application will continuously check Yellowstone's Campground Availability API and let you know as soon as a reservation is available with a Push Notification on your Android or iOS device. Don't stress about finding a campsite in that booked out campground, let yellowstone-camping do the work for you.

How to set up your campsite search

Make a file called yellowstone-camping.env and place it at the root of this repository, you can use the example.yellowstone-camping.env file as a template. Once the yellowstone-camping.env file is ready, fill out your lodging details and Pushover credentials:

export BOOKING_DATE_START="2021-07-31" # YELLOWSTONE ARRIVAL DATE (YYYY-MM-DD)
export NUMBER_OF_GUESTS=2 # NUMBER OF PEOPLE IN THE CAMPING RESERVATION
export NUMBER_OF_NIGHTS=1 # NUMBER OF NIGHTS IN THE CAMPING RESERVATION
export POLLING_INTERVAL=600 # HOW OFTER TO CHECK FOR NEW RESERVATIONS (IN SECONDS)

export PUSHOVER_PUSH_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxx" # PUSHOVER API TOKEN
export PUSHOVER_PUSH_USER="xxxxxxxxxxxxxxxxxxxxxxxx" # PUSHOVER USER KEY

Running with Docker

./scripts/check-yellowstone.sh

To run the reservation search in a Docker container you'll run the check-yellowstone.sh file, this creates a docker container called yellowstone-camping that runs in the background. Automatically, the logs will be attached to the current session. Exiting the attached logs does not kill the search. Once the scraper has found its first booking it will exit. Use docker stop yellowstone-camping to kill the container and stop searching or docker logs -f yellowstone-camping to reattach the container logs.

Running Locally with Python

Don't work with Docker? No problem. The docker image is based on Python 3.8.X, but any version of Python 3 you have locally should suffice. Source the yellowstone-camping.env file and run the python script (this requires the requests package to be installed):

source yellowstone-camping.env && python scripts/find_availability.py

How do I set up Pushover for Push Notifications to my phone?

Pushover is an neat service/app that allows you to easily send push notifications to your mobile device. More details on how to set up Pushover can be found on their website. FYI: Pushover is a paid service (a lifetime subscription costs $5.00). However, if Pushover is not right for you then the source code can be manually changed to use your preferred method of sending notifications. To bypass logging to Pushover, just remove the variables, set them to empty, or leave them untouched; the script will simply log CRITICAL events to the console when a campsite is available.





About this Project

My partner and I are taking a trip this summer (July, 2021) from home in Colorado through Wyoming to Glacier National Park. Like all national parks right now, the campsites in Glacier are a hot commodity and tough to come by.

To help us get an advantage in finding a site we signed up for Campnab, a service that lets you sign up for text notifications when booked out campgrounds receive cancellations. Long story short, it's totally worth it and get's a big recommendation from me. We found a 5 day cancellation and booked our first choice campground within a couple weeks of signing up.

Later in our trip, we'll be going through Yellowstone and Grand Teton National Park. Unfortunately, Campnab doesn't (currently) work for most sites in Yellowstone, since they use a different booking provider than the rest of the National Park System. Instead, I decided to play around with the booking website with Chrome Developer tools, figure out the endpoints responses, and build my own integration with their API. It's built in Python, runs in a docker container, and sends push notifications through via Pushover.

Feature Requests and Technical Feedback / Questions are best done though the Issues Page. Some basic command line skills and an always-on computer are required to run this.

We're still waiting for our Yellowstone spot as of writing this and can't wait to get back there this summer. I hope yellowstone-camping is useful for someone out there, good luck hunting for your next spot!




Cool stuff happens in Denver, CO Denver
Owner
Justin Flannery
Data Science Engineering @ Teladoc
Justin Flannery
A hilarious program that translates text to Google's

Bork, bork, bork! A hilarious program that translates text in a file to Google's "bork bork bork' language. How to use Download the main.py file. Chan

The Algorithmic 1 Dec 17, 2021
Simple Discord bot for the Collectez community.

Harvey - Discord Bot Simple Discord bot for the Collectez community. Features Ping the current status of Collectez's Teztools node. Steal emojis from

delintkhaum 1 Dec 26, 2021
Discord bot that automatically fills out health screenings

Auto Covid Bot Automatically fill out the NYC DOE health screening form by registering with a discord bot School code can be found on https://schoolse

Cleo 2 Jul 29, 2022
Discord bot built using Python. through this you can get information about the upcoming matches, scoreboard, live score

IPL-bot This is a Discord bot built using Python. through this you can get information about the upcoming matches, scoreboard, live score, and many mo

0 Dec 23, 2021
JAWS Pankration 2021 - DDD on AWS Lambda sample

JAWS Pankration 2021 - DDD on AWS Lambda sample What is this project? This project contains sample code for AWS Lambda with domain models. I presented

Atsushi Fukui 21 Mar 30, 2022
Production Ontology Merging (PrOM) Framework

Production Ontology Merging (PrOM) Framework OWL 2 DL ontology merging framework tailored to the production domain Features preprocessing: translation

4 Nov 02, 2022
Python Client for Instagram API

This project is not actively maintained. Proceed at your own risk! python-instagram A Python 2/3 client for the Instagram REST and Search APIs Install

Facebook Archive 2.9k Dec 30, 2022
Reverse engineering multi-device WhatsApp Web.

whatsapp-web-multi-device-reveng In this repository, the research for reverse engineering multi-device WhatsApp Web takes place, see here for a descri

84 Jan 01, 2023
A simple bot to upload file to various cloud servers.

Cloudsy Bot A simple bot to upload file to various cloud servers. Variables API_HASH Your API Hash from my.telegram.org API_ID Your API ID from my.tel

Flying Santas 8 Oct 31, 2022
A pixeldrain python package using pixeldrain official api

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/Pixeldrain/blob/main/LICENSE In

Fayas Noushad 6 Jan 26, 2022
AirDrive lets you store unlimited files to cloud for free. Upload & download files from your personal drive at any time using its super-fast API.

AirDrive lets you store unlimited files to cloud for free. Upload & download files from your personal drive at any time using its super-fast API.

Sougata 4 Jul 12, 2022
Discord Bot for bugbounty Web

BugbountyBot Discord Bot for Bug Bounty Web The purpose of this bot is to automa

Beek Labs 6 May 03, 2022
This Telegram bot allows you to create direct links with pre-filled text to WhatsApp Chats

WhatsApp API Bot Telegram bot to create direct links with pre-filled text for WhatsApp Chats You can check our bot here. The bot is based on the API p

RobotTrick • רובוטריק 17 Aug 20, 2022
My Advent of Code solutions. I also upload videos of my solves: https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41WITA

My solutions to adventofcode.com puzzles. I post videos of me solving the puzzles in real-time at https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41

195 Jan 04, 2023
A Python wrapper for discord slash-commands, designed to extend discord.py.

dislash.py An extending library for discord.py that allows to build awesome slash-commands. ⭐

173 Dec 19, 2022
Telegram bot to download almost all from Instagram

Instagram Manager Bot The most advanced Instagram Downloader Bot. Please fork this repository don't import code Made with Python3 (C) @subinps Copyrig

SUBIN 300 Dec 30, 2022
Telegram bot for stream music or video on telegram

KYURA MUSIC Telegram bot for stream music or video on telegram, powered by PyTgCalls and Pyrogram Help Need Help me to translate this repo, click the

0 Dec 08, 2022
This package allows interactions with the BuyCoins API.

The BuyCoins Python library allows interactions with the BuyCoins API from applications written in Python.

Abdulazeez Abdulazeez Adeshina 45 May 23, 2022
A collective list of free APIs for use in software and web development.

Public APIs A collective list of free APIs for use in software and web development. A public API for this project can be found here! For information o

222.5k Jan 02, 2023