Show your Beeminder tasks on your calendar

I was inspired by @mary’s iOS app (Need iOS testers for iPhone utility that puts beemergencies onto calendar) and wrote a CalDAV server that shows Beeminder goals on the calendar.

It looks like this:

It works with iOS too (my two development targets were iOS and Thunderbird)

If you’re using another client, give it a try, and if it doesn’t work, let me know and I’ll get the code in shape!

The documentation is available here: https://beedav.sh3ik.org

(anybody can use it, even non-techie folks, but I’m not sure if there is some interest in an easier-to-understand guide – let me know if you need it!)

3 Likes

Ooh, thank you for making this! I may just not understand how CalDAV stuff works but is there a server we need to point to? Or download and run locally? The documentation only seems to mention constructing the URL.

3 Likes

I’m glad you like it :grin:

Yes, you need to configure your calendar to point to a server, in the same way that you would add a Google account on your calendar app.

Right now I’m hosting the server for myself, but anyone else can use it! So, no need to download anything.

In the future, I’ll release the source code so that anyone can host their own server.
(right now, the downside of using my server is that I could see the data and the private token if I wanted to; which means I could access private Beeminder goals and datapoints)


Using the software is a two-steps process, and then, it’ll work forever:

1. Constructing the URL

The URL’s format is the following:

http://beedav.sh3ik.org/beedav/USERNAME/AUTH_TOKEN/

Which means that for you, it will be something like:

http://beedav.sh3ik.org/beedav/d/AUTH_TOKEN/

(with XXXXXX being your auth token, that you can obtain by clicking here: https://www.beeminder.com/api/v1/auth_token.json)

(I know you know already, but maybe someone else is reading and wants to try it out :slightly_smiling_face:)

2. Use this URL on your calendar app

The steps depend on the app you’re using. Here are the instructions for Thunderbird and iOS:

Thunderbird is working really well, but iOS is a bit buggy right now.

I’ll post an update once iOS is fixed :grin:

3 Likes

Awesome. I’ve just added a calendar pointing to your server with my own Beeminder auth token. (I’m doing this via calendar.google.com)

How long should I expect to wait for beemergencies to appear in my calendar? Also, a killer feature for me is that these entries remove themselves when I dispatch the beemergencies. Otherwise, I find there’s too much wolf-crying and I end up tuning them out (I’ve tried automatically adding beemergencies to calendar before). Does your implementation do that?

Thanks again for sharing this stuff!

3 Likes

They should appear about 2 minutes later – if they don’t, it means that I did something wrong!

They will, normally it should refresh every 15 minutes :grin:
You can always force-synchronize (this depends on the client) and it should also remove obsolete entries.

Let me know if anything doesn’t work, it makes me happy knowing it’s being used by someone else!

2 Likes

Bad news; still nothing.

Ooh, nice! If there were an endpoint I could hit or something to trigger that, I could set up a button or raycast alias…

2 Likes

Hm… too bad… I might need to rework it. I’ll post here once I rewrote it. With a nice endpoint to force-synchronize as well :grinning_face_with_smiling_eyes:

1 Like

I haven’t tried this in a few years, but the last time I did, Google only fetched updates from the calendar once a day, and it wasn’t even always a predictable time.

3 Likes

There is apparently a way in the CalDAV spec to specify the refresh interval: iCalendar.org - 5.7. REFRESH-INTERVAL Property

Also I noticed that there is a notification system, to get instant refresh :thinking:.

I don’t have time right now, but I’ll look into Google Calendar capability soon :trade_mark:

1 Like