I like reviewing my scheduled messages before sending (maybe the person has said something in the meantime), so the solution I came up with is a shortcut which first asks for text input, then a contact, then the time. All in the best possible interface in context, no need to worry about special syntax or formatting.
The message text is URL encoded, the phone number is auto-retrieved from the contact, then an sms: URL is generated and added to my reminders app. When the time comes, I simply click the link and it auto-populates in Messages, ready to send or tweak.
This could be insanely useful for me. Thank you! It means I could have a private monitoring approach that send myself a message on events I want notifications on? I didn’t even know iMessage allowed sending a self message.
I’ve built something similar with ios shortcuts. One shortcut that uses prompts and data jar to schedule and store messages. It also creates a cal event as a reminder to myself. It supports group texts. Then I have three automations that run in the morning, noon, and afternoon that check for scheduled messages and send them. Works well. Happy to share if interest.
Out of curiosity couldn't one recreate Twilio just by running an extended version of this from a Macbook?
You could read all inbound messages from the Messages app and reply as well. You could even hook it up to a local LLM and run a small support agent.
Is there ANY reason a small business owner couldn't do this and avoid paying SaaS fees?
This is cool. I like code like this that bandaids over someone's problems. I think all of us have things like this laying around, and it's always cool to be reminded of that fact.
I love scheduled send. I find it amazing iphones still do not have that extremely basic functionality.
Signal has this feature build in, btw.
I use it mostly with my SO as a reminder we send to each other at certain times.
I'm honestly shocked that with all the ways iphone users are supposed to live in a better world than me, they lack this simple, obvious useful ability that the lowliest SMS/MMS user has.
Thanks for sharing. What do you use it for mostly?
Very useful, thanks for sharing!
This is awesome! I think a certain friend of mine would really like it lol.
Here's an Apple Script moving through iMessage to SMS if required. Make sure to add helpers to update the recipients contact to default to SMS, otherwise you're just cluttering your Messages history with failed messages.
--------
tell application "Messages" set phoneNumber to "+15555555555" set messageToSend to "This is a test!"
try set iMessageService to (1st account whose service type = iMessage) set iMessageBuddy to participant phoneNumber of iMessageService
if exists iMessageBuddy then
set theMessage to send messageToSend to iMessageBuddy
delay 2 -- Wait for a short time to allow the message status to update
if status of theMessage is not "delivered" then
error "iMessage not delivered"
else
log ("sent as iMessage to: " & phoneNumber)
end if
else
error "Not an iMessage user"
end if
on error
try
set SMSService to (1st account whose service type = SMS)
set SMSBuddy to participant phoneNumber of SMSService
send messageToSend to SMSBuddy
log ("sent as SMS to: " & phoneNumber)
on error
log ("ERROR: COULD NOT SEND TO: " & phoneNumber)
end try
end try
end tellThe use of “computer” throughout got me excited. Requires a Mac, yes?
[flagged]
If you don’t have an Apple computer but have an iOS device, you can also do something similar with the “Shortcuts.app” + “Calendar.app”.
I have a daily shortcut that runs at X time. Shortcut checks a calendar for events, if today contains one or more events. It will parse the text from these events (comma separated fully qualified phone numbers or iMessage accounts), and send the message contained in the body of the event.
Added bonus here is that I can also send group messages.
If I need to have the message sent on repeat, then I put the cal event on repeat.
I could possibly even have templated messages (ie, insert month and year into message), but I haven’t deep dived into that rabbit hole.
Downside here though is that you need an iOS device to always be on.