Git Product home page Git Product logo

equinox-scheduler's Introduction

Equinox Scheduler

Equinox offers a lot of great classes but many of them require you to reserve a slot in advance of attendance. Reservations open 26 hours before class time -- for early morning classes this means waking up far too early. This project:

  • Reserves classes on your behalf as soon as they open
  • Automatically syncs your Equinox Calendar with your Google Calendar
  • Adds classes to your Equinox Calendar in advance (so you don't have to do it manually)

Getting Started

  1. Create a new Google App Script project with the contents of all the .gs files in this repo.
  2. Create email and password script properties and any other desired properties below. (File > Project properties > Script properties)
  3. Run the setup function to configure the script's time based triggers. (Run > Run function > setup)
  4. (Optional) Enable Stackdriver Logging. (View > Stackdriver Logging)

Script Properties

Property name Value
email Required. The user's email used for authentication on equinox.com
password Required. The user's password used for authentication on equinox.com
days_in_advance The number of days in advance to scan the Equinox Calendar (default: 45)
calendar The Google Calendar Id used for adding events (default: user's default calendar)
calendar_hours_frequency Frequency in hours to sync the Equinox and Google Calendars (default: 4)
reserve_minutes_frequency Frequency in minutes to scan the calendar for classes to reserve (default: 5)
prefill_days_frequency Frequency in days to add regular classes to the Equinox Calendar (default: 14)

How It Works

  1. Save a class to your Equinox Calendar from the app or website.
  2. All classes on your Equinox Calendar are synced to your Google Calendar.
  3. If a class requires a reservation, the program will book it for you when the reservation window opens. (You'll receive an email from Equinox once the class is booked.)

Regular Classes

If you attend the same classes weekly and don't want to manually add the classes each time, define your regular classes in bin_prefill.gs.

var REGULAR_CLASSES = {
  '130':  // club id
    {'Precision Run': [ // class name
      {'day': "Tuesday",'start_time': "07:15 AM"},
      {'day': "Thursday",'start_time': "07:15 AM"},
      {'day': "Sunday",'start_time': "09:30 AM"}
    ]},
};

Club Id

To determine the unique club id of an Equinox location follow the instructions below.

  1. Go to https://www.equinox.com/classschedule
  2. If you are a member of only one club, you should see ?club=XXX appear in the URL. XXX is the club id.
  3. If you don't or if you have access to all locations, select only the location for the specific class you are interested in the Location dropdown to filter your classes.
  4. You should now see ?club=XXX appear in the URL. XXX is the club id.

equinox-scheduler's People

Contributors

hirefrank avatar

Stargazers

Robbie Mitchell avatar

Watchers

Robbie Mitchell avatar

equinox-scheduler's Issues

Add setup function

That does the initial run (access for permissions where necessary) and loads the appropriate triggers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.