---
title: "Holiday Observer: Stepping Away Without the Scramble"
description: "Observing a holiday your company calendar doesn't carry is mostly logistics: catching the date in time, working out which days are workdays, and writing the note to your team. Holiday Observer is a Grok Bot that watches two weeks ahead, drafts the note in your voice, and posts nothing until you say GO."
date: 2026-11-05T00:00:00.000Z
author: "Kobi Kadosh"
url: https://kobi.kadosh.me/blog/2026-11-05-holiday-observer-stepping-away-without-the-scramble
category: "AI Tools"
tags: ["AI Tools", "Agents", "Grok", "Holidays", "Human in the Loop", "Automation", "Software Craftsmanship"]
---

# Holiday Observer: Stepping Away Without the Scramble

Some days off arrive on their own.

The office closes. The shared calendar already knows. Nobody writes a note explaining where they are, because everyone is in the same place.

Other days off have to be carried in by hand.

Someone has to notice the date in time. Someone has to check when it falls this year, because it moved. Someone has to work out which of those days are workdays, request the time, tell the team, move the meetings, and write the note. Sometimes they also have to decide how much to explain, and to whom.

None of that is hard. All of it has to happen at the right moment, and the right moment is usually about two weeks before anyone remembers to do it.

That gap is what [Holiday Observer](https://x.ai/bot/AHlGg3uImx5B5U-XuIN5b) is for.

The one-line description on its public card says it plainly:

> Advance notice for your faith or cultural holidays, plus draft team OOO notes in your voice. Send only when you say go — so you can step away from work and stay present with tradition.

That sentence makes three promises: advance notice, a draft that sounds like you, and nothing sent until you say so. The rest of this post is about why each one is there, how the bot keeps them, and what changed when it went from one person's calendar to a template anyone can add.

---

## The holiday is not the hard part

Nobody forgets a holiday they care about.

What slips is the arithmetic around it. That it starts at sundown the evening before. That this year it lands on a Thursday instead of a weekend. That the team's planning meeting is the same morning. That the note needed to go out last week, while there was still time to hand things off.

A large part of the world keeps time on calendars that do not line up with the one most companies plan around.

- The Islamic calendar is purely lunar, about eleven days shorter than the solar year, so its holidays arrive earlier every year and cycle through every season. Some communities also start a month by local moon sighting, so the date can depend on where you are.
- The Jewish calendar is lunisolar. Its holidays wander across a window of several weeks, begin at sundown, and run a different number of days in Israel than elsewhere.
- Diwali and Lunar New Year move from year to year on their own lunisolar calendars.
- Orthodox and Western Easter often fall on different Sundays.

A company calendar built around one tradition carries none of that. So the work lands on the person who observes, every time, as a small coordination project that has to be restarted from scratch each year.

**The cost is not the time off. The cost is the scramble before it.**

I think this is exactly the kind of work a bot should hold. It is recurring, it is date-driven, it is easy to get slightly wrong, and it is almost entirely logistics. What it is not is a decision that belongs to the bot. That distinction shapes everything that follows.

## One owner, one calendar, one job

Holiday Observer has one owner. It is not a team holiday calendar, and it does not track anyone but the person who added it.

Its loop is short:

```text
Weekday morning   → read the owner's calendar about two weeks ahead
New deadline?     → no: stay quiet
                  → yes: map holiday days to workdays, draft the OOO note
Alert             → in the owner's chat with the bot, with the draft
Owner says GO     → post the note to the owner's chosen Slack channels
Owner says nothing → nothing is posted
```

Every line in that loop is a constraint as much as a capability. It reads one calendar, the one you chose. It speaks for one person, you. It drafts for one place, the Slack channels you named. And it has one trigger that moves a draft from your chat into a channel: your explicit GO.

This is the same instinct behind [Buzzcut](https://kobi.kadosh.me/blog/2026-09-10-buzzcut-cutting-through-the-ai-tool-hype) and behind the [Unix philosophy for agents and skills](https://kobi.kadosh.me/blog/2026-03-15-unix-philosophy-agents-skills): give a bot one sharply scoped responsibility and be extremely explicit about what it should and should not do. A holiday bot that also tried to manage your calendar, negotiate your schedule, and greet your colleagues would be worse at all three.

## The calendar is the source of truth

The first rule Holiday Observer follows is that it never invents a date.

That sounds obvious until you ask a language model, or a search engine with a model on top, when a holiday falls this year. The answer will be fluent and specific. It may also be wrong.

A wrong date in a chat is a curiosity. A wrong date in a note to your team is a missed day, or a day you asked for and didn't need.

So the bot reads dates only from the calendar its owner picked, and treats that calendar as authoritative. For Jewish dates, that is [Hebcal](https://www.hebcal.com/) (short for Hebrew calendar), a free, community-maintained project whose APIs make Jewish calendar data easy to use, queried for the owner's city, so dates and candle-lighting times are local rather than generic.

The calendar also carries rules that a naive date lookup misses.

**Length rules.** Several Jewish festivals run one day in Israel and two days elsewhere. The first days of Sukkot, the first and last days of Passover, and Shavuot all differ, and Shemini Atzeret and Simchat Torah fall on one day in Israel and two outside it. A note that gets this wrong either asks for a day you don't need or leaves out one you do. The bot asks which applies when you set it up, and respects it from then on.

**Workdays, not holiday days.** What the team needs to know is which working days you will be out, not how many holiday days there are. Those numbers can be very different, and they change every year.

Here is a concrete case, taken from Hebcal. Outside Israel, the autumn run of festivals has seven full festival days: two of Rosh Hashanah, Yom Kippur, the first two days of Sukkot, Shemini Atzeret, and Simchat Torah.

- In 2026, six of those seven fell on a Saturday or a Sunday. Only Yom Kippur, on Monday, September 21, landed on a workday.
- In 2027, the weekdays repeat, three weeks later.
- In 2028, six of the seven land on workdays.

Same holidays. Same observance. One workday in one year, six in another. A bot that counts holiday days would get the PTO wrong in both directions. Mapping the calendar onto your working week is the whole point of the advance notice.

## Two weeks ahead, and quiet otherwise

Grok Bot gives a bot [routines](https://docs.x.ai/grok-bot/skills-routines-and-automations): instructions for when to run a workflow, on a schedule or after an event. Background routines keep running while your laptop is closed, which is what makes a bot like this practical at all. It is not waiting for you to open it.

Holiday Observer has two.

The main one is a weekday morning watch. It looks about two weeks ahead, which is enough time to request the days, move what needs moving, and let the team plan around you. It drafts only when it finds a new deadline that isn't already covered. If Monday's check already produced the note for an upcoming holiday, Tuesday's check does not produce it again.

The second is optional, and it is my favorite detail in the build. Some stretches of the year are dense: several holidays within a few weeks, with workdays scattered between them. During a busy festival cluster, the bot can add a Sunday check, so nothing in the coming week is missed. When the cluster ends, that routine deletes itself.

A routine that cleans up after itself is a small thing. It is also the difference between a bot that adapts to a season and a bot that slowly accumulates schedules nobody remembers creating.

Most of the time, though, the right behavior is silence.

The bot stays quiet when nothing new is due. No daily "nothing today" messages. No reminders about notes you already approved. A bot that speaks every morning trains you to stop reading it, and a holiday bot you have stopped reading is worse than none, because you think it has you covered.

**Quiet is a feature. It is what makes the one message that matters worth reading.**

## A short note, in your voice

The note itself is deliberately small.

The default voice is a short, warm "Hi team," followed by the plain facts of when you're out. It should sound like a person telling their colleagues something, not like an automatic reply, and not like an essay.

The voice comes from you. When you set the bot up, it asks how you write and what your rules are, and drafts in that register from then on. I care about this more than it might seem. A note to your team is one of the small, frequent pieces of writing that people recognize as yours, and I have little patience for [generic AI writing with someone's name attached](https://kobi.kadosh.me/blog/2026-04-22-ai-slop-human-bandwidth-where-i-draw-the-line).

Then there is the optional part: a light meaning note.

Some people like to tell their team what the day is. A sentence on what the holiday marks, perhaps why it matters to them. Others would rather not. Holiday Observer drafts that note only as an option, and it goes in the thread under the OOO post, not in the post itself.

That placement does two things. It keeps the channel clean: the message everyone needs is short, and the context is there for whoever is curious. And it makes the explanation opt-in twice, once for the person deciding whether to share it, and once for the colleagues deciding whether to read it.

## Nothing posts until you say GO

The rule I would keep if I had to delete every other one is this: the bot sends only on an explicit GO.

Not on a timer. Not on silence. The draft waits in your chat until you tell it to post, and if you never do, it never does.

There are ordinary reasons for this. A message to your team goes out in your name. Plans change. Sometimes you want to post the note yourself, or tell your manager first, or adjust the dates after a conversation the bot was not part of.

There is also a reason that is specific to this bot.

**Telling people about your observance is your decision, every time.**

Some people are happy to share what the day is. Some say "personal day" and leave it there. Some share with their team and not with a wider channel. Some share one holiday and not another. A bot that posted on its own would be making that decision on your behalf, and it is not a decision a bot should ever make.

For the same reason, Holiday Observer never announces someone else's observance. It speaks for its owner and nobody else. It will not wish a colleague a happy holiday in a channel, and it will not mention that someone is out for a religious reason. Whether and how a person shares that is theirs.

Grok Bot's own documentation points the same way. Its [approvals guidance](https://docs.x.ai/grok-bot/approvals-security-and-privacy) recommends setting explicit boundaries for actions like sending messages, and its advice on routines is to design them for trust, with the bot drafting, reconciling, or recommending first. Holiday Observer takes that literally: the routine drafts, and only the owner sends.

I made the same argument about desktop actions in [Latch](https://kobi.kadosh.me/blog/2026-10-08-latch-giving-grok-bot-hands-on-my-mac): I want to delegate the interaction, not accidentally delegate every decision behind it. And in [The Magic Prompt](https://kobi.kadosh.me/blog/2026-09-17-the-magic-prompt), that the human should stay inside the execution graph rather than being ejected from it. Here the human's place in the graph is one word long. Everything before it is automated. The word is still yours.

## From one calendar to any tradition

Holiday Observer did not start as a general tool.

It started as a personal bot I built for my own use: a Jewish calendar observer, reading Hebcal for one city, with local dates and candle-lighting times. That version worked because it knew exactly one calendar and exactly one person.

The useful realization was that almost none of the workflow was specific to that calendar. Watch ahead. Map holidays onto workdays. Draft a short note in the owner's voice. Wait for GO. Post. Stay quiet otherwise. That loop is the same for Eid, Diwali, Lunar New Year, Orthodox Easter, or any other day a team's calendar does not carry. What changes is the calendar, its rules, and the person.

So the public template keeps the workflow and asks for everything else.

When someone adds Holiday Observer, a getting-started skill interviews them, one question at a time:

- their name and city;
- which calendar they follow, and for the Jewish calendar, whether they keep the Israel or the Diaspora length;
- which channels the notes should go to;
- their voice, and their rules, starting with waiting for GO;
- and when the weekday watch should run.

It saves those answers and creates the routines. A second skill does the recurring work: fetch only from that calendar, map weekday PTO against weekends, respect the length rules, draft in the owner's voice, and post only after GO.

That design fits how Grok Bot [templates](https://x.ai/bot/guides/templates-for-grok-bot) work. A template is a recipe, not a copy of the bot: it carries the instructions, the skills, the routines, and the memories relevant to the job, while personal memories and private information are left out. Before sharing, the creator can open the template's details and see exactly what it includes, and that review is worth doing every time.

Holiday Observer is built so there is little personal left to filter. Everything specific to one person, the city, the calendar, the channels, and the voice, is asked for at setup rather than baked into the instructions. The template brings the procedure. You bring the calendar.

That is also why the interview matters. A template that silently assumed one tradition, one city, or one length rule would carry a hidden dependency rather than a general workflow. Asking is how the bot stops being mine and becomes yours.

## What it won't do

The card is short, and short cards invite over-reading, so here is what Holiday Observer is not.

- **It is not a team calendar.** It has one owner and tracks one person's observances.
- **It will not invent a date.** If your calendar does not have it, the bot does not guess. If your community's dates depend on a local decision, the calendar you choose is the one that decides.
- **It will not post without your GO.** Drafts wait in your chat.
- **It will not speak for anyone else.** No announcements about colleagues, no holiday greetings on someone's behalf.
- **It drafts for Slack.** That is where the notes go.

Two more things worth stating on the record.

The template is shared as a public link, and per [Grok Bot's docs](https://docs.x.ai/grok-bot/bots), anyone with a public link can open it. That is a property of the sharing model, not something a description can narrow.

And [Holiday Observer's own page on x.ai](https://x.ai/bot/AHlGg3uImx5B5U-XuIN5b) carries a notice: "This AI bot was created by a third-party user, not by SpaceXAI. It may act on your behalf." That sentence is the best argument I know for the GO rule. A bot that may act on your behalf should be very clear about the one moment it will.

## Step away, stay present

I wrote earlier this year that we have become [unpaid back-office staff for the applications we use](https://kobi.kadosh.me/blog/2026-02-11-back-office-front-office-split-future-software), and that agents should absorb that operational work so people can focus on the parts that need a human.

A holiday is a small, clear example of that split.

The back office is the logistics: the dates, the weekday arithmetic, the deadline two weeks out, the first draft of the note. None of that needs you, and all of it can be done better by something that never forgets to check.

The front office is everything else. Deciding what to tell your team. Choosing whether to explain the day. Saying GO. And then closing the laptop and actually being there, at the table, in the service, with the people the day is for.

That last clause on the card is the point of the whole thing: _so you can step away from work and stay present with tradition._ The bot handles the scramble so the holiday does not start with one.

---

Holiday Observer is public as a Grok Bot template. It is careful about dates, quiet by default, and it never speaks before you do.

[Holiday Observer by Kobi](https://x.ai/bot/AHlGg3uImx5B5U-XuIN5b): Advance notice for your faith or cultural holidays, plus draft team OOO notes in your voice. Send only when you say go — so you can step away from work and stay present with tradition.
