Swarm + deariary: every place you go becomes a diary entry
You checked in at the ramen place near the station. Then the bookshop two blocks over. Then the park where you sat on a bench and watched joggers for twenty minutes before heading home.
Swarm recorded all three. It gave you three pins on a map, three timestamps, three venue names. What it did not record is that the ramen was a celebration after a long week, that the bookshop was a spontaneous detour because you saw a title in the window, or that the park bench was the first time you sat still all day.
We announced Swarm as an integration previously. This post is the technical companion: exactly what deariary pulls from Swarm, how it handles the data, and what your diary looks like when your check-ins become entries.
How the connection works
Swarm uses Foursquare OAuth 2.0 for authentication. When you connect Swarm in deariary, you are redirected to Foursquare’s login page to authorize read access to your check-in data.
deariary stores an OAuth access token for your account. This token grants read-only access to your check-ins: deariary cannot create check-ins, modify your profile, or interact with your Swarm account in any way. The token does not expire on its own, but you can revoke it at any time by disconnecting Swarm from your deariary settings.
What deariary collects from Swarm
Each morning, deariary fetches your previous day’s check-ins from the Foursquare API. The Swarm changelog post covers the basics. Here is the full picture of what each check-in yields:
The place itself
- Venue name: “Marufuku Ramen”, “Shibuya Tsutaya”, whatever Foursquare calls it
- Foursquare category: the venue classification (“Ramen Restaurant”, “Bookstore”, “Park”), which the LLM uses to infer what you were doing there
- Full address and coordinates: street address, city, and country feed the location timeline; lat/long coordinates render embedded maps in your entry
What you added
- Timestamp: converted to your configured timezone so entries read in local time
- Shout: the free-text comment you typed at check-in, if any. This is the most valuable field for diary generation (more on this below)
- Companions: friends tagged in the check-in, so the diary knows who you were with
- Event name: concerts, sports matches, festivals, and other venue events
- Photos: images attached to the check-in, shown in the media gallery alongside photos from other integrations
Aggregated stats
At the end of collection, deariary computes:
- Total check-in count for the day
- Per-category tallies (e.g., 3 cafes, 1 park, 1 restaurant), rendered as highlight cards on your entry
- Distinct cities visited, listed when you crossed city boundaries during the day
What deariary does NOT collect
- No friends list. deariary does not see your full Swarm friends list. It only knows about companions tagged in specific check-ins you made.
- No tips or recommendations. Your Foursquare tips, reviews, and venue ratings are not accessed.
- No venue history beyond check-ins. deariary does not see places you searched for, saved, or browsed without checking in.
- No push notifications. deariary does not trigger Swarm notifications or interact with your app in real time.
- No write access. deariary reads check-in data. It cannot create, edit, or delete your check-ins.
- No Foursquare City Guide data. Venue recommendations, curated lists, and editorial content from Foursquare are not accessed.
Revoking access is equally straightforward: disconnect Swarm from your settings page and the token is invalidated immediately. No residual access, no background fetching.
Places as memory anchors
Location data behaves differently from other integrations in one important way: places anchor memories more reliably than timestamps.
You probably do not remember what you did on March 14. But if someone says “the Italian place with the courtyard where we waited thirty minutes for a table,” the whole evening might come back. The venue, the wait, the conversation, the walk home.
Swarm check-ins provide this spatial anchor. When deariary weaves them into a diary entry, the resulting text reads like a route through your day rather than a list of events. Your morning started at the usual cafe, lunch was at the new Thai place near work, and the evening was a long walk through the park before heading home. Each place carries its own weight.
From raw check-ins to a readable day
Here is what the transformation looks like. Say you had a Saturday with four check-ins:
Swarm’s data looks something like:
10:32 Blue Bottle Coffee (Coffee Shop) - Shibuya, Tokyo
Shout: "Iced latte, window seat"
12:15 Tsutaya Books (Bookstore) - Daikanyama, Tokyo
Photo: 1 image attached
14:00 Yoyogi Park (Park) - Shibuya, Tokyo
Companions: Mika
19:30 Afuri (Ramen Restaurant) - Ebisu, Tokyo
Shout: "yuzu ramen, always"
deariary hands this to the LLM alongside any other integration data for that day. The result reads like:
Saturday started at Blue Bottle in Shibuya, where you grabbed an iced latte by the window. From there you wandered to Tsutaya Books in Daikanyama, spending a while browsing the art section. The afternoon was at Yoyogi Park with Mika, sitting in the shade while the cherry blossoms held on for one more week. Dinner was yuzu ramen at Afuri in Ebisu, the place you keep coming back to.
Four check-ins became a day. The shouts (“iced latte, window seat”, “yuzu ramen, always”) gave the LLM texture it could not have invented. The companion name placed a friend in the scene. The venue categories told the LLM what kind of places these were, so it could write “browsing the art section” for a bookstore rather than something generic.
What the LLM does with Swarm data
The Swarm fetcher provides context hints to the LLM: check-in data represents physical places visited during the day, and shouts are the user’s own words that should be preserved in spirit.
On a day where you checked in once (morning coffee) and spent the rest of the day at home writing code (visible through GitHub commits), Swarm gets a brief mention: “You started the morning at the usual cafe before settling in for a long coding session.” On a travel day with eight check-ins across two cities, the location data might carry most of the entry.
The LLM adjusts because it sees the full picture. A single check-in surrounded by Slack messages and Todoist completions is a small detail in a workday. Eight check-ins with no other integration data is a day defined by where you went. The entry mirrors that balance automatically.
Shouts: your words, preserved
Most integration data is structured: timestamps, counts, durations. Shouts are different. They are free text, written by you at the moment of check-in. “Perfect cortado.” “Third time this week.” “Finally found the bookshop everyone talks about.”
These fragments are gold for diary generation. They carry tone, opinion, and context that no API field can provide. The LLM uses them as seeds: a shout like “finally found it” tells the LLM this visit was a discovery, not a routine stop. “Third time this week” tells it this place is a habit.
If you do not write shouts, the diary still works. Venue names and categories give the LLM enough to write a spatial narrative. But adding even a few words at check-in time makes the resulting diary noticeably more personal.
Swarm alone vs. with other integrations
A Swarm-only diary captures where you went and when. It reads like a location log with narrative polish.
Add other integrations and the places gain context:
Swarm only:
You started the day at Blue Bottle Coffee in Shibuya, then spent the afternoon at Yoyogi Park. In the evening you had ramen at Afuri in Ebisu before heading home.
Swarm + Google Calendar + Slack:
Your morning meeting got moved to the afternoon, so you used the free slot to work from Blue Bottle in Shibuya. The 2 PM product review lasted an hour. After work you headed to Yoyogi Park, then met up for ramen at Afuri in Ebisu. Back home, you caught up on two Slack threads about the launch timeline before calling it a night.
The first version tells you where you went. The second tells you why. The meeting shift explains the cafe visit. The Slack threads explain why you were still thinking about work during dinner. Together they reconstruct not just the route, but the rhythm of the day.
On the Free plan you can connect one integration, which is enough to try Swarm on its own. Upgrading to Basic (up to 5 integrations) lets you layer your check-ins with your calendar, messages, and tasks. See pricing on deariary.com for details.
Photos and the location timeline
Swarm is one of the few integrations that contributes to all three visual features in a diary entry:
- Media gallery: check-in photos appear as thumbnails alongside photos from other integrations
- Highlight cards: visit counts per category (e.g., “Cafes: 3”, “Parks: 1”) appear as structured summary cards
- Location timeline: each check-in appears on a chronological timeline with the venue name, address, and an embedded map
The location timeline was initially available only through webhooks with coordinates. Swarm was the first native integration to populate it. If you check in at four places during the day, your entry shows four map pins in chronological order, each with the venue name and address. Scrolling through the timeline reconstructs your route visually.
When you stay home
Some days have zero check-ins. You worked from home, stayed in, or simply did not open Swarm.
On those days, deariary has no Swarm data to include. Your other integrations fill the gap: GitHub commits, Slack conversations, and calendar events carry the entry without any location context.
Over time, the contrast becomes part of the story. A week of daily check-ins across cafes, restaurants, and parks followed by three days of nothing might mark a busy stretch at work or a stretch of rainy weather. You do not label these patterns. They emerge on their own when the diary records both the movement and the stillness.
Getting started
The setup is three clicks: open Settings > Integrations, select Swarm, and authorize through Foursquare’s login page. Your first batch of check-ins arrives the next morning. Timestamps are converted to your configured timezone, so a lunch check-in in Tokyo reads as noon, not 3 AM UTC.
What surprised us
Swarm has been connected to our own diaries since before the integration was public. Three patterns stood out over months of entries.
Routine places tell you more than new ones. A first visit to a restaurant is memorable on its own. But seeing the same cafe appear in your diary three times a week for two months tells you something about your life during that period. It was your writing spot, your thinking spot, your escape from the apartment. The repetition, visible only when you scroll through weeks of entries, gives a routine place a weight that a single visit never could.
Shouts age well. A three-word shout (“perfect weather today”) means nothing the day you write it. Three months later, reading it alongside the park check-in and the friend’s name, it reconstructs a specific afternoon. The brevity helps: you were not trying to be literary, you were just noting a feeling. That rawness survives better than polished prose would.
Days without check-ins are informative. We expected the check-in days to be interesting and the stay-home days to be blank. The opposite turned out to be true. A sudden gap in check-ins, after a week of daily outings - made us curious about what happened. The diary still had an entry (from other integrations), and re-reading it answered the question: a deadline, a cold, a project crunch. The absence of places told a story that the presence of them could not.
Your Swarm check-ins already record where you go. deariary turns those pins into a diary that preserves not just the places, but the days they were part of. The venues become anchors, the shouts become texture, and the route through your day becomes something worth re-reading six months from now.