Claude - Feeling Like Things Are So Close, Yet So Far Away

I saw that BusyCal now has a Connector with Claude after its most recent update. I asked it a simple question. “Using the BusyCal Connector, can you tell me what the rest of my day is looks like?

It got times wrong, It missed some calendar items altogether. When shown what was wrong, it came back with this:

"So UTC−5 is correct for CDT — my first instinct was right. The error was actually something simpler: I was misreading which UTC timestamp to use. BusyCal returns both startDate and occurrenceDate and I was inconsistently pulling from one or the other, and also making arithmetic mistakes when manually converting in my head across midnight boundaries.

The honest answer: I was doing the UTC→local math by hand and making errors, especially for events that cross midnight UTC (which is only 7 PM CT). Going forward I’ll be more careful to consistently use startDate and apply −5 hours, and double-check any event where the UTC time is between 00:00–05:00Z (since those are actually the previous evening in CT)."

I then asked it how to explain how it got a calendar event duration for tonight wrong - Claude said it was an hour, when it was an hour and 45 minutes. It replied

"That’s actually correct in the raw data — 1 hour 45 minutes, 7:45–9:30 PM. I reported “8:45 PM” as the end time, which was a straight arithmetic error on my part: I subtracted 5 hours from 02:30 UTC and got 8:30, then somewhere wrote 8:45. Pure mental math mistake, unrelated to the timezone issue.

*So there were actually two separate problems:

1. Timezone errors — inconsistent or wrong UTC offset application, especially for events crossing midnight UTC
2. Arithmetic errors — independent calculation mistakes even when the offset logic was correct

The honest summary: I shouldn’t be doing UTC→local conversion by hand at all. I was generating a narrative from raw JSON and doing mental math on each timestamp, which introduced compounding errors. The right approach is to treat the startDate/endDate UTC values mechanically and consistently apply −5, and double-check any event where the UTC hour is <05:00 (since those belong to the previous evening locally). I’ll be more disciplined about this going forward."

I have a Pro account and was using Sonnet 4.6. for this one. I guess my frustration is that it gets so close to getting it right. I do believe that iteration is key, and with its memory, it should be able to handle this task correctly going forward.


In another job, using Cowork and Opus 4.6, I asked Claude to go to my May 2026 note in Obsidian, and I asked it to make calendar events for all of the premiere dates for the tv shows and movies in my Watchlist. These were the instructions:

"Can you look at the May 2026 file in Obsidian and take any lines from the Watchlist section and create calendar events of each of them in BusyCal?

*Each should be created in the Google Calendar called Media Releases, which already exists. Each should have a start time of 7:00 PM CST and an end time of 8:00 PM CST. Each should not have an alert. The title should be everything to the right of the date (sans double brackets).

Example - [[2026-05-01]] - [[Conbody Vs Everybody]] - [[Criterion Channel]] should read Conbody Vs Everybody - Criterion Channel in the title of the calendar event.

Let me know if you have any questions."
This is what it looked like in Obsidian:

image

It did a great job with it. The only note I had a GMT offset in the calendar, but other than that it was perfect. I asked it to save my preferences, so hopefully this will actually save me some time in the future.

This is what skills are for. When you start doing more complex tasks, you find more and more small ways that mistakes can come in. That might be because of something that Claude gets wrong, or it might be an ambiguity in your command. Either way, if you’re going to repeat it, create a skill that is invoked when you ask your LLM to do a certain thing (“Check BusyCal…”) and in the skill, include all the details that you need Claude to get right, with as much granularity and detail as you need. When the skill is invoked, it will check the skill’s details and include it in its actions.

Claude’s memory is a good feature, but for the time being it’s not as granular as the example you give. They may eventually create an auto-skill feature, who knows, but for now, it collects more more general things that get repeated, not something as specific as the example you give.

3 Likes

That is fair. I’m (slowly) figuring out that LLM use is all about iteration. I shouldn’t expect Claude to “one-shot” everything I throw its way.