Bot to notify when vaccine appointments are available

Overview

Vaccine Watch

Bot to notify when vaccine appointments are available.

Supports checking Hy-Vee, Walgreens, CVS, Walmart, Cosentino's stores (KC), and Ball's stores (KC). Supports sending notifications to Slack, Discord, Microsoft Teams, Twilio, and Twitter.

Notifications are sent when a location has appointments. No more notifications are sent for that location until it becomes unavailable again.

PRs welcome to support other clinics or notification methods.

This project has no affiliation with any of the clinics mentioned.

Walmart and Walgreens data courtesy of covid-vaccine-spotter.

Example

Slack

Example of messages in Slack

Twitter

Example of messages in Twitter

Setup

  1. Install docker
  2. Run cp .env.template .env
  3. Fill in the variables in .env
  4. docker-compose up --build

Slack

  1. While logged into your slack account, go to https://api.slack.com/apps/
  2. Click Create New App
  3. Choose a name and workspace
  4. Click Permissions, and Add an OAuth Scope
  5. Add chat:write:public and chat:write
  6. At the top, click Install to Workspace
  7. Copy your OAuth Token to use as SLACK_BOT_TOKEN

Discord

  1. Click the cog on the channel you want to add the notifications to and select Edit Channel
  2. Select the Integrations tab and click Create Webhook
  3. Enter a Name and Channel you want the webhook to notify and copy the Webhook URL.

Microsoft Teams

  1. In the channel where you want to add the incoming webhook, click ... and then Connectors.
  2. Search for Incoming Webhook and click Add.
  3. Give the webhook a name (e.g. Vaccine Watch).
  4. Click Create.
  5. A unique webhook URL will be provided for the channel.

Twitter

  1. Apply for a Twitter Developer account
  2. Once you have the account, go to the Developer Portal
  3. Create a project and an app for your bot
  4. Add Read & Write permissions to your app
  5. In Keys & Tokens, generate Consumer Keys and Access Token/Secret to use as environment variables

Twilio

  1. Sign up for a Twilio account
  2. Once you have the account, go to the Console Dashboard of your Twilio account console
  3. Navigate to the Phone Numbers page in your Twilio account console, then click Getting Started
  4. Select Get your first Twilio phone number and follow the prompts to procure a Twilio phone number
  5. Verify any recipient phone numbers you will be notifying under Phone Numbers then Verified Caller IDs (only required for a trial account)
  6. Copy your Twilio Account SID, Auth Token, Twilio phone number, and verified phone numbers to your .env file

Lint

  1. Install pre-commit
  2. pre-commit install

Lint is run as a pre-commit, or on-demand with pre-commit run --all-files

Deployment Instructions

Required Environment Variables:

  • REDIS_URL: A redis service
  • VACCINE_CHECK_INTERVAL: How often (in seconds) to check
  • RADIUS: Within how many miles to check
    • CVS has a maximum of 25, vaccine-watch will use 25 for CVS if you set this higher.
  • LATITUDE: Latitude of the location to check (e.g. 39.1040382)
  • LONGITUDE: Latitude of the location to check (e.g. -94.5701803)
  • STATES: JSON: Abbreviations of which states are in radius of your location (e.g. ["MO", "KS"])

Optional Environment Variables:

  • REQUEST_TIMEOUT: How long to wait, in seconds, for a response to begin before timing out (optional, defaults to 5 seconds)
  • ENABLE_HYVEE: If you want to check Hy-Vee pharmacies
  • ENABLE_WALGREENS: If you want to check Walgreens pharmacies
  • ENABLE_WALMART: If you want to check Walmart pharmacies
  • ENABLE_COSENTINOS: If you want to check stores in the Cosentino's family (Kansas City only)
  • ENABLE_BALLS: If you want to check stores in the Ball's family (Kansas City only)
  • CVS:
    • ENABLE_CVS: If you want to check CVS pharmacies
    • CVS_ALLOW_LIST: JSON of states and cities to be notified for.
      • example: {"MO": ["SAINT LOUIS"], "KS": []}
    • CVS_BLOCK_LIST: (optional): JSON of states and cities to not be warned about new city for.
      • example: {"MO": ["SAINT LOUIS"], "KS": []}
    • Any city that CVS returns for the state(s) in STATES that are not listed in either the allow or block list will cause a warning message to be logged. Then it may be added to the allow or block list depending on if you wish to have the locations in that city checked or not checked.
  • Slack:
    • SLACK_BOT_TOKEN: Token for your slack integration
    • SLACK_TAG_CHANNEL: If the channel should be tagged when appointments are available
    • SLACK_CHANNEL: Channel for the bot to post in (e.g. #vaccine-watch)
  • Discord:
    • DISCORD_WEBHOOK_URL: Discord webhook url for channel.
      • example: https://discordapp.com/api/webhooks/1234567890/abc123
  • Microsoft Teams:
    • TEAMS_WEBHOOK_URL: Teams webhook url for channel.
      • example: https://company.webhook.office.com/webhookb2/abc123@def456/IncomingWebhook/aaa111/bbb222
  • Twilio:
    • TWILIO_ACCOUNT_SID: Account SID for your twilio account
    • TWILIO_AUTH_TOKEN: Auth token for your twilio account
    • TWILIO_FROM_NUMBER: Twilio phone number with SMS functionality in [+][country code][phone number including area code] format
    • TWILIO_TO_NUMBERS: Phone numbers to notify as an array of the following format [+][country code][phone number including area code]
      • example: ["+15551234567", "+15552345678"]
  • Twitter:
    • TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN_KEY, TWITTER_ACCESS_TOKEN_SECRET
  • TIMEZONE: Timezone of your location (defaults to 'US/Central')
  • CACHE_PREFIX: If you want to run multiple copies of vaccine-watch, all sharing the same Redis database, you will want to give each instance a different CACHE_PREFIX.

Docker

You can build a docker image with the Dockerfile, and run it with a redis server.

Heroku

You can create an app in heroku, add a free redis plan, and push the source. Configure the dynos to enable clock.

Comments
  • Twilio SMS notifications

    Twilio SMS notifications

    Addresses #12

    This PR implements basic Twilio notifications from a single Twilio number to multiple recipients. I have update README.md to include Twilio instructions and relevant environment variables that would need to be included to use this notify method. Open to any tweaks, I tried to follow the style / conventions of other examples in the repo.

    Thanks!

    opened by djsiroky 3
  • Bump slack-sdk from 3.5.1 to 3.8.0

    Bump slack-sdk from 3.5.1 to 3.8.0

    Bumps slack-sdk from 3.5.1 to 3.8.0.

    Release notes

    Sourced from slack-sdk's releases.

    version 3.8.0

    New Features

    Token Rotation Support (more info to come soon!)

    This version includes the token rotation feature support for better security. Refer to the API document for the general information about the feature.

    How to enable token rotation with this SDK

    Apart from the column additions for the feature (specifically, refresh token + expiration date time) and the corresponding changes in your app code, no significant code is needed. Checking the example apps using Flask, Sanic in this directory can be helpful to learn what to do.

    In a nutshell, you can call the following rotate_tokens method before handling every single incoming request from Slack. As long as your InstallationStore support the token rotation patterns, the code below should work as-is.

    from slack_sdk.oauth.token_rotation import TokenRotator
    from slack_sdk.oauth.installation_store import FileInstallationStore
    

    This instance can be singleton; thread-safe

    token_rotator = TokenRotator( # These are required for refreshing tokens client_id=client_id, client_secret=client_secret, )

    Your own InstallationStore here

    installation_store = FileInstallationStore()

    def rotate_tokens( enterprise_id: Optional[str] = None, team_id: Optional[str] = None, user_id: Optional[str] = None, is_enterprise_install: Optional[bool] = None, ): installation = installation_store.find_installation( enterprise_id=enterprise_id, team_id=team_id, user_id=user_id, is_enterprise_install=is_enterprise_install, ) if installation is not None: # If rotation does not occur, refreshed_installation is None refreshed_installation = token_rotator.perform_token_rotation(installation=installation) if refreshed_installation is not None: # Save the new access token for the following processes installation_store.save(refreshed_installation)

    Migration guide for SQLAlchemyInstallationStore users

    If your app uses the built-in SQLAlchemyInstallationStore for managing Slack app installations, adding the following database columns is required for this version upgrade. Refer to the code to check the complete ones.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump twilio from 6.59.0 to 6.62.0

    Bump twilio from 6.59.0 to 6.62.0

    Bumps twilio from 6.59.0 to 6.62.0.

    Release notes

    Sourced from twilio's releases.

    6.62.0

    Release Notes

    Conversations

    • Changed last_read_message_index and unread_messages_count type in User Conversation's resource (breaking change)
    • Expose UserConversations resource

    Messaging

    • Add brand_score field to brand registration responses

    Docs

    6.61.0

    Release Notes

    Conversations

    • Read-only Conversation Email Binding property binding

    Supersim

    • Add Billing Period resource for the Super Sim Pilot
    • Add List endpoint to Billing Period resource for Super Sim Pilot
    • Add Fetch endpoint to Billing Period resource for Super Sim Pilot

    Taskrouter

    • Update transcribe & transcription_configuration form params in Reservation update endpoint to have private visibility (breaking change)
    • Add transcribe & transcription_configuration form params to Reservation update endpoint

    Twiml

    • Add modify event to statusCallbackEvent for <Conference>.

    Docs

    6.60.0

    Release Notes

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    Docs

    6.59.1

    Release Notes

    ... (truncated)

    Changelog

    Sourced from twilio's changelog.

    [2021-07-14] Version 6.62.0

    Conversations

    • Changed last_read_message_index and unread_messages_count type in User Conversation's resource (breaking change)
    • Expose UserConversations resource

    Messaging

    • Add brand_score field to brand registration responses

    [2021-06-30] Version 6.61.0

    Conversations

    • Read-only Conversation Email Binding property binding

    Supersim

    • Add Billing Period resource for the Super Sim Pilot
    • Add List endpoint to Billing Period resource for Super Sim Pilot
    • Add Fetch endpoint to Billing Period resource for Super Sim Pilot

    Taskrouter

    • Update transcribe & transcription_configuration form params in Reservation update endpoint to have private visibility (breaking change)
    • Add transcribe & transcription_configuration form params to Reservation update endpoint

    Twiml

    • Add modify event to statusCallbackEvent for <Conference>.

    [2021-06-16] Version 6.60.0

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    [2021-06-02] Version 6.59.1

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.
    Commits
    • ffee0d2 Release 6.62.0
    • e7c9d71 [Librarian] Regenerated @ 7987bc34448d66e36aaa4f7174e25f3d57ccccef
    • 15ae2b1 Release 6.61.0
    • 44620df [Librarian] Regenerated @ 4e75c7be2507558854a659be2e05b171bcf7512b
    • cbf3103 chore: add docker credentials to travis
    • c25b213 Release 6.60.0
    • 97db756 [Librarian] Regenerated @ e1d98e904674be752473dcb1f0e54c720a5d0754
    • ccbc400 update slack token
    • 98e753c Release 6.59.1
    • 440eaa8 [Librarian] Regenerated @ ace337a1be26cdd69f455a9a0f82789cd255d3a1
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump requests from 2.25.1 to 2.26.0

    Bump requests from 2.25.1 to 2.26.0

    Bumps requests from 2.25.1 to 2.26.0.

    Changelog

    Sourced from requests's changelog.

    2.26.0 (2021-07-13)

    Improvements

    • Requests now supports Brotli compression, if either the brotli or brotlicffi package is installed. (#5783)

    • Session.send now correctly resolves proxy configurations from both the Session and Request. Behavior now matches Session.request. (#5681)

    Bugfixes

    • Fixed a race condition in zip extraction when using Requests in parallel from zip archive. (#5707)

    Dependencies

    • Instead of chardet, use the MIT-licensed charset_normalizer for Python3 to remove license ambiguity for projects bundling requests. If chardet is already installed on your machine it will be used instead of charset_normalizer to keep backwards compatibility. (#5797)

      You can also install chardet while installing requests by specifying [use_chardet_on_py3] extra as follows:

      pip install "requests[use_chardet_on_py3]"
      

      Python2 still depends upon the chardet module.

    • Requests now supports idna 3.x on Python 3. idna 2.x will continue to be used on Python 2 installations. (#5711)

    Deprecations

    • The requests[security] extra has been converted to a no-op install. PyOpenSSL is no longer the recommended secure option for Requests. (#5867)

    • Requests has officially dropped support for Python 3.5. (#5867)

    Commits
    • a1a6a54 v2.26.0
    • e253eba Stop abusing pytest-httpbin to test commonName support
    • f6c0619 Disable requests[security] and remove 3.5 support references
    • 33cf965 Allow idna 3.x to be installed on Python 3.x
    • 5351469 Add support for brotli decoding (#5783)
    • 2463074 Avoid zip extract racing condition by using read+write instead extract (#5707)
    • 2ed84f5 Switch LGPL'd chardet for MIT licensed charset_normalizer (#5797)
    • 33d448e Pin Flask to <2.0 to fix the test suite
    • 1466ad7 Fix GitHub links (#5835)
    • f6d43b0 Updated to new be-cordial-or-be-on-your-way URL and CoC now references Python...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump geopy from 2.1.0 to 2.2.0

    Bump geopy from 2.1.0 to 2.2.0

    Bumps geopy from 2.1.0 to 2.2.0.

    Release notes

    Sourced from geopy's releases.

    2.2.0

    New Features

    • .OpenCage: added annotations param. Contributed by mtmail. (#464)
    • .Photon: added bbox param. Contributed by Holger Bruch. (#472)
    • New geocoder: .Geocodio. Contributed by Jon Duckworth. (#468)
    • New geocoder: .HereV7. Contributed by Pratheek Rebala. (#433)
    • New geocoder: .What3WordsV3. Contributed by Saïd Tezel. (#444)
    • New error class: .exc.GeocoderRateLimited. This error extends .exc.GeocoderQuotaExceeded and is now raised instead of it for HTTP 422 error code. (#479)
    • .AdapterHTTPError: added headers attribute. (#479)

    Breaking Changes

    • Removed GeocodeFarm class: the service is very unstable. (#445)

    Deprecations

    • .GoogleV3 has been moved from geopy.geocoders.googlev3 module to geopy.geocoders.google. The old module is still present for backwards compatibility, but it will be removed in geopy 3. (#483)

    Bugfixes

    • .OpenCage: improved error handling by using the default errors map (e.g. to raise .exc.GeocoderQuotaExceeded instead of .exc.GeocoderQueryError for HTTP 402 error). (#479)

    Code Improvements

    • .Photon: updated domain. Contributed by yrafalin. (#481)
    • .IGNFrance: removed redundant check. Contributed by Miltos. (#469)
    • Changed default exception type for HTTP code 408: now it is raised as .exc.GeocoderTimedOut instead of a more generic .exc.GeocoderServiceError. (#479)
    • :mod:geopy.exc: extend more specific built-in exceptions where appropriate: classes .ConfigurationError, .GeocoderQueryError, .GeocoderNotFound now extend ValueError; .GeocoderRateLimited and .GeocoderUnavailable extend IOError; .GeocoderTimedOut extends TimeoutError. (#484)

    Docs Improvements

    ... (truncated)

    Changelog

    Sourced from geopy's changelog.

    2.2.0

    2021-07-11

    New Features

    
    - :class:`.OpenCage`: added ``annotations`` param.
      Contributed by mtmail. (:issue:`464`)
    - :class:`.Photon`: added ``bbox`` param.
      Contributed by Holger Bruch. (:issue:`472`)
    - New geocoder: :class:`.Geocodio`.
      Contributed by Jon Duckworth. (:issue:`468`)
    - New geocoder: :class:`.HereV7`.
      Contributed by Pratheek Rebala. (:issue:`433`)
    - New geocoder: :class:`.What3WordsV3`.
      Contributed by Saïd Tezel. (:issue:`444`)
    - New error class: :class:`.exc.GeocoderRateLimited`. This error extends
      :class:`.exc.GeocoderQuotaExceeded` and is now raised instead of it
      for HTTP 422 error code. (:issue:`479`)
    - :class:`.AdapterHTTPError`: added ``headers`` attribute. (:issue:`479`)
    

    Breaking Changes

    • Removed GeocodeFarm class: the service is very unstable. (:issue:445)

    Deprecations

    
    - :class:`.GoogleV3` has been moved from ``geopy.geocoders.googlev3`` module
      to ``geopy.geocoders.google``. The old module is still present for
      backwards compatibility, but it will be removed in geopy 3. (:issue:`483`)
    

    Bugfixes

    
    - :class:`.OpenCage`: improved error handling by using the default errors map
      (e.g. to raise :class:`.exc.GeocoderQuotaExceeded` instead of
      :class:`.exc.GeocoderQueryError` for HTTP 402 error). (:issue:`479`)
    

    Code Improvements </code></pre> <ul> <li>:class:<code>.Photon</code>: updated domain. Contributed by yrafalin. (:issue:<code>481</code>)</li> <li>:class:<code>.IGNFrance</code>: removed redundant check. Contributed by Miltos. (:issue:<code>469</code>)</li> <li>Changed default exception type for HTTP code 408: now it is raised as :class:<code>.exc.GeocoderTimedOut</code> instead of a more generic :class:<code>.exc.GeocoderServiceError</code>. (:issue:<code>479</code>)</li> <li>:mod:<code>geopy.exc</code>: extend more specific built-in exceptions where appropriate:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary>

    <ul> <li><a href="https://github.com/geopy/geopy/commit/ade9c1b68c83a1fc76d90bc0ff603f6b34dfbbbf"><code>ade9c1b</code></a> 2.2.0</li> <li><a href="https://github.com/geopy/geopy/commit/26da73ed0428142bfae80d48daa95ce277a2089f"><code>26da73e</code></a> Fix failing tests: bing, nominatim, opencage</li> <li><a href="https://github.com/geopy/geopy/commit/52ab9e735630f81c99035b60a7407f91a812d3f0"><code>52ab9e7</code></a> Update changelog</li> <li><a href="https://github.com/geopy/geopy/commit/ff024a95c93a0a13dc0ef24318ca2550e4f78585"><code>ff024a9</code></a> Update changelog</li> <li><a href="https://github.com/geopy/geopy/commit/f481a82690c103da1c30d4109d2c560078293f5a"><code>f481a82</code></a> tests: fix ArcGIS failing test_reverse_no_result</li> <li><a href="https://github.com/geopy/geopy/commit/9c7bf7b2b8e433f215349ae88ba3982256578e21"><code>9c7bf7b</code></a> docs: add Distance class doc and Distance.destination method (<a href="https://github-redirect.dependabot.com/geopy/geopy/issues/473">#473</a>)</li> <li><a href="https://github.com/geopy/geopy/commit/6afb62d9bf9d6bb12183dfe55cc133fb5d0094c9"><code>6afb62d</code></a> Update changelog</li> <li><a href="https://github.com/geopy/geopy/commit/527a17347c5bcd542903a6e3ccfc6848f19a00c5"><code>527a173</code></a> geopy.exc: extend more specific built-in exceptions where appropriate (<a href="https://github-redirect.dependabot.com/geopy/geopy/issues/484">#484</a>)</li> <li><a href="https://github.com/geopy/geopy/commit/40ff4607657e24e29c82e351220dd089efaed335"><code>40ff460</code></a> Update changelog</li> <li><a href="https://github.com/geopy/geopy/commit/66f2b3f95184e2ef850d0d6d22bc117a25d3ef46"><code>66f2b3f</code></a> Pull up AUTHORS</li> <li>Additional commits viewable in <a href="https://github.com/geopy/geopy/compare/2.1.0...2.2.0">compare view</a></li> </ul> </details>

    <br />

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump twilio from 6.59.0 to 6.61.0

    Bump twilio from 6.59.0 to 6.61.0

    Bumps twilio from 6.59.0 to 6.61.0.

    Release notes

    Sourced from twilio's releases.

    6.61.0

    Release Notes

    Conversations

    • Read-only Conversation Email Binding property binding

    Supersim

    • Add Billing Period resource for the Super Sim Pilot
    • Add List endpoint to Billing Period resource for Super Sim Pilot
    • Add Fetch endpoint to Billing Period resource for Super Sim Pilot

    Taskrouter

    • Update transcribe & transcription_configuration form params in Reservation update endpoint to have private visibility (breaking change)
    • Add transcribe & transcription_configuration form params to Reservation update endpoint

    Twiml

    • Add modify event to statusCallbackEvent for <Conference>.

    Docs

    6.60.0

    Release Notes

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    Docs

    6.59.1

    Release Notes

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.

    Docs

    Changelog

    Sourced from twilio's changelog.

    [2021-06-30] Version 6.61.0

    Conversations

    • Read-only Conversation Email Binding property binding

    Supersim

    • Add Billing Period resource for the Super Sim Pilot
    • Add List endpoint to Billing Period resource for Super Sim Pilot
    • Add Fetch endpoint to Billing Period resource for Super Sim Pilot

    Taskrouter

    • Update transcribe & transcription_configuration form params in Reservation update endpoint to have private visibility (breaking change)
    • Add transcribe & transcription_configuration form params to Reservation update endpoint

    Twiml

    • Add modify event to statusCallbackEvent for <Conference>.

    [2021-06-16] Version 6.60.0

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    [2021-06-02] Version 6.59.1

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.
    Commits
    • 15ae2b1 Release 6.61.0
    • 44620df [Librarian] Regenerated @ 4e75c7be2507558854a659be2e05b171bcf7512b
    • cbf3103 chore: add docker credentials to travis
    • c25b213 Release 6.60.0
    • 97db756 [Librarian] Regenerated @ e1d98e904674be752473dcb1f0e54c720a5d0754
    • ccbc400 update slack token
    • 98e753c Release 6.59.1
    • 440eaa8 [Librarian] Regenerated @ ace337a1be26cdd69f455a9a0f82789cd255d3a1
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump twilio from 6.59.0 to 6.60.0

    Bump twilio from 6.59.0 to 6.60.0

    Bumps twilio from 6.59.0 to 6.60.0.

    Release notes

    Sourced from twilio's releases.

    6.60.0

    Release Notes

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    Docs

    6.59.1

    Release Notes

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.

    Docs

    Changelog

    Sourced from twilio's changelog.

    [2021-06-16] Version 6.60.0

    Api

    • Update status enum for Messages to include 'canceled'
    • Update update_status enum for Messages to include 'canceled'

    Trusthub

    • Corrected the sid for policy sid in customer_profile_evaluation.json and trust_product_evaluation.json (breaking change)

    [2021-06-02] Version 6.59.1

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.
    Commits
    • c25b213 Release 6.60.0
    • 97db756 [Librarian] Regenerated @ e1d98e904674be752473dcb1f0e54c720a5d0754
    • ccbc400 update slack token
    • 98e753c Release 6.59.1
    • 440eaa8 [Librarian] Regenerated @ ace337a1be26cdd69f455a9a0f82789cd255d3a1
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slack-sdk from 3.5.1 to 3.7.0

    Bump slack-sdk from 3.5.1 to 3.7.0

    Bumps slack-sdk from 3.5.1 to 3.7.0.

    Release notes

    Sourced from slack-sdk's releases.

    version 3.7.0

    Changes


    version 3.6.0

    Changes


    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slack-sdk from 3.5.1 to 3.6.0

    Bump slack-sdk from 3.5.1 to 3.6.0

    Bumps slack-sdk from 3.5.1 to 3.6.0.

    Release notes

    Sourced from slack-sdk's releases.

    version 3.6.0

    Changes


    Commits
    • d79585d version 3.6.0
    • ae4c5af #1027 update websockets package version requirements (#1028)
    • 1fddbff Fix a minor error in RTM document
    • ef81a8d Fix #1025 websocket_client based SocketModeClient may fail in on_close callba...
    • 97a5250 Upgrade black code formatter to veresion 21.5b1
    • 35e2246 Fix #1021 by updating View constructor to convert state as dict to class obje...
    • 75b554a Disable a few Socket Mode tests in CI buids
    • 60f0ff9 Add missing annotation in tests
    • 66c8859 Add timepicker block element support (#876)
    • 833e3c5 Add admin.apps.uninstall support (#1011)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump twilio from 6.59.0 to 6.59.1

    Bump twilio from 6.59.0 to 6.59.1

    Bumps twilio from 6.59.0 to 6.59.1.

    Release notes

    Sourced from twilio's releases.

    6.59.1

    Release Notes

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.

    Docs

    Changelog

    Sourced from twilio's changelog.

    [2021-06-02] Version 6.59.1

    Events

    • join Sinks and Subscriptions service

    Verify

    • Improved the documentation of challenge adding the maximum and minimum expected lengths of some fields.
    • Improve documentation regarding notification by updating the documentation of the field ttl.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump twilio from 6.57.0 to 6.58.0

    Bump twilio from 6.57.0 to 6.58.0

    Bumps twilio from 6.57.0 to 6.58.0.

    Release notes

    Sourced from twilio's releases.

    6.58.0

    Release Notes

    Api

    • Corrected the data types for feedback summary fields (breaking change)
    • Update the conference participant create from and to param to be endpoint type for supporting client identifier and sip address

    Bulkexports

    • promoting API maturity to GA

    Events

    • Add endpoint to update description in sink
    • Remove beta-feature account flag

    Messaging

    • Update status field in us_app_to_person api to campaign_status (breaking change)

    Verify

    • Improve documentation regarding push factor and include extra information about totp factor.

    Docs

    Changelog

    Sourced from twilio's changelog.

    [2021-05-05] Version 6.58.0

    Api

    • Corrected the data types for feedback summary fields (breaking change)
    • Update the conference participant create from and to param to be endpoint type for supporting client identifier and sip address

    Bulkexports

    • promoting API maturity to GA

    Events

    • Add endpoint to update description in sink
    • Remove beta-feature account flag

    Messaging

    • Update status field in us_app_to_person api to campaign_status (breaking change)

    Verify

    • Improve documentation regarding push factor and include extra information about totp factor.
    Commits
    • c2fb04a Release 6.58.0
    • 4567b23 [Librarian] Regenerated @ c95de69ef589811189089c789616f1b139c1ae3e
    • 13fb2ed chore: rotate slack notification token
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Owner
Peter Carnesciali
Peter Carnesciali
A Telegram bot that scrapes websites for available vaccination appointments to notify users. (German)

@dachau_impf_bot ???? A Telegram bot to check the contents of https://termin.dachau-med.de for available slots and inform users of the available dates

null 1 Nov 21, 2021
VaccineAlarm is a simple python script that allows user to get notified when their desired vaccine doses are available at vaccine centers near them.

Introduction VaccineAlarm is a simple python script that allows user to get notified when their desired vaccine doses are available at vaccine centers

Ankit Tripathi 5 Nov 26, 2021
Automatically searching for vaccine appointments

Vaccine Appointments Automatically searching for vaccine appointments Usage To copy this package, run: git clone https://github.com/TheIronicCurtain/v

null 58 Apr 13, 2021
Get Notified about vaccine availability in your location on email & sms ✉️! Vaccinator Octocat tracks & sends personalised vaccine info everday. Go get your shot ! 💉

Vaccinater Get Notified about vaccine availability in your location on email & sms ✉️ ! Vaccinator Octocat tracks & sends personalised vaccine info ev

Mayukh Pankaj 6 Apr 28, 2022
A Telegram Bot which notifies the user when a vaccine is available on CoWin Platform.

Cowin Vaccine Availability Notifier Telegram Bot A bot that notifies the available vaccines at given district in realtime. Introduction • Requirements

Arham Shah 7 Jul 31, 2021
Python library for Spurwing API to schedule appointments, manage calendars and custom integrations.

Spurwing API Python Library Lightweight Python library for Spurwing's API. Spurwing's API makes it easy to add robust scheduling and booking to your a

Spurwing 1 Jul 14, 2021
Telegram Bot to check covid vaccine slot availability on CoWin site

Cowin Assist Telegram Bot Check the bot here @cowinassistbot. This is a simple Telegram bot to Check slots availability Get an alert when slots become

null 32 Jun 21, 2022
Telegram bot for downloading covid-19 vaccine certificate

cowin-certificate-bot This is the source code of @cowincertbot, A telegram bot inspired by the whatsapp bot implementation of indian government for co

ArUn Pt 30 Oct 7, 2022
This bot will send you an email or notify you via telegram & discord if dolar/lira parity breaks a record.

Dolar Rekor Kırdı Mı? This bot will send you an email or notify you via Telegram & Discord if Dolar/Lira parity breaks a record. Mailgun can be used a

Yiğit Göktuğ Budanur 2 Oct 14, 2021
Discord bot to monitor collection of mods on the Steam Workshop and notify on update to selected discord server via Nextcordbot API.

Steam-Workshop-Monitor Discord bot to monitor collection of mods on the Steam Workshop and notify on update to selected Discord channel via Nextcordbo

null 7 Nov 3, 2022
Script to automatically book a vaccine slot on Doctolib for today or tomorrow, following rules from the French Government.

DOCTOSHOTGUN This script lets you automatically book a vaccine slot on Doctolib for today or tomorrow, following rules from the French Government. Pyt

Romain Bignon 560 Dec 19, 2022
Pls give vaccine.

Pls Give Vaccine A script to spam yourself with vaccine notifications. Explore the docs » View Demo · Report Bug · Request Feature Table of Contents A

Rohan Mukherjee 3 Oct 27, 2021
Light weight Scripts and Apps for checking availability of Covid Vaccines in India. Notifies when vaccine becomes avialable in your area.

vaccine-checker Light weight Scripts and Apps for checking availability of Covid Vaccines in India. Notifies when vaccine becomes avialable in your ar

Abishek V Ashok 8 Jun 16, 2021
Python script to decode the EU Covid-19 vaccine certificate

vacdec Python script to decode the EU Covid-19 vaccine certificate This script takes an image with a QR code of a vaccine certificate as the parameter

Hanno Böck 244 Nov 30, 2022
Short Program using Transavia's API to notify via email an user waiting for a flight at special dates and with the best price

Flight-Notifier Short Program using Transavia's API to notify via email an user waiting for a flight at special dates and with the best price Algorith

Wassim 2 Apr 10, 2022
Python app to notify via slack channel the status_code change from an URL

Python app to notify, via slack channel you choose to be notified, for the status_code change from the URL list you setup to be checked every yy seconds

Pedro Nunes 1 Oct 25, 2021
Github repository started notify 💕

Github repository started notify ??

null 4 Aug 6, 2022
An analysis of the efficiency of the COVID-19 vaccine

VaccineEfficiency ?? An analysis of the efficiency of the COVID-19 vaccine 3 Methods 1️⃣ Compare country's vaccination data to number of day- to-day c

Stephanie Younes 1 Dec 10, 2021
An implementation of webhook used to notify GitHub repository events to DingTalk.

GitHub to DingTask An implementation of webhook used to notify GitHub repository events to DingTalk.

Prodesire 5 Oct 2, 2022