Schedule Text Messages With Automator

You can use Automator with a bit of AppleScript to schedule a text message through iMessage or SMS. The message can be attached to a Calendar event. There are some catches and further customization will require some programming skill.

Now here's something fun you can play around with and may be useful. Say you want to send somebody a message, over iMessage, using a Calendar alert. In other words prescheduling a message to send them. You can do this with Automator. It's not foolproof so you may want to experiment with it.

I'm doing this in Sierra and, of course, it assumes that you've got lots of things in place and working. But we'll give it a try. So in Automator here we're going to create a new script and we're going to make it a Calendar alarm so we can insert it in the calendar when we're done.

Then there's no send message library command in Automator. We're going to use AppleScript to do it. So we're going to drag Run AppleScript action over here. It gives us this nice blank AppleScript that we can fill in. Now we have to fill in the parts of the code. There's only three lines that we need. Well, actually more like five because the first thing we need to do is we need to tell the Messages app to do something and we'll end the tell.

Then the three lines that we need to tell the Messages app, the first is to get the service. So Messages is capable of using various services, iMessage, SMS, all sorts of things. So we want to go and set it up so that it's actually going to send via iMessage. So this is setting a variable we call iMessage service to the 1st service whose service type equals iMessage. That's just the wording of it of the awkwardness of AppleScript.

The next thing we want to do, I'm just copying and pasting here rather than typing it fresh to make it quicker, is we want to get the person we're sending it to. Now these are still called buddies which is a holdover from the iChat app. So the iMessage buddy is our variable, to buddy and then here's the email address of the buddy that we're going to send it to. This is an email address of somebody that has iMessage, of iMessageService.

So now we're all set and ready to send. We just need to issue the command which is just a send command. Send and then the text we want to send. We could have used one of these parameters here to actually input the text. As a matter of fact we could've used this parameter for the email address of their Apple ID and this parameter for say the text. But we're just keeping things simple here. If you know more AppleScript you can further customize this. And we're just going to send it. This will work. It will actually send this out and you can actually see this in your Messages app.

So let's bring up the Messages app here. You can see I have a conversation already going with this demo iCloud account I have setup. So when I run this AppleScript you'll actually see the message go out. You can see it went out just as if I had typed it. On the other end you would get the message coming in just as if the person had typed it.

So this is in AppleScript and I can now save this and use it as a Calendar alarm. So lets Save. I'll call it send test message and it sets it up here in Calendar, launches Calendar, puts it right there. Now I can double click on it and I can edit it. So I can set it to another time. I can set it to say the 28th at 9:41. The alert is going to be Open File at Time of Event and it's going to open that AppleScript and run it and automatically send that.

Of course my Mac needs to be running and needs to be able to trigger this event which will then launch Messages and send the message. But it does it without me actually having to be there as long as I have my Mac on. This will then get sent across.

So a couple of things. In my test I couldn't get this to work if I'd never sent a message to that Apple ID before. But as long as I had an open conversation going already, which most of us do with people that we message regularly, it worked fine. It even worked when I deleted that conversation. So I had a previous conversation, I deleted it, but the Messages app still recognized this command.But if I tried to send it to an account that I'd never had communicated with before from this Apple ID it didn't work. So you may want to keep that in mind.

The other thing, of course, is that this only works with iMessage Apple system. So what if you want to send to somebody that's not on iMessage. They have a traditional SMS system like they're on android or something. Well you can do that. The command is actually only a one line command that you need and it's basically, send the message, and it's to buddy and then the phone number of service SMS.

Of course this only works if you've already connected your iPhone and your Mac so that you can send SMS messages. Because remember you can't send SMS messages from your Mac because it's not a mobile device. It's not hooked up to a network like AT&T, Sprint, Verizon, or T-Mobile. Only your phone could do that. But your phone actually has the ability to forward the messages from your Mac and send them on to a SMS network.

If you're already using that functionality, as many of us are, then using this will work just fine to go send through Messages to your iPhone invisibly, you don't have to worry about it, and you will actually be able to send these off to people with SMS text messaging as opposed to iMessage.

So play around with this and see if it works for you. It's not going to work for everybody. There's lots of different moving parts here but it's useful if you can get it to work, if you know a little AppleScript and customize this to fit your needs it could be a get tool in your toolbox.