LarkBot
LarkBot helps people find local events by reading public event calendars.
Last updated November 2, 2026, 7:36 PM ET
What it does
LarkBot reads public event pages and calendar feeds, and Lark lists facts about upcoming events with a link back to the organizer’s own page wherever we can. We use software, including AI models, to understand events and make them searchable. We don’t train AI models on site content.
When it crawls websites, it sends this user agent:
Mozilla/5.0 (compatible; LarkBot/1.0; +https://lark.guide/bot)Crawling websites
When LarkBot crawls websites, it follows robots.txt. Each time it visits a site, it reads the site’s robots.txt again and follows the rules for LarkBot, or for * when there are none for LarkBot. It skips anything they disallow, and it honors Crawl-delay in full, whatever the value.
To stop LarkBot crawling your site, add this to your robots.txt:
User-agent: LarkBot
Disallow: /Subscribing to calendar feeds
Some organizers publish a calendar on a calendar service for people to subscribe to: a Google Calendar or iCloud public calendar link, a school calendar feed, or a library calendar service’s public feeds and the event data its own calendar pages load (LibCal, BiblioCommons, Communico). LarkBot reads these the way a calendar app does, even where the service’s robots.txt asks crawlers to stay away, because they are published for subscription. Everything else on those services, their web pages included, follows robots.txt.
To stop LarkBot reading a calendar you publish this way, make the calendar private, or write to us and we’ll stop.
How often it crawls, and when a site says no
LarkBot sends at most about one request per second to a site, however many of our jobs are running, and waits longer when Crawl-delay asks. On November 2, 2026, the median site it read got 3 requests from it that day.
When it crawls, a refusal stops every request to that site for the rest of that visit: a 202, 401, 403, 406, 409 or 429, a challenge page or a bot wall. We don’t retry it, change our user agent or work around it. The one exception is a documented public API on that site, such as The Events Calendar’s, which we may still read; a refusal there stops that too. A Retry-After on a 429 or 503 means we send that site nothing until then, up to 7 days. When we first check a new site, a 429 without one gets one more request, no sooner than a minute later; a second 429 stops us.
If robots.txt itself answers with a server error (5xx) or doesn’t answer, we don’t crawl the site that visit. If it refuses us with anything but a 429, we ask for one page, once; if that loads normally, the site has no robots rules we can read, and we crawl it as usual. When crawling, we don’t retry a page that answered with a server error.
What we keep
We keep copies of the pages we read, to track changes to events over time, and delete them on request. They stay private: we publish facts and links, not copies. We don’t keep images, video or audio.
How to check it’s us
LarkBot signs every request with HTTP Message Signatures (Web Bot Auth). The headers Signature, Signature-Input and Signature-Agent: "https://lark.guide" verify against our public keys at lark.guide/.well-known/http-message-signatures-directory. A request that says it’s LarkBot without a valid signature is not from us.
What it doesn’t do
It doesn’t log in, submit forms or solve CAPTCHAs, and it doesn’t pretend to be a person’s browser.
Contact
To correct a listing, ask us to stop reading a calendar or visit less often, have copies deleted, or anything else, write to [email protected].