Skip to content
Send SMS to your number for free from shell through Google Calendar service
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README
gcsms.py
sample.config

README

gcsms allows you to programmatically send SMS to your number for free
through Google Calendar service. You must set up a few things before
using gcsms to send SMS:

1. Setup a Google account if you don't already have one
   - https://gmail.com
2. In Google Calendar (https://calendar.google.com),
   under 'Calendar Settings' -> 'Mobile Setup', enter your mobile number
   and verify it.
3. In API Console (https://code.google.com/apis/console), under
   Services, enable 'Calendar API'.
4. In API Console, under 'API Access', create a new
   'Client ID for installed applications' and note down the 'Client ID'
   and 'Client Secret'.
5. Edit '~/.gcsms' and enter the 'Client ID' and 'Client Secret' and
   save - see sample.config for the format of the config file
6. Run 'python gcsms.py auth' and follow the instructions, granting
   calendar access to gcsms.

Once you've done all the above, you can send an SMS by running:

$ echo 'Hi, I was sent from bash' | python gcsms.py send

Have patience. There might be 5 to 30 seconds delay between when you
run the above command and when you you receive the SMS. If you require a
more timely delivery, please use an SMS gateway service like twilio or
tropo.

gcsms creates a dedicated calendar named 'gcsms' in which it adds an
event for everytime you run the 'send' command. As of now, the events
remain in your calendar unless you manually delete them. If you wish to
delete all the events that gcsms has created, simply delete the
aforementioned calendar. gcsms will recreate the calendar if it needs
to.

From time to time, you might have to run 'python gcsms.py auth' to
reauthenticate with Google. This is a pain but there is no way around
it. Otherwise, enjoy.


You can’t perform that action at this time.