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
Mark Sullivan 66 Dec 13, 2022
A Telegram bot for personal utilities

Aqua Aqua is a Telegram bot for personal utilities. Installation Prerequisites: Install Poetry for managing dependencies and fork/clone the repository

Guilherme Vasconcelos 2 Mar 30, 2022
Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listening to.

TGBIOFY - Telegram & Spotify integration Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listeni

elpideus 26 Dec 07, 2022
Python library for RetroMMO related stuff, including API wrapper

python library for RetroMMO related stuff, including API wrapper.

1 Nov 25, 2021
GTPS Status Bot

Python GTPS Status Bot (BETA) Python GTPS Status Bot Require Python How To Use Download This Source Extract The Zip File Install the requirements (Mod

Lamp 4 Oct 11, 2021
Anti-league-discordbot - Harrasses imbeciles for playing league of legends

anti-league-discordbot harrasses imbeciles for playing league of legends Running

Chris Clem 2 Feb 12, 2022
Discord bot for the IOTA Wiki

IOTA Wiki Bot Discord bot for the IOTA Wiki Report Bug ยท Request Feature About The Project This is a Discord bot for the IOTA Wiki. It's currently use

IOTA Community 2 Nov 14, 2021
A simple message content sniping Discord bot which you can run yourself! Sniping API pulled from isobot and Arch bot

Discord Snipe Bot This is a bot made with the same message content sniping API from isobot and Arch bot. It's default prefix is -, however you can als

notsniped 5 Aug 11, 2022
Image-Bot-Discord - This Is a discord bot that shows the specific image you search from Google

Advanced Discord.py Image Bot CREDITS Made by RLX and Mathiscool README by Milrato Installation Guide in .env Adjust the TOKEN python main.py to start

RLX 3 Jan 16, 2022
Telegram bot/scraper to get the latest NUS vacancy reports.

Telegram bot/scraper to get the latest NUS vacancy reports. Stay ahead of the curve and don't get modrekt.

Chee Hong 1 Jan 08, 2022
The Fastest multi spambot of Telegram ๐Ÿคž ๐Ÿคž

Revil Spam Bot The Fastest multi spambot of Telegram ๐Ÿคž ๐Ÿคž ๐š‚๐š„๐™ฟ๐™ฟ๐™พ๐š๐šƒ ๐Ÿ–ค แด„ส€แด‡แด€แด›แดส€ ๐Ÿ–ค โšก ๐“ก๐“ฎ๐“ฟ๐“ฒ๐“ต ๐“—๐“พ๐“ท๐“ฝ๐“ฎ๐“ป ๐”๐”ฒ๐”ฉ๐”ฑ๐”ฆ แบžรธโœž๏ธŽ โšก ๐“ ๐•พะผฮฟฮฟฯ„ะฝ ๐“ะธโˆ‚ ๐•ฑ

REVIL HUNTER 4 Dec 08, 2021
A lightweight Python wrapper for the IG Markets API

trading_ig A lightweight Python wrapper for the IG Markets API. Simplifies access to the IG REST and Streaming APIs with a live or demo account. What

IG Python 247 Dec 08, 2022
A simple python discord bot with commands for moderation and utility.

Discord Bot A simple python discord bot with commands for moderation, utility and fun. Moderation $kick user reason - Kick a user from the server

3 Jan 07, 2022
A Simple modular tool to fetch and parse data related to the stock market.

๐Ÿ’ stonks-o-fetcher A Simple modular tool to fetch and parse data related to the stock market. Getting started For the moment the only source is this

Daniele 23 May 31, 2021
This code is for a bot which will find a Twitter user's most tweeted word and tweet that word, tagging said user

max_tweeted_word This code is for a bot which will find a Twitter user's most tweeted word and tweet that word, tagging said user The program uses twe

Yasho Bapat 1 Nov 29, 2021
Solcast rooftop api for HA

Solcast Solar Home Assistant(https://www.home-assistant.io/) Component This custom component integrates the Solcast API into Home Assistant. Modified

Greg 1 Oct 11, 2021
Grape - A webbrowser with its own Search Engine

Grape ๐Ÿ”Ž A Web Browser made entirely in python. Search Engine ๐Ÿ”Ž Installation: F

Grape 2 Sep 06, 2022
Huan Xu 1.6k Jan 04, 2023
This very basic script can be used to automate COVID-19 vaccination slot booking on India's Co-WIN Platform.

COVID-19 Vaccination Slot Booking Script This very basic CLI based script can be used to automate covid vaccination slot booking on Co-WIN Platform. I

605 Dec 14, 2022
Simple Python script that lets you upload image/video to imgur

Pymgur ๐Ÿ Simple Python script that lets you upload image/video to imgur! Usage ๐Ÿ”จ Git Clone this repository install the requirements (pip install -r

3 Feb 20, 2022