As of August 24, 2022, Twilio offers Message Scheduling as a GA feature. This feature enables you to schedule an SMS, MMS or WhatsApp message for a fixed time in the future. Scheduling a message is free, so you'll only pay for a message once it is sent.
To get started with Message Scheduling, refer to the Message Scheduling API documentation.
There are some important limitations to be aware of when implementing message scheduling, or when considering using the scheduling functionality at large scale. Please read on for details.
Limitations of Message Scheduling
Using Twilio Link Shortening with Message Scheduling
If you plan to use Twilio Link Shortening with Message Scheduling, please note that while Link Shortening is in Public Beta, there is an account based rate limit of 100 requests per second. If you plan to schedule messages at scale with Link Shortening, your messages may fail to deliver if you exceed the rate limit for Link Shortening. If you wish to increase your account based rate limit for Link Shortening, please reach out to firstname.lastname@example.org.
Message Scheduling requires the use of Messaging Services
Message Scheduling is only accessible when using Messaging Services.
You must pass a MessageServiceSid in your API request in order to schedule messages. You may pass a specific From number as well, if you want to choose a specific sender instead of letting Twilio choose for you. It is not sufficient to just have your Twilio number(s) in a Messaging Service. If you only pass a From number in your API request and do not pass a Messaging Service SID, the scheduling parameters will be dropped from the API request and the message will be sent immediately.
Time range limitations for scheduled messages
A message must be scheduled at least 15 minutes in advance of message send time.
A message cannot be scheduled more than 7 days in advance of the request.
Max number of scheduled messages
You can have no more than 500,000 scheduled messages at any given time per Account Sid. This also means that if you have multiple subaccounts, each will have a separate 500,000 scheduled messages limit. As these scheduled messages are delivered, you will get allocation back.
User opt-outs (STOP replies) do not automatically cancel scheduled messages
If you have already scheduled a message to be sent to a specific end user, and the user then opts-out of messaging from your number(s) by sending a message with STOP or another opt-out keyword, the scheduled message will not be automatically canceled but Twilio will fail the message at the scheduled send time.
This behavior is specific to messages that were already scheduled, but not yet sent, before the user opted out.
If a user opts out of receiving messages, you can cancel the remaining scheduled messages to that user.
Message Scheduling FAQs
Is Message Scheduling free?
Yes, scheduling messages is free of cost. You will pay for a scheduled message when it is sent, just like any other message.
Can I cancel messages before they are sent?
Yes, a message can be canceled before it is sent. Please see the API docs for a code sample.
Please note that repeatedly scheduling and canceling a large number of messages could consume your account's scheduled message allocation. See "Max number of scheduled messages" above for details.
Is this a HIPAA eligible product?
Yes, message scheduling is HIPAA eligible. Please see this page to build a HIPAA compliant workflow using Twilio products.
Can I schedule messages more than 7 days in advance?
Currently, messages can only be scheduled up to 7 days into the future, at the time of the scheduling request.
If you have a strong business need for scheduling messages more than 7 days in advance, please let us know by talking to your Twilio account executive or contacting our Support team. We will provide your feedback to our Product team for consideration in future enhancements.
Which versions of the Twilio helper libraries support the new scheduling parameters?
Support for message scheduling was introduced in the following versions of the Twilio helper libraries. However we recommend that you use the most recent version of the libraries for maximum compatibility.