<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Playbook on BunnyCal Blog</title><link>https://bunnycal.io/blog/tags/playbook/</link><description>Recent content in Playbook on BunnyCal Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 27 Jul 2026 16:03:00 +0530</lastBuildDate><atom:link href="https://bunnycal.io/blog/tags/playbook/index.xml" rel="self" type="application/rss+xml"/><item><title>Every timezone bug is really a calendar bug</title><link>https://bunnycal.io/blog/timezone-bugs-are-calendar-bugs/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://bunnycal.io/blog/timezone-bugs-are-calendar-bugs/</guid><description>&lt;p&gt;Scheduling bugs cluster around two moments in the year, and they are the same
two moments for everyone: the second Sunday in March and the last Sunday in
October — give or take, depending on which hemisphere and which government.&lt;/p&gt;
&lt;h2 id="the-assumption-that-breaks"&gt;The assumption that breaks&lt;/h2&gt;
&lt;p&gt;The bug is almost always this: storing a meeting as a &lt;em&gt;wall-clock time plus an
offset&lt;/em&gt; rather than as an instant plus a timezone.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;startsAt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-10-24T09:00:00+01:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;recurrence&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;WEEKLY&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That looks unambiguous, and for a single meeting it is. But the recurrence rule
has to answer &amp;ldquo;when is the next one?&amp;rdquo; — and on 25 October, &lt;code&gt;+01:00&lt;/code&gt; stops being
the correct offset for Europe/London. Naively adding seven days gives you
&lt;code&gt;2026-10-31T09:00:00+01:00&lt;/code&gt;, an instant that renders as &lt;strong&gt;8:00am&lt;/strong&gt; to the host.
Their weekly standup silently moves an hour earlier, and only for the half of
the team in a country that just changed its clocks.&lt;/p&gt;</description></item><item><title>Booking pages that convert</title><link>https://bunnycal.io/blog/booking-pages-that-convert/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><guid>https://bunnycal.io/blog/booking-pages-that-convert/</guid><description>&lt;p&gt;A booking page has exactly one job, and the gap between a good one and a bad one
is mostly about how much work you ask the guest to do before they see a time.&lt;/p&gt;
&lt;h2 id="1-show-times-before-you-ask-for-anything"&gt;1. Show times before you ask for anything&lt;/h2&gt;
&lt;p&gt;The single biggest drop-off is a form that appears before the calendar. A guest
arrives wanting to know &lt;em&gt;whether you&amp;rsquo;re free Thursday&lt;/em&gt;. Asking for their name,
company, and reason for meeting first inverts the order — they&amp;rsquo;re paying a cost
before receiving any value. Put the slots first and collect details on the
confirm step, when they&amp;rsquo;re already committed.&lt;/p&gt;</description></item></channel></rss>