org-mode to Apple Calendar sync via beorg
beorg is a well-known org-mode productivity app among Emacs iPhone users that allows you to view and edit your tasks on the go.
I’ve known about it for a while, but I didn’t have a use case for it for two main reasons. First, I used my Android for my tasks until recently, and with it the excellent Orgzly app (now Orgzly revived). Second, iOS doesn’t work with Syncthing, which is what I’ve been using to sync my files for almost a decade.
Now that I have my now.org
and events.org
files, I want to view them on my iPhone so I can view my work-related tasks there. This means using iCloud sync. Personal events now also show on my work phone, but at this point, I don’t care if Apple knows I’m going to see my sister this weekend or if I’m meeting up with a friend after work. After all, Apple knows this anyway because I take my iPhone with me anywhere I go; the Android stays at home1.
I installed beorg again and discovered a nice surprise: beorg also syncs these events to my iPhone’s calendar. Events I create with a capture template in Emacs now find their way into my Apple Calendar through beorg, which sees these events in my events.org
because it’s synced from my Mac to my iPhone with iCloud.
![](https://cdn.uploads.micro.blog/96826/2024/cal.png)
I don’t necessarily need to see my overdue tasks on the calendar, but they are there anyway. This can be useful especially when they’re out of the way like this:
![](https://cdn.uploads.micro.blog/96826/2024/overdue.png)
I know different packages can do the same thing directly from Emacs, but I gave up on those because they were too complicated and fragile. Another issue I had with these is that I can’t sync my work calendar, which is on MS365, with my Calendar on the Mac. This is a restriction from my employer, which wants us to use Outlook.
Since I now do whatever I can to keep as few Microsoft products on the Mac as possible (especially after I had to wipe it because of corrupted MS Teams configuration, which no one knew what to do about, especially Microsoft’s support), I’m going to keep using the browser version of Outlook for now, which I prefer anyway. so no syncing for now.
Actually, as I was writing this post and looking at beorg, I found I can sync my MS365 events with my Calendar on the Mac! My iPhone is connected to my MS365 account with Outlook, unlike my Mac, and shows events on my Apple Calendar there, where beorg can see it. Turns out beorg has a handy extension that saves calendar events into an org file from the iPhone to the same folder I have synced with iCloud. This means that I see my work calendar (and my Google calendar as well, since it also syncs to Calendar on the iPhone) on the Mac in read-only mode. I can refile events from that org file to my events.org
and extend on those with notes if I need to (Emacs will copy the entry but will not delete it from the calendar org, which is fine with me).
![](https://cdn.uploads.micro.blog/96826/2024/agenda.png)
I like what I see! I can finally have all my events, work or personal, in my events.org
! it also sync quickly, so I can change things like the duration or location of events and the updates show almost instantly. Adding things from my MS365 and Google calendars to my Emacs agenda is an excellent find.
1 The reason for why the iPhone and why I gave up a big chunk of my privacy are stretched over many posts in my blogs; this one and the old one. It’s been a process (and “un” process) that spends across several years.