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
EC2 that automatically move files received through FTP to S3

ftp-ec2-s3-cf EC2 that automatically move files received through FTP to S3 Installation CloudFormation template Deploy now! Usage IP / domain name: ta

Javier Santana 1 Jun 19, 2021
DIAL(Did I Alert Lambda?) is a centralised security misconfiguration detection framework which completely runs on AWS Managed services like AWS API Gateway, AWS Event Bridge & AWS Lambda

DIAL(Did I Alert Lambda?) is a centralised security misconfiguration detection framework which completely runs on AWS Managed services like AWS API Gateway, AWS Event Bridge & AWS Lambda

CRED 71 Dec 29, 2022
WatonAPI is an API used to connect to spigot servers with the WatonPlugin to communicate.

WatonAPI is an API used to connect to spigot servers with the WatonPlugin to communicate. You can send messages to the server and read messages, making it useful for cross-chat programs.

Waton 1 Nov 22, 2021
IACR Events Scraper

IACR Events Scraper This scrapes https://iacr.org/events/ and exports it as a calendar file. I host a version of this for myself under https://arrrr.c

Karolin Varner 6 May 28, 2022
bot for hearthstone mercenaries

Hearthstone-Mercenaries-game-bot - prevention: Bot is not ready and now on the development stage estimated release date - 21.10.21 The main idea of th

Andrew Efimov 59 Dec 12, 2022
WebCash is an experimental new electronic cash ("e-cash") that enables decentralized and instant payments to anyone

Webcash WebCash is an experimental new electronic cash ("e-cash") that enables decentralized and instant payments to anyone, anywhere in the world. Us

Bryan Bishop 24 Dec 11, 2022
It's a simple python script to take backup of directories (compressing) then the same to move your mentioned S3 bucket with the help of AWS IAM User.

Directory Backup Moved to S3 (Pyscript) Description Here it's a python script that needs to use this script simply create a directory backup and moved

Yousaf K Hamza 3 Mar 04, 2022
Discord Bot Sending Members - Leaked by BambiKu ( Me )

Wokify Bot Discord Bot Sending Members - Leaked by BambiKu ( Me ) Info The Bot was orginaly made by someone else! Ghost-Dev just wanted to sell "priva

bambiku 6 Jul 05, 2022
A simple Python script using Telethon to log all (or some) messages a user or bot account can see on Telegram.

telegram-logger A simple Python script using Telethon to log all (or some) messages a user or bot account can see on Telegram. Requirements Python 3.6

Richard 13 Oct 06, 2022
A pdisk uploader bot written in Python

Pdisk Uploader Bot 🔥 Upload on Pdisk by Url, File and also by direct forward post from other channel... Features Post to Post Conversion Url Upload D

Paritosh Kumar 33 Oct 21, 2022
Discord-Mass-Mention - Yup the title says it all

Protocol - Mass Mention (i havent tested this with any token other than my own t

Mallowies 14 Nov 06, 2022
Extrait les informations contenues dans le code QR de la preuve de vaccination générée par le gouvernement du Québec

DecodeurPreuveVaccinationQC Extrait les informations contenues dans le code QR de la preuve de vaccination générée par le gouvernement du Québec Utili

Guillaume Morissette 8 Jul 26, 2022
A delivery protection and notification system

DeliveryProtect This project builds a delivery protection and notification system, based on integration of Arduino Uno and Raspberry Pi 4. The codes a

2 Dec 13, 2021
Role Based Access Control for Slack-Bolt Applications

Role Based Access Control for Slack-Bolt Apps Role Based Access Control (RBAC) is a term applied to limiting the authorization for a specific operatio

Jeremy Schulman 7 Jan 06, 2022
Sakamata-alpha-pycord - Sakamata bot alpha with pycord

sakamatabot このリポジトリは? ホロライブ所属VTuber沙花叉クロヱさんの非公式ファンDiscordサーバー「クロヱ水族館」の運営/管理補助を行う

sushichaaaan 1 May 04, 2022
A telegram bot that messages you available vaccine appointments in the Veneto region

Serenissimo, domande frequenti Chi sei? Sono Alberto Granzotto, libero professionista a Berlino. Mi occupo di servizi software, privacy, decentralizza

vrde 31 Sep 30, 2022
Amazon AWS Web Tool (view only)

Amazon AWS Web Tool (AAWT) discontinued Features Cloudfront (simple) EC2 (With Charts and Prices) EC2 Reserved EBS ELB (With Charts) Obs:. only classi

Carlos Augusto Malucelli 9 Nov 07, 2022
Unofficial Python wrapper for official Hacker News API

haxor Unofficial Python wrapper for official Hacker News API. Installation pip install haxor Usage Import and initialization: from hackernews import H

147 Sep 18, 2022
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

1 Jan 19, 2022
ignorant allows you to check if a phone number is used on different sites like snapchat, instagram.

Ignorant For BTC Donations : 1FHDM49QfZX6pJmhjLE5tB2K6CaTLMZpXZ ignorant does not alert the target phone number ignorant allows you to check if a phon

Palenath 513 Dec 31, 2022