No release in over a year
Adds a CLI and a feature to pull your next day of calendar events into the Timex Datalink watch. Note: Hardcoded protocol1 and EST timezone. At the moment.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

TimexDatalinkCaldav

signal-2023-06-22-120357

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.

Pre-requisites

If you need to install Ruby, follow the Ruby installation instructions here.

Installation

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

Usage

As a Gem

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

As a CLI Tool

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@gmail.com/events
    user: email@gmail.com
    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.

Notes

  • 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.

Thanks