TimexDatalinkCaldav is a simple Ruby gem designed to sync events from a CalDAV server or an ical formatted ics file to a Timex Datalink watch. It can also be used as a standalone command-line interface (CLI) tool.
If you need to install Ruby, follow the Ruby installation instructions here.
To install the TimexDatalinkCaldav gem, simply run:
gem install timex_datalink_caldav
Or add this line to your application's Gemfile:
gem "timex_datalink_caldav"
And then execute:
bundle install
Here's an example of how to use the tool in your Ruby code:
require 'timex_datalink_caldav'
client = TimexDatalinkCaldav::Client.new(your_username, your_password, your_server_uri, your_device, your_protocol_version, days_forward)
client.parse_events
client.write_to_watch
After installing the gem, you can use it as a CLI tool. You can specify the CalDAV server details directly on the command line:
timex_datalink_caldav -u https://caldavendpoint.com -n your_username -p your_password -d your_device -a your_protocol_version -f days_forward
Please replace https://caldavendpoint.com
, your_username
, your_password
, your_device
, your_protocol_version
, and days_forward
with your actual CalDAV server URI, username, password, serial device, protocol version, and number of days to look forward for events, respectively.
Or you can provide these details in a configuration file:
timex_datalink_caldav -c config.yml -a 1 -d /dev/tty.usbmodem0000000000001 -f 7
The configuration file should be a YAML file in the following format:
endpoints:
- uri: https://www.google.com/calendar/dav/[email protected]/events
user: [email protected]
password: app_password
- uri: https://caldavendpoint2.com
user: your_username2
password: your_password2
- uri: https://icalendpoint.com/example.ics
The device is a serial device that flashes an led when it receives data. On Linux, this is usually /dev/tty*
. On macOS, this is usually $(ls /dev/tty.usbmodem* | head -n 1)
. On Windows, this is usually COM1
.
If you want to use this, I highly recommend pairing it with the Raspberry Pi Pico and this project or this one. It is the cheapest and easiest way to get a serial device that works with the Timex Datalink watch.
-
This gem is not affiliated with Timex, nor is it affiliated with any CalDAV server. It is simply a tool that I wrote to sync my events from my CalDAV server to my Timex Datalink watch.
-
This gem uses the anniversary feature for full day events, and the appointments feature for events with a start and end time.
- This project would not exist without the hard work of the people who reverse engineered the Timex Datalink protocol. I would like to thank them for their hard work. Mainly this gem https://github.com/synthead/timex_datalink_client