Run source blocks in an Org Mode subtree by custom ID

| emacs, org

I like the way Org Mode lets me logically group functions into headings. If I give the heading a CUSTOM_ID property (which is also handy for exporting to HTML, as it turns into an link anchor), I can use that property to find the subtree. Then I can use org-babel-execute-subtree to execute all source blocks in that subtree, which means I can mix scripting languages if I want to.

Here's the code:

(defun my-org-execute-subtree-by-custom-id (id &optional filename)
  "Prompt for a CUSTOM_ID value and execute the subtree with that ID.
If called with \\[universal-argument], prompt for a file, and then prompt for the ID."
  (interactive (if current-prefix-arg
                   (let ((file (read-file-name "Filename: ")))
                     (list
                      (with-current-buffer (find-file-noselect file)
                        (completing-read
                         "Custom ID: "
                         (org-property-values "CUSTOM_ID")))
                      file))
                 (list
                  (completing-read "Custom ID: " (org-property-values "CUSTOM_ID")))))
  (with-current-buffer (if filename (find-file-noselect filename) (current-buffer))
    (let ((pos (org-find-property "CUSTOM_ID" id)))
      (if pos
          (org-babel-execute-subtree)
        (if filename(error "Could not find %s in %s" id filename)
          (error "Could not find %s" id))))))

For example, in Using Org Mode, Emacs Lisp, and TRAMP to parse meetup calendar entries and generate a crontab, I have a Emacs Lisp source block that generates a crontab on a different computer, and a shell source block that installs it on that computer.

Technical notes: org-babel-execute-subtree narrows to the current subtree, so if I want anything from the rest of the buffer, I need to widen the focus again. Also, it's wrapped in a save-restriction and a save-excursion, so someday I might want to figure out how to handle the cases where I want to change what I'm looking at.

elisp: links in Org Mode let me call functions by clicking on them or following them with C-c C-o (org-open-at-point). This means I can make links that execute subtrees that might even be in a different file. For example, I can define links like these:

  • [[elisp:(my-org-execute-subtree-by-custom-id "update" "~/sync/emacs-calendar/README.org")][Update Emacs calendar]]
  • [[elisp:(my-org-execute-subtree-by-custom-id "crontab" "~/sync/emacs-calendar/README.org")][Update Emacs meetup crontab]]

That could be a good starting point for a dashboard.

Related: Execute a single named Org Babel source block

This is part of my Emacs configuration.
View org source for this post

Using Org Mode, Emacs Lisp, and TRAMP to parse meetup calendar entries and generate a crontab

| org, emacs

Times and time zones trip me up. Even with calendar notifications, I still fumble scheduled events. Automation helps me avoid embarrassing hiccups.

We run BigBlueButton as a self-hosted web conferencing server for EmacsConf. It needs at least 8 GB of RAM when active. When it's dormant, it fits on a 1 GB RAM virtual private server. It's easy enough to scale the server up and down as needed. Using the server for Emacs meetups in between EmacsConfs gives people a way to get together, and it also means I can regularly test the infrastructure. That makes scaling it up for EmacsConf less nerve-wracking.

I have some code that processes various Emacs meetup iCalendar files (often with repeating entries) and combines them into one iCal file that people can subscribe to calendar, as well as Org files in different timezones that they can include in their org-agenda-files. The code I use to parse the iCal seems to handle time zones and daylight savings time just fine. I set it up so that the Org files have simple non-repeating entries, which makes them easy to parse. I can use the Org file to determine the scheduled jobs to run with cron on a home server (named xu4) that's up all the time.

This code parses the Org file for schedule information, then generates pairs of crontab entries. The first entry scales the BigBlueButton server up 1 hour before the event using my bbb-testing script, and the second entry scales the server down 6 hours after the event using my bbb-dormant script (more info). That gives organizers time to test it before the event starts, and it gives people plenty of time to chat. A shared CPU 8 GB RAM Linode costs USD 0.072 per hour, so that's USD 0.50 per meetup hosted.

Using #+begin_src emacs-lisp :file "/ssh:xu4:~/bbb.crontab" :results file as the header for my code block and using an SSH agent for authentication lets me use TRAMP to write the file directly to the server. (See Results of Evaluation (The Org Manual))

(let* ((file "/home/sacha/sync/emacs-calendar/emacs-calendar-toronto.org")
       (time-format "%M %H %d %m")
       (bbb-meetups "OrgMeetup\\|Emacs Berlin\\|Emacs APAC")
       (scale-up "/home/sacha/bin/bbb-testing")
       (scale-down "/home/sacha/bin/bbb-dormant"))
  (mapconcat
   (lambda (o)
     (let ((start-time (format-time-string time-format (- (car o) 3600 )))
           (end-time (format-time-string time-format (+ (car o) (* 6 3600)))))
       (format "# %s\n%s * %s\n%s * %s\n"
               (cdr o)
               start-time
               scale-up
               end-time
               scale-down)))
   (delq nil
         (with-temp-buffer
           (insert-file-contents file)
           (org-mode)
           (goto-char (point-min))
           (org-map-entries
            (lambda ()
              (when (and
                     (string-match bbb-meetups (org-entry-get (point) "ITEM"))
                     (re-search-forward org-tr-regexp (save-excursion (org-end-of-subtree)) t))
                (let ((time (match-string 0)))
                  (cons (org-time-string-to-seconds time)
                        (format "%s - %s" (org-entry-get (point) "ITEM") time)))))
            "LEVEL=1")))
   "\n"))

The code makes entries that look like this:

# OrgMeetup (virtual) - <2025-06-11 Wed 12:00>--<2025-06-11 Wed 14:00>
00 11 11 06 * /home/sacha/bin/bbb-testing
00 18 11 06 * /home/sacha/bin/bbb-dormant

# Emacs Berlin (hybrid, in English) - <2025-06-25 Wed 12:30>--<2025-06-25 Wed 14:30>
30 11 25 06 * /home/sacha/bin/bbb-testing
30 18 25 06 * /home/sacha/bin/bbb-dormant

# Emacs APAC: Emacs APAC meetup (virtual) - <2025-06-28 Sat 04:30>--<2025-06-28 Sat 06:00>
30 03 28 06 * /home/sacha/bin/bbb-testing
30 10 28 06 * /home/sacha/bin/bbb-dormant

This works because meetups don't currently overlap. If there were, I'll need to tweak the code so that the server isn't downscaled in the middle of a meetup. It'll be a good problem to have.

I need to load the crontab entries by using crontab bbb.crontab. Again, I can tell Org Mode to run this on the xu4 home server. This time I use the :dir argument to specify the default directory, like this:

#+begin_src sh :dir "/ssh:xu4:~" :results silent
crontab bbb.crontab
#+end_src

Then cron can take care of things automatically, and I'll just get the e-mail notifications from Linode telling me that the server has been resized. This has already come in handy, like when I thought of Emacs APAC as being on Saturday, but it was actually on Friday my time.

I have another Emacs Lisp block that I use to retrieve all the info and update the list of meetups. I can add (goto-char (org-find-property "CUSTOM_ID" "crontab")) to find this section and use org-babel-execute-subtree to execute all the code blocks. That makes it an automatic part of my process for updating the Emacs Calendar and Emacs News. Here's the code that does the calendar part (Org source):

(defun my-prepare-calendar-for-export ()
  (interactive)
  (with-current-buffer (find-file-noselect "~/sync/emacs-calendar/README.org")
    (save-restriction
      (widen)
      (goto-char (point-min))
      (re-search-forward "#\\+NAME: event-summary")
      (org-ctrl-c-ctrl-c)
      (org-export-to-file 'html "README.html")
      ;; (unless my-laptop-p (my-schedule-announcements-for-upcoming-emacs-meetups))
      ;; update the crontab
      (goto-char (org-find-property "CUSTOM_ID" "crontab"))
      (org-babel-execute-subtree)
      (when my-laptop-p
        (org-babel-goto-named-result "event-summary")
        (re-search-forward "^- ")
        (goto-char (match-beginning 0))
        (let ((events (org-babel-read-result)))
          (oddmuse-edit "EmacsWiki" "Usergroups")
          (goto-char (point-min))
          (delete-region (progn (re-search-forward "== Upcoming events ==\n\n") (match-end 0))
                         (progn (re-search-forward "^$") (match-beginning 0)))
          (save-excursion (insert (mapconcat (lambda (s) (concat "* " s "\n")) events ""))))))))
(my-prepare-calendar-for-export)

I used a similar technique to generate the EmacsConf crontabs for automatically switching to the next talk. For that one, I used Emacs Lisp to write the files directly instead of using the :file header argument for Org Mode source blocks. That made it easier to loop over multiple files.

Hmm. Come to think of it, the technique of "go to a specific subtree and then execute it" is pretty powerful. In the past, I've found it handy to execute source blocks by name. Executing a subtree by custom ID is even more useful because I can easily mix source blocks in different languages or include other information. I think that's worth adding a my-org-execute-subtree-by-custom-id function to my Emacs configuration. Combined with an elisp: link, I can make links that execute functional blocks that might even be in different files. That could be a good starting point for a dashboard.

I love the way Emacs can easily work with files and scripts in different languages on different computers, and how it can help me with times and time zones too. This code should help me avoid brain hiccups and calendar mixups so that people can just enjoy getting together. Now I don't have to worry about whether I remembered to set up cron entries and if I did the math right for the times. We'll see how it holds up!

View org source for this post

2025-06-16 Emacs news

| emacs, emacs-news

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, r/planetemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View org source for this post

Making and re-making: fabric is tuition

| sewing, parenting, life

Sewing together with A+ is helping me learn so much about making and re-making, and about saying yes.

I'm not good at saying yes. Sometimes it's because I have no idea how to make something happen, and I don't want to overcommit. Sometimes it's because I don't think something will be practical or worthwhile. Sometimes it's because I want to spend the time or money on other things instead. Sometimes I don't know how to make it something that she can help with. But A+ asks with shining eyes, and I'm learning, slowly, slowly, to say yes. I'm beginning to trust that the mistakes don't matter as much as the memories do.

2025-06-09 swim dress.jpg

A+ has always had ideas about what she wants to wear. At five, she was all about floor-length dresses. I sewed her A-line dresses in comfortable cotton Lycra, peasant-style dresses that matched my tops. I also made a knee-length swim skirt for her. She liked it and requested a floor-length version so that she could twirl and twirl and twirl at the splash pad. She wore it into the wading pool too, enjoying how it swirled around her, trapping air under the skirt and marvelling as it ballooned. The following year, she asked me to attach a bodice to it to make it a dress. I turned the knee-length skirt into the bodice for the floor-length dress, took out the stitches that had previously narrowed the then-too-large waist, and it was good for another year of twirling.

When she was 6 and in the throes of a Cinderella obsession (we read through 50+ variants of the story from the library), I made her a powder blue charmeuse ballgown with a full-circle skirt supported by the petticoats and tutus that she layered with abandon: 19 layers of tulle in total. She loved curtsying and twirling with that whole shebang at the pretend tea parties she hosted at the playground, and it survived the washing machine surprisingly well.

A+ is nine now and has long outgrown the ballgown, which has been stashed in the closet until I figure out if it's going to become a skirt for her or for me. But she still wears the A-line dresses from years ago, which now reach her knees instead of her ankles. She still likes fanciful clothes. I made a floor-length light blue dress so that she could wear it to her cousin's wedding. She picked out some ribbon for the waist, a lace trim to place near the hem, and some ribbon flowers as embellishments, and she asked me to sew a hooded cloak with a ribbon closure. After the wedding, I trimmed the dress to knee-length and re-sewed the lace close to the new hem so that she could wear it while biking to the playground.

Inevitably, she's beginning to grow up. Her fancy is tempered by a few nods to practicality:

  • knee-length skirts because they don't get in the way of riding her bike
  • she likes stretchy fabric more than woven fabric
  • skorts are great for doing cartwheels or hanging upside down.

We prefer to buy fabric in person so that she can feel the fabric on her skin. At the store, A+ zeroed in on a sheer floral print organza that she had seen on a mannequin in the window display. "The organza doesn't have a border," she said. "We can make it a circle skort." She's learning to think about the characteristics of the fabric and what we can do with it. She matched the sheer floral organza fabric with a peach polyester-spandex from the swimwear section and the right colour of thread from the basement.

This will be the fourth warm-weather skirt this year. We make little tweaks each time, as she learns more about what she likes to wear. Here's the progression so far:

  • For her first summer skirt this year, I made a lavender knee-length rectangle skirt with scallop-edged embroidered mesh over bridal satin, gathered at a 1:2 ratio. She liked the dressiness of it, but 1:2 turned out to not be enough ease for cartwheels, so she changes into something else when she wants to be more active.
  • The second was a mermaid scale skort made from the swimwear fabric I ordered last year, based on one of the purchased skorts she liked. It'll be her new swim skirt.
  • The third one was a purple skort. I changed it from side seams to a single back seam so that it's easier for A+ to tell the difference between front and back.
2025-06-09 variations on a theme.jpg

I love being able to change things based on her feedback. We've browsed nearby clothing stores and bought a few pieces, but she rarely finds things that she really likes. Her last pick from the store was a peach skort with a matching top. I removed the waist elastic from the top because she doesn't like elastics, and now it's good to go. It'll be the model for the new skort, I think: a non-stretchy skirt with a stretchy fabric used for the shorts. This time she wants a knee-length circle skirt instead of the mid-thigh length of the commercial skorts. Easy enough - just a matter of drawing a bigger circle.

2025-06-09 hat.jpg

I appreciate how all this experience re-making things makes it easier to say yes to A+'s ideas. For example, the hat I sewed for her last year is starting to feel a bit small. I cut pieces for a new bucket hat using the free AppleGreen Cottage pattern that I'd previously used to make two other hats for her and one for me. This time, I wanted to make the outer layer from the floral canvas left over from reupholstering long-gone dining room chairs and the inner layer from the linen tea toweling that we decided not to use in the kitchen. Midway through the process, A+ asked me if I could make the hat pointy instead, like a witch's hat. I put the brim pieces together, sketched out a quick quarter-circle, sewed the outer layer, and tested the fit on her head. Then I used the inner brim layer to cover up the seams, finished with some topstitching, and it was good to go. I figured that if she changed her mind and wanted a flat hat, I could easily make one from the scraps, or I could even modify this pointy hat to put a different crown on it.

2025-06-09 doll.jpg

Sewing is becoming more enjoyable and less stressful. I worry less about making mistakes because I've learned how to recover from many of them. Sometimes something's more of a loss, like that lavender floor-length cotton dress with a split organza overskirt that she wore a couple of times before it was declared too uncomfortable, or the scraps that she cuts up when trying to fashion a dress for her doll. That's fine, fabric is tuition for learning.

A+'s becoming more adept, too. She's no longer limited to standing still for measurements, fetching pieces of fabric, or other make-work I could think of to keep her busy while I sewed. Now she can get the sewing machine to wind the bobbin and she can thread the needle. She can sew straight seams and stop when the machine makes an unexpected sound. She can turn straps right side out and unpick seams when we make mistakes or change our minds. She knows it isn't just a matter of how a fabric looks, but also what it feels like and how it moves. She's gradually learning what she likes and what she doesn't like. And if I have the temerity to remind her how to do something ("Make a 'p' shape with the thread when you put it in the bobbin case"), I get a glimpse of the teenager she'll become ("I know how to do it, Mom.").

We're getting better at seeing the clothes as their component parts: patterns, fabric, pieces we can recombine. "Can you copy this, but without sleeves?" she asks, and I figure it out. Looking at the yardage left, I can start to think: ah, I can squeeze a matching training bra out of this part, and I think I have enough here to make a top, and this rectangle is large enough for a headband, and I can turn these scraps into flowers while I'm waiting for her at a playdate.

I'm learning from all her requests. By myself, I tend to settle into comfortable routines. In 2015, I made 18 tops based on the Colette Sorbetto woven tank top pattern, eventually taking advantage of Hacklab's laser cutter to precisely cut the fabric so that my notches lined up every time. When I find something I like, I make it again and again. A+'s still figuring out what she likes. We're learning so much.

Sewing for A+ is a time-limited opportunity, and I want to make the most of it. There are only so many clothes I can sew for her. Eventually she may want to wear the same things as everyone else, or eventually she might be comfortable doing all the sewing herself. Eventually she'll be off on her own life. Maybe the ballgowns will turn into skirts or camisoles, and from there into headbands or scrunchies.

・・・・・

Re-making echoes through our past. My mom tells me this story of how her mom sewed, and how their family was poor. My mom rarely got a new dress, so when her mom sewed a red dress for her, that was special. She wore it until the bodice couldn't fit any more. Her mom undid the seams, sewed a new bodice onto the skirt, and gave the dress back to her. She wore it until the skirt was all worn out. Her mom undid the seams and replaced the skirt. My mom said to her mom, "Does this mean I have a new dress now?" This was not the only dress my grandmother made for her. My mom also tells a story of how one time she hovered by her mom's sewing machine, impatiently waiting for her mom to finish sewing the dress that she was going to wear to a party that day. My grandmother must have also worked on re-making, on learning how to say yes. My mom didn't make clothes for me, but she passed on the stories.

All this reminds me a little of two picture books we borrowed from the library. My Forever Dress by Harriet Ziefurt and Liz Murphy (2009, video) shows how a grandmother extended and transformed a dress as her granddaughter grew. Something from Nothing by Phoebe Gilman (1992, video) retells the Yiddish folktale about Joseph's overcoat, this time with a special blanket that gets worn down and transformed into a jacket, a vest, a tie, a handkerchief, ending as a fabric-covered button. The button gets lost, but it turns into a story. Of the two, I liked Something from Nothing more. I liked the lighter touch it told the story with, and I liked the reminder that cherished things can be turned into stories.

2025-06-09 bag.jpg

A+ was in the kitchen, making a grocery list on an LCD writing tablet. She wanted to buy apple sauce, yogurt cups, and mac and cheese. She wanted to do it herself, with her own money. W- will walk her to the store, let her loose, and meet up with her in front of one of the aisles. "Mama, you can stay home," she said.

Challenge: She wanted her own bag for groceries. Her backpack was too small. I rummaged through the reusable bags hanging on the coat hooks. There's this cotton tote we got from an event, but the straps are too long. When she put it on her shoulder, it threatened to fall down. When she carried the bag by its straps, the bag dragged on the floor. I shortened one strap to see if she can hold it then. The body of the bag itself was too long. I sewed a seam across the bottom. Now it's the right height for her. I shortened the other strap and serged the bottom seam to make it neat. She wanted a pocket for her purse and the KN95 mask that she'll wear in the supermarket. W- was almost ready to head out. "Give me another five minutes and I can make her a pocketed bag," I said. He waited. I opened up the scrap from the bottom, sewed the edges together in the other direction, turned it into a pocket, and sewed it to the top hem of the bag. A+ pronounced it perfect. She tucked her purse, mask, and shopping list into the bag, looped the straps over her shoulder, snugged the bag under her elbow, and headed out into the world.

・・・・・

I still sweat my way through figuring out how to sew what she comes up with, but it's good for me. I make and re-make so she can have things that fit her ideas, and so that she can dream of more. She's learning that her ideas matter. It can take several tries, but we can make them happen together. Someday she'll make and re-make things all on her own.

This post was inspired by the June IndieWeb Carnival theme of Take Two.

View org source for this post

2025-06-09 Emacs news

| emacs, emacs-news

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, r/planetemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View org source for this post

2025-06-02 Emacs news

| emacs, emacs-news

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, r/planetemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View org source for this post

Monthly review: May 2025

| monthly, review
May 2025: 🌧️🎨📰🚴🌼🐱🐸📰🦷🧵🚂🔥🐕🐒🏰🔥💡👗♻️🎮🌧️🎣🎪🏺💻🍦🎢🍓🛝🧵

Text from sketch

May 2025: Stardew Valley, s'mores, sewing

  1. 🌧️ rainy day writing
  2. 🎨 painting pottery
  3. 📰 newsletter training
  4. 🚴 Bike Brigade
  5. 🌼 dandelions
  6. 🐱 cat food delivery
  7. 🐸 toad day
  8. 📰 newsletter
  9. 🦷 dental cleaning
  10. 🧵 sewing
  11. 🚂 trackless train
  12. 🔥 s'mores
  13. 🐕 dogs in Minecraft
  14. 🐒 monkey bars, fashion
  15. 🏰 at the castle playground
  16. 🔥 s'mores and popsicles
  17. 💡 W-'s bike light
  18. 👗 clothes, sewing
  19. ♻️ compost
  20. 🎮 Stardew Valley
  21. 🌧️ More Stardew, rainy day
  22. 🎣 Trout derby - Stardew Valley
  23. 🎪 silo, fair - Stardew Valley
  24. 🏺 pottery wheel, ankle hurts
  25. 💻 laptop refresh
  26. 🍦 ice cream
  27. 🎢 whee!
  28. ☕ peppermint tea, drizzle
  29. 🍓 farmers market strawberries
  30. 🛝 market playground
  31. 🧵 sewing

2025-05-31-06

Last month, I wrote:

In May, I want to add more plants to our outdoor garden, sew some swimwear for A+ and me, and see about volunteering for Bike Brigade.

I volunteered to help with Bike Brigade's e-mail newsletter, since they were looking for someone to take over from another volunteer and it might be a good way to build real-life community. I like the cause: volunteer cyclists connecting food banks with people who need those groceries delivered. W-'s been volunteering for that for a while, and A+ and I also did a couple of deliveries, and it's nice to see her enjoy helping out. I also listened to a virtual panel about bikes and social justice, and I shared my sketchnotes afterwards. I'm glad there are people thinking about these issues, and I'm also glad that there are small, concrete, on-the-ground ways that we can help.

We made more progress through the Toronto District School Board's gifted identification process, but I think we're going to opt for a regular class in the public virtual school instead of the gifted placement in an in-person school. A+ gets bored in class, but I think she'll enjoy having the extra opportunities to play with her friends and explore ideas, and she also appreciates the way she can read and sing in the middle of class. (Hooray for the mute button!)

A+ took a pottery painting class and another pottery wheel class at Clay With Me. This time she did a 2-hour wheel workshop, and the teacher was able to help her with a couple of pieces. We've been using the bowls we made in the previous class. It's nice to have hand-made things. This seems to be an ongoing interest, so we're going to experiment with a pottery-related summer camp. I found one that lets me register for a week-long afternoon camp that focuses on the pottery wheel. We like to keep our time pretty flexible, so this is our first experiment with a camp. I think it'll be great to be able to build momentum and learn from a teacher with more experience, using equipment that we don't have access to at home. The camp description says kids will learn how to add attachments and other decorations to their work, so that could be pretty cool.

I experimented with bringing a portable butane stove to the park. We were able to make s'mores on two separate occasions without setting anyone on fire, hooray! It was a good experience. The kids had fun.

On nice days when we didn't have any playdates planned, we I went on bike adventures. We checked out the flower event in Yorkville. We also explored the St. James Park playground, which was included in the recent Doors Open event. A+ liked the tall slide there. We also went to the Art Gallery of Ontario so that she could work on her Group of 7 art assignment while looking at the actual paintings. She picked Figure with Rays of Light by Lauren Harris.

There were quite a few rainy days. We got a lot of sewing done. A+'s getting better at sewing simple seams, and she can stop the machine when things sound weird. We made a fancy skirt with an embroidered mesh layer over satin, a couple of skorts made of spandex so that she can wear it into the splash pad or even the swimming pool, a swim set, and a few tops.

Rainy days were also good for playing together. A+ was curious about playing a farming game, so we started playing Stardew Valley, and we all got into it quite a fair bit. A+ likes collecting eggs, cooking food, and building friendships. I enjoy farming and mining. It's a lot of fun, especially when we play co-op. Even W-'s gotten into it on his phone. This could be a fun way to learn more about life and parenting. Having my own solo farm is also nice, too. It helps me be more patient when we play in co-op because I know I have a different space where I can try things out. It does mean I get tempted to stay up late. I can definitely see the impact of this new interest on my time graph and sleep totals, but that's fine. It's good to ride the wave of our interests, especially when we can do it together.

In our real-life garden, the radishes have been very happy, and other seeds have sprouted too. The mini roses, dahlias, and strawberries have come back, and so has a dianthus. The daffodils are done with their blooms. Last year's compost turned out pretty nicely, and I've started turning this year's trimmings into compost. I love letting A+ plant seeds wherever she likes, and I've been enjoying learning how to identify those sprouts as well as other ones that turn up in our garden.

A+'s been enjoying the sourdough rye from the Dufferin Grove farmers market, so I revived the sourdough starter we got from a trip many years ago, which we'd revived in 2020 or so and then re-dehydrated. I thought I got it to be pretty active again, but I haven't quite figured out baking a proper loaf yet. On the other hand, W- has been on a roll (hah) with all the breads and bagels he's been baking. I put the starter in the fridge for a week because we had lots of potato-rosemary bread in the house, and now I think the starter needs a few days of waking up again. Oh well, flour is tuition for learning how to bake. Fortunately, I've discovered I like sourdough discard pancakes, so at least there's a way to deal with the excess.

In June, I'd like to take A+ on a few more informal field trips during the school week, to take advantage of places before they get swamped by everyone else on summer break. Maybe Centreville, and maybe strawberry-picking like last year. Her friends will probably be more available for playdates too, so that'll be a nice shift in our routines. I'm looking forward to more cooking and sewing and gardening and pottery. We like making things together and enjoying them together. As the days get longer and the weather warms, I shift: less computer time, more outside time. This is good. I'm looking forward to exploring more of the city by bike, now that we know we can make it out to playgrounds on the other side of town. It's the season for it!

Blog posts

Sketches

Time

Category Previous month % This month % Diff % h/wk Diff h/wk
A+ 30.7 33.9 3.2 58.9 5.4
Unpaid work 4.9 5.7 0.8 9.8 1.3
Discretionary - Play 1.6 1.3 -0.3 2.2 -0.5
Discretionary - Family 0.5 0.2 -0.3 0.3 -0.5
Business 2.4 2.0 -0.4 3.5 -0.6
Sleep 32.2 31.3 -1.0 54.3 -1.6
Personal 11.6 10.7 -1.0 18.5 -1.6
Discretionary - Productive 16.1 9.9 -6.2 17.2 -10.4
2025-05-01 22:26 - 06:55: Sleep2025-05-01 22:13 - 22:26: Personal - Routines2025-05-01 22:08 - 22:13: Personal - Routines2025-05-01 20:38 - 22:08: A+ - Childcare2025-05-01 19:41 - 20:38: Discretionary - Play - Other2025-05-01 18:58 - 19:41: Personal - Routines2025-05-01 18:41 - 18:58: Unpaid work - Clean the kitchen2025-05-01 18:16 - 18:41: Personal - Routines2025-05-01 17:46 - 18:16: Personal - Routines2025-05-01 17:15 - 17:46: Sleep2025-05-01 14:50 - 17:15: A+ - Childcare2025-05-01 14:45 - 14:50: A+ - Childcare2025-05-01 14:02 - 14:45: Discretionary - Productive - Writing2025-05-01 13:51 - 14:02: Discretionary - Productive - Coding2025-05-01 13:50 - 13:51: Discretionary - Productive - Coding2025-05-01 13:30 - 13:50: A+ - Childcare2025-05-01 12:47 - 13:30: Discretionary - Productive - Writing2025-05-01 11:00 - 12:47: A+ - Childcare2025-05-01 10:32 - 11:00: Discretionary - Productive - Writing2025-05-01 09:59 - 10:32: Discretionary - Family2025-05-01 09:53 - 09:59: Discretionary - Family2025-05-01 09:38 - 09:53: A+ - Childcare2025-05-01 09:29 - 09:38: Unpaid work - Laundry2025-05-01 09:24 - 09:29: Unpaid work - Clean the kitchen2025-05-01 08:15 - 09:24: Discretionary - Productive - Music2025-05-01 07:16 - 08:15: A+ - Childcare2025-05-01 06:39 - 07:16: Personal - Routines2025-04-30 23:16 - 06:39: Sleep2025-05-02 22:35 - 00:24: Discretionary - Play - Read - Fiction2025-05-02 22:15 - 22:35: Personal - Routines2025-05-02 21:10 - 22:15: A+ - Childcare2025-05-02 20:48 - 21:10: Discretionary - Play - Other2025-05-02 19:55 - 20:48: Personal - Routines2025-05-02 19:38 - 19:55: Unpaid work - Clean the kitchen2025-05-02 19:07 - 19:38: Personal - Routines2025-05-02 13:25 - 19:07: A+ - Childcare2025-05-02 13:03 - 13:25: Unpaid work - Cook2025-05-02 12:56 - 13:03: Unpaid work - Clean the kitchen2025-05-02 12:46 - 12:56: A+ - Childcare2025-05-02 12:28 - 12:46: Discretionary - Productive - Writing2025-05-02 12:22 - 12:28: Business - Build - Paperwork2025-05-02 12:04 - 12:22: Personal - Routines2025-05-02 11:05 - 12:04: A+ - Childcare2025-05-02 10:30 - 11:05: Discretionary - Productive - Coding2025-05-02 10:21 - 10:30: Discretionary - Productive - Gardening2025-05-02 09:53 - 10:21: Unpaid work - Errands2025-05-02 09:37 - 09:53: A+ - Childcare2025-05-02 08:29 - 09:37: Discretionary - Productive - Music2025-05-02 08:14 - 08:29: Personal - Routines2025-05-02 07:37 - 08:14: A+ - Childcare2025-05-02 07:05 - 07:37: Sleep2025-05-02 07:00 - 07:05: A+ - Childcare2025-05-02 06:55 - 07:00: Personal - Routines2025-05-01 22:26 - 06:55: Sleep2025-05-03 23:57 - 06:58: Sleep2025-05-03 22:54 - 23:57: Personal - Routines2025-05-03 21:12 - 22:54: A+ - Childcare2025-05-03 20:57 - 21:12: Discretionary - Productive - Writing2025-05-03 20:14 - 20:57: Discretionary - Productive - Writing2025-05-03 19:09 - 20:14: Personal - Routines2025-05-03 18:54 - 19:09: Unpaid work - Clean the kitchen2025-05-03 18:25 - 18:54: Personal - Routines2025-05-03 17:55 - 18:25: Unpaid work - Cook2025-05-03 16:18 - 17:55: A+ - Childcare2025-05-03 16:03 - 16:18: Unpaid work - Clean the kitchen2025-05-03 15:00 - 16:03: Discretionary - Play - Other2025-05-03 14:49 - 15:00: Unpaid work - Tidy up2025-05-03 14:47 - 14:49: Discretionary - Productive - Writing2025-05-03 13:50 - 14:47: Personal - Routines2025-05-03 13:46 - 13:50: Business - Earn - Consulting - E1 - General2025-05-03 13:00 - 13:46: Discretionary - Social2025-05-03 12:46 - 13:00: Personal - Routines2025-05-03 12:05 - 12:46: Personal - Routines2025-05-03 12:00 - 12:05: Discretionary - Social2025-05-03 10:30 - 12:00: A+ - Childcare2025-05-03 09:47 - 10:30: Business - Earn - Consulting - E1 - General2025-05-03 09:15 - 09:47: Discretionary - Productive - Music2025-05-03 09:04 - 09:15: Discretionary - Productive - Gardening2025-05-03 08:04 - 09:04: A+ - Childcare2025-05-03 07:02 - 08:04: Personal - Routines2025-05-03 00:24 - 07:02: Sleep2025-05-02 22:35 - 00:24: Discretionary - Play - Read - Fiction2025-05-04 23:37 - 06:37: Sleep2025-05-04 22:37 - 23:37: Discretionary - Productive - Nonfiction2025-05-04 22:19 - 22:37: Personal - Routines2025-05-04 21:02 - 22:19: A+ - Childcare2025-05-04 19:38 - 21:02: Discretionary - Play - Other2025-05-04 18:56 - 19:38: Personal - Routines2025-05-04 18:43 - 18:56: Unpaid work - Clean the kitchen2025-05-04 18:10 - 18:43: Personal - Routines2025-05-04 17:40 - 18:10: A+ - Childcare2025-05-04 15:58 - 17:40: Discretionary - Productive - Gardening2025-05-04 10:12 - 15:58: A+ - Childcare2025-05-04 10:05 - 10:12: Business - Earn - Consulting - E1 - General2025-05-04 09:54 - 10:05: Unpaid work - Clean the kitchen2025-05-04 09:21 - 09:54: Discretionary - Productive - Gardening2025-05-04 08:40 - 09:21: Discretionary - Productive - Music2025-05-04 07:35 - 08:40: A+ - Childcare2025-05-04 06:58 - 07:35: Personal - Routines2025-05-03 23:57 - 06:58: Sleep2025-05-05 22:22 - 06:55: Sleep2025-05-05 22:15 - 22:22: Personal - Routines2025-05-05 21:32 - 22:15: A+ - Childcare2025-05-05 21:02 - 21:32: Discretionary - Productive - Bike Brigade2025-05-05 20:22 - 21:02: Personal - Routines2025-05-05 19:45 - 20:22: Discretionary - Productive - Bike Brigade2025-05-05 19:25 - 19:45: Unpaid work - Clean the kitchen2025-05-05 19:07 - 19:25: Personal - Routines2025-05-05 18:48 - 19:07: Discretionary - Productive - Bike Brigade2025-05-05 17:00 - 18:48: A+ - Childcare2025-05-05 16:22 - 17:00: Discretionary - Productive - Gardening2025-05-05 16:18 - 16:22: Personal - Routines2025-05-05 14:48 - 16:18: Business - Earn - Consulting - E1 - General2025-05-05 13:45 - 14:48: Unpaid work - Cook2025-05-05 13:17 - 13:45: Discretionary - Productive - Emacs2025-05-05 13:08 - 13:17: Personal - Routines2025-05-05 12:52 - 13:08: Business - Earn - Consulting - E1 - General2025-05-05 12:22 - 12:52: Unpaid work - Cook2025-05-05 12:11 - 12:22: Business - Earn - Consulting - E1 - General2025-05-05 12:06 - 12:11: Personal - Routines2025-05-05 11:37 - 12:06: A+ - Childcare2025-05-05 11:25 - 11:37: Personal - Routines2025-05-05 11:15 - 11:25: Unpaid work - Clean the kitchen2025-05-05 10:55 - 11:15: Unpaid work - Cook2025-05-05 10:42 - 10:55: Unpaid work - Clean the kitchen2025-05-05 10:23 - 10:42: Unpaid work - Cook2025-05-05 10:19 - 10:23: Discretionary - Productive - Bike Brigade2025-05-05 09:59 - 10:19: A+ - Childcare2025-05-05 09:06 - 09:59: Discretionary - Productive - Music2025-05-05 08:51 - 09:06: Discretionary - Productive - Writing2025-05-05 08:29 - 08:51: Unpaid work - Clean the kitchen2025-05-05 08:24 - 08:29: Unpaid work - Cook2025-05-05 08:09 - 08:24: Personal - Routines2025-05-05 07:36 - 08:09: A+ - Childcare2025-05-05 06:37 - 07:36: Personal - Routines2025-05-04 23:37 - 06:37: Sleep2025-05-06 22:39 - 06:55: Sleep2025-05-06 22:34 - 22:39: Personal - Routines2025-05-06 22:11 - 22:34: A+ - Childcare2025-05-06 21:31 - 22:11: Discretionary - Productive - Bike Brigade2025-05-06 20:17 - 21:31: A+ - Childcare2025-05-06 19:42 - 20:17: Personal - Routines2025-05-06 19:20 - 19:42: Unpaid work - Clean the kitchen2025-05-06 19:00 - 19:20: Personal - Routines2025-05-06 18:40 - 19:00: Unpaid work - Cook2025-05-06 18:00 - 18:40: Discretionary - Family2025-05-06 15:50 - 18:00: A+ - Childcare2025-05-06 14:44 - 15:50: A+ - Childcare2025-05-06 14:14 - 14:44: Business - Earn - Consulting - E1 - General2025-05-06 13:48 - 14:14: Discretionary - Productive - Gardening2025-05-06 13:43 - 13:48: A+ - Childcare2025-05-06 13:06 - 13:43: A+ - Childcare2025-05-06 12:09 - 13:06: Discretionary - Productive - Bike Brigade2025-05-06 11:55 - 12:09: Discretionary - Productive - Bike Brigade2025-05-06 11:25 - 11:55: A+ - Childcare2025-05-06 10:16 - 11:25: Discretionary - Productive - Bike Brigade2025-05-06 10:02 - 10:16: Discretionary - Productive - Bike Brigade2025-05-06 09:45 - 10:02: A+ - Childcare2025-05-06 09:31 - 09:45: Discretionary - Productive - Gardening2025-05-06 08:21 - 09:31: Discretionary - Productive - Music2025-05-06 06:55 - 08:21: A+ - Childcare2025-05-05 22:22 - 06:55: Sleep2025-05-07 22:35 - 06:31: Sleep2025-05-07 22:04 - 22:35: Personal - Routines2025-05-07 21:34 - 22:04: A+ - Childcare2025-05-07 21:19 - 21:34: A+ - Childcare2025-05-07 21:08 - 21:19: Personal - Routines2025-05-07 20:53 - 21:08: A+ - Childcare2025-05-07 20:06 - 20:53: Personal - Routines2025-05-07 19:28 - 20:06: Unpaid work - Clean the kitchen2025-05-07 19:03 - 19:28: Personal - Routines2025-05-07 18:03 - 19:03: Discretionary - Productive - Bike Brigade2025-05-07 13:22 - 18:03: A+ - Childcare2025-05-07 12:37 - 13:22: Business - Earn - Consulting - E1 - General2025-05-07 12:07 - 12:37: Discretionary - Productive - Bike Brigade2025-05-07 11:01 - 12:07: A+ - Childcare2025-05-07 10:25 - 11:01: Discretionary - Productive - Bike Brigade2025-05-07 10:16 - 10:25: Discretionary - Productive - Drawing2025-05-07 10:11 - 10:16: Discretionary - Productive - Gardening2025-05-07 09:53 - 10:11: Discretionary - Productive - Gardening2025-05-07 09:38 - 09:53: A+ - Childcare2025-05-07 09:31 - 09:38: Discretionary - Productive - Drawing2025-05-07 09:20 - 09:31: Unpaid work - Clean the kitchen2025-05-07 08:31 - 09:20: Discretionary - Productive - Music2025-05-07 08:01 - 08:31: A+ - Childcare2025-05-07 06:55 - 08:01: Personal - Routines2025-05-06 22:39 - 06:55: Sleep2025-05-08 22:11 - 06:51: Sleep2025-05-08 22:06 - 22:11: Personal - Routines2025-05-08 21:44 - 22:06: A+ - Childcare2025-05-08 21:37 - 21:44: Discretionary - Productive - Music2025-05-08 20:37 - 21:37: A+ - Childcare2025-05-08 19:55 - 20:37: Personal - Routines2025-05-08 19:40 - 19:55: Personal - Routines2025-05-08 19:18 - 19:40: Unpaid work - Clean the kitchen2025-05-08 14:53 - 19:18: A+ - Childcare2025-05-08 14:44 - 14:53: Unpaid work - Clean the kitchen2025-05-08 11:51 - 14:44: Discretionary - Productive - Bike Brigade2025-05-08 11:41 - 11:51: Unpaid work - Clean the kitchen2025-05-08 11:14 - 11:41: Personal - Routines2025-05-08 09:15 - 11:14: Discretionary - Productive - Bike Brigade2025-05-08 08:49 - 09:15: Discretionary - Productive - Gardening2025-05-08 08:21 - 08:49: Discretionary - Productive - Music2025-05-08 07:21 - 08:21: A+ - Childcare2025-05-08 06:31 - 07:21: Personal - Routines2025-05-07 22:35 - 06:31: Sleep2025-05-09 22:43 - 06:54: Sleep2025-05-09 22:34 - 22:43: Personal - Routines2025-05-09 21:04 - 22:34: A+ - Childcare2025-05-09 20:14 - 21:04: Personal - Routines2025-05-09 19:55 - 20:14: A+ - Childcare2025-05-09 19:02 - 19:55: Discretionary - Productive - Bike Brigade2025-05-09 18:43 - 19:02: Personal - Routines2025-05-09 18:28 - 18:43: Unpaid work - Clean the kitchen2025-05-09 17:37 - 18:28: Personal - Routines2025-05-09 17:26 - 17:37: Unpaid work - Laundry2025-05-09 14:38 - 17:26: A+ - Childcare2025-05-09 14:23 - 14:38: Discretionary - Productive - Coding2025-05-09 14:18 - 14:23: Discretionary - Productive - Writing2025-05-09 13:54 - 14:18: Personal - Routines2025-05-09 13:21 - 13:54: Business - Build - Paperwork2025-05-09 13:15 - 13:21: A+ - Childcare2025-05-09 12:25 - 13:15: Discretionary - Productive - Bike Brigade2025-05-09 12:06 - 12:25: Discretionary - Productive - Music2025-05-09 09:29 - 12:06: A+ - Childcare2025-05-09 09:21 - 09:29: Discretionary - Productive - Bike Brigade2025-05-09 08:51 - 09:21: Discretionary - Productive - Gardening2025-05-09 08:21 - 08:51: Personal - Routines2025-05-09 07:51 - 08:21: A+ - Childcare2025-05-09 06:51 - 07:51: Personal - Routines2025-05-08 22:11 - 06:51: Sleep2025-05-10 23:14 - 06:55: Sleep2025-05-10 23:08 - 23:14: Personal - Routines2025-05-10 23:00 - 23:08: Discretionary - Productive - Music2025-05-10 23:00 - 23:00: Personal - Routines2025-05-10 22:05 - 23:00: A+ - Childcare2025-05-10 22:00 - 22:05: Discretionary - Productive - Bike Brigade2025-05-10 21:28 - 22:00: Discretionary - Productive - Sewing2025-05-10 20:58 - 21:28: Personal - Routines2025-05-10 18:44 - 20:58: Discretionary - Productive - Sewing2025-05-10 18:29 - 18:44: Personal - Routines2025-05-10 18:12 - 18:29: Discretionary - Productive - Bike Brigade2025-05-10 15:50 - 18:12: A+ - Childcare2025-05-10 14:54 - 15:50: Discretionary - Productive - Bike Brigade2025-05-10 14:44 - 14:54: Personal - Routines2025-05-10 14:22 - 14:44: Unpaid work - Errands2025-05-10 09:59 - 14:22: A+ - Childcare2025-05-10 09:49 - 09:59: Discretionary - Productive - Gardening2025-05-10 09:29 - 09:49: Unpaid work - Clean the kitchen2025-05-10 09:19 - 09:29: Unpaid work - Clean the kitchen2025-05-10 08:26 - 09:19: A+ - Childcare2025-05-10 07:36 - 08:26: Unpaid work - Cook2025-05-10 06:54 - 07:36: Personal - Routines2025-05-09 22:43 - 06:54: Sleep2025-05-11 22:29 - 06:56: Sleep2025-05-11 22:24 - 22:29: Personal - Routines2025-05-11 21:21 - 22:24: A+ - Childcare2025-05-11 20:51 - 21:21: A+ - Childcare2025-05-11 20:36 - 20:51: A+ - Childcare2025-05-11 19:49 - 20:36: Personal - Routines2025-05-11 18:41 - 19:49: Unpaid work - Clean the kitchen2025-05-11 12:39 - 18:41: A+ - Childcare2025-05-11 12:16 - 12:39: Discretionary - Productive - Sewing2025-05-11 12:01 - 12:16: Unpaid work - Clean the kitchen2025-05-11 11:34 - 12:01: Personal - Routines2025-05-11 10:45 - 11:34: Discretionary - Productive - Sewing2025-05-11 10:14 - 10:45: A+ - Childcare2025-05-11 10:10 - 10:14: Discretionary - Productive - Gardening2025-05-11 09:53 - 10:10: Discretionary - Productive - Music2025-05-11 09:08 - 09:53: Discretionary - Productive - Gardening2025-05-11 07:02 - 09:08: A+ - Childcare2025-05-11 06:55 - 07:02: Personal - Routines2025-05-10 23:14 - 06:55: Sleep2025-05-12 22:26 - 06:53: Sleep2025-05-12 22:17 - 22:26: Personal - Routines2025-05-12 20:47 - 22:17: A+ - Childcare2025-05-12 20:29 - 20:47: Personal - Routines2025-05-12 19:37 - 20:29: A+ - Childcare2025-05-12 19:18 - 19:37: Discretionary - Productive - Writing2025-05-12 18:12 - 19:18: A+ - Childcare2025-05-12 12:52 - 18:12: Personal - Routines2025-05-12 12:42 - 12:52: Discretionary - Productive - Sewing2025-05-12 12:03 - 12:42: Discretionary - Productive - Emacs2025-05-12 11:34 - 12:03: Unpaid work - Clean the kitchen2025-05-12 11:15 - 11:34: A+ - Childcare2025-05-12 10:11 - 11:15: Discretionary - Productive - Emacs2025-05-12 09:51 - 10:11: Discretionary - Productive - Gardening2025-05-12 09:20 - 09:51: Personal - Routines2025-05-12 09:05 - 09:20: Discretionary - Productive - Gardening2025-05-12 08:28 - 09:05: Discretionary - Productive - Music2025-05-12 08:08 - 08:28: Personal - Routines2025-05-12 07:28 - 08:08: A+ - Childcare2025-05-12 06:56 - 07:28: Personal - Routines2025-05-11 22:29 - 06:56: Sleep2025-05-13 23:25 - 06:25: Sleep2025-05-13 23:11 - 23:25: Personal - Routines2025-05-13 19:25 - 23:11: A+ - Childcare2025-05-13 18:50 - 19:25: Personal - Routines2025-05-13 18:02 - 18:50: Unpaid work - Errands2025-05-13 17:39 - 18:02: Unpaid work - Clean the kitchen2025-05-13 17:13 - 17:39: Personal - Routines2025-05-13 14:56 - 17:13: A+ - Childcare2025-05-13 14:41 - 14:56: A+ - Childcare2025-05-13 14:11 - 14:41: Discretionary - Productive - Writing2025-05-13 13:40 - 14:11: Personal - Routines2025-05-13 13:02 - 13:40: Discretionary - Productive - Coding2025-05-13 12:56 - 13:02: Discretionary - Productive - Writing2025-05-13 12:06 - 12:56: Unpaid work - Clean the kitchen2025-05-13 11:05 - 12:06: A+ - Childcare2025-05-13 09:58 - 11:05: Discretionary - Productive - Gardening2025-05-13 09:38 - 09:58: A+ - Childcare2025-05-13 09:12 - 09:38: Discretionary - Productive - Music2025-05-13 08:15 - 09:12: Discretionary - Productive - Music2025-05-13 07:30 - 08:15: A+ - Childcare2025-05-13 06:53 - 07:30: Personal - Routines2025-05-12 22:26 - 06:53: Sleep2025-05-14 22:39 - 06:16: Sleep2025-05-14 20:49 - 22:39: A+ - Childcare2025-05-14 19:47 - 20:49: Personal - Routines2025-05-14 19:17 - 19:47: Unpaid work - Clean the kitchen2025-05-14 18:27 - 19:17: Personal - Routines2025-05-14 18:09 - 18:27: Discretionary - Productive - Gardening2025-05-14 18:07 - 18:09: Business - Build - Paperwork2025-05-14 18:07 - 18:07: Discretionary - Productive - Gardening2025-05-14 14:51 - 18:07: A+ - Childcare2025-05-14 13:21 - 14:51: Discretionary - Productive - Emacs2025-05-14 12:31 - 13:21: Unpaid work - Cook2025-05-14 12:19 - 12:31: Discretionary - Productive - Writing2025-05-14 12:09 - 12:19: Personal - Routines2025-05-14 11:00 - 12:09: A+ - Childcare2025-05-14 10:30 - 11:00: Discretionary - Productive - Writing2025-05-14 10:16 - 10:30: Discretionary - Productive - Bike Brigade2025-05-14 09:33 - 10:16: A+ - Childcare2025-05-14 09:18 - 09:33: Discretionary - Productive - Music2025-05-14 09:14 - 09:18: Unpaid work - Cook2025-05-14 08:49 - 09:14: Discretionary - Productive - Music2025-05-14 08:25 - 08:49: Unpaid work - Cook2025-05-14 07:25 - 08:25: A+ - Childcare2025-05-14 06:25 - 07:25: Personal - Routines2025-05-13 23:25 - 06:25: Sleep2025-05-15 22:56 - 06:55: Sleep2025-05-15 22:54 - 22:56: Personal - Routines2025-05-15 20:44 - 22:54: A+ - Childcare2025-05-15 20:14 - 20:44: Personal - Routines2025-05-15 20:10 - 20:14: Personal - Routines2025-05-15 19:28 - 20:10: Discretionary - Productive - Sewing2025-05-15 19:22 - 19:28: Unpaid work - Laundry2025-05-15 18:52 - 19:22: Personal - Routines2025-05-15 18:37 - 18:52: Unpaid work - Clean the kitchen2025-05-15 18:01 - 18:37: Unpaid work - Cook2025-05-15 14:53 - 18:01: A+ - Childcare2025-05-15 14:08 - 14:53: Unpaid work - Tidy up2025-05-15 13:38 - 14:08: Unpaid work - Errands2025-05-15 12:19 - 13:38: Discretionary - Productive - Sewing2025-05-15 12:03 - 12:19: Unpaid work - Clean the kitchen2025-05-15 11:42 - 12:03: A+ - Childcare2025-05-15 11:12 - 11:42: Personal - Routines2025-05-15 10:53 - 11:12: Unpaid work - Cook2025-05-15 09:53 - 10:53: Discretionary - Productive - Sewing2025-05-15 09:42 - 09:53: A+ - Childcare2025-05-15 09:06 - 09:42: Discretionary - Productive - Gardening2025-05-15 09:06 - 09:06: Business - Earn - Consulting - E1 - General2025-05-15 08:28 - 09:06: Discretionary - Productive - Music2025-05-15 08:16 - 08:28: Personal - Routines2025-05-15 07:16 - 08:16: A+ - Childcare2025-05-15 06:16 - 07:16: Personal - Routines2025-05-14 22:39 - 06:16: Sleep2025-05-16 23:36 - 06:56: Sleep2025-05-16 23:31 - 23:36: Business - Earn - Consulting - E1 - General2025-05-16 23:27 - 23:31: Personal - Routines2025-05-16 23:22 - 23:27: Business - Earn - Consulting - E1 - General2025-05-16 23:11 - 23:22: Discretionary - Productive - Drawing2025-05-16 23:01 - 23:11: Business - Earn - Consulting - E1 - General2025-05-16 22:44 - 23:01: Discretionary - Productive - Drawing2025-05-16 22:25 - 22:44: Business - Earn - Consulting - E1 - General2025-05-16 21:39 - 22:25: A+ - Childcare2025-05-16 21:37 - 21:39: Business - Earn - Consulting - E1 - General2025-05-16 21:32 - 21:37: A+ - Childcare2025-05-16 21:32 - 21:32: Business - Earn - Consulting - E1 - General2025-05-16 21:24 - 21:32: A+ - Childcare2025-05-16 20:56 - 21:24: Personal - Routines2025-05-16 20:36 - 20:56: Unpaid work - Clean the kitchen2025-05-16 19:39 - 20:36: Unpaid work - Cook2025-05-16 19:23 - 19:39: Unpaid work - Clean the kitchen2025-05-16 18:58 - 19:23: Personal - Routines2025-05-16 18:44 - 18:58: Unpaid work - Cook2025-05-16 18:39 - 18:44: Business - Earn - Consulting - E1 - General2025-05-16 18:38 - 18:39: Unpaid work - Cook2025-05-16 13:22 - 18:38: A+ - Childcare2025-05-16 13:07 - 13:22: Business - Earn - Consulting - E1 - General2025-05-16 13:07 - 13:07: A+ - Childcare2025-05-16 12:36 - 13:07: Business - Earn - Consulting - E1 - General2025-05-16 12:28 - 12:36: Personal - Routines2025-05-16 12:22 - 12:28: Business - Earn - Consulting - E1 - General2025-05-16 12:09 - 12:22: Discretionary - Productive - Gardening2025-05-16 12:02 - 12:09: Personal - Routines2025-05-16 11:05 - 12:02: A+ - Childcare2025-05-16 09:50 - 11:05: Business - Earn - Consulting - E1 - General2025-05-16 09:37 - 09:50: A+ - Childcare2025-05-16 09:03 - 09:37: Business - Earn - Consulting - E1 - General2025-05-16 08:23 - 09:03: Discretionary - Productive - Music2025-05-16 07:38 - 08:23: A+ - Childcare2025-05-16 06:55 - 07:38: Personal - Routines2025-05-15 22:56 - 06:55: Sleep2025-05-17 23:18 - 06:55: Sleep2025-05-17 23:01 - 23:18: Personal - Routines2025-05-17 21:43 - 23:01: A+ - Childcare2025-05-17 21:28 - 21:43: Unpaid work - Cook2025-05-17 20:52 - 21:28: Personal - Routines2025-05-17 19:26 - 20:52: A+ - Childcare2025-05-17 19:08 - 19:26: Unpaid work - Cook2025-05-17 18:48 - 19:08: Unpaid work - Clean the kitchen2025-05-17 18:08 - 18:48: Personal - Routines2025-05-17 15:51 - 18:08: Unpaid work - Cook2025-05-17 15:41 - 15:51: Personal - Routines2025-05-17 14:06 - 15:41: Personal - Walk - Other2025-05-17 13:34 - 14:06: A+ - Childcare2025-05-17 13:04 - 13:34: Discretionary - Productive - Music2025-05-17 09:14 - 13:04: A+ - Childcare2025-05-17 08:51 - 09:14: Business - Earn - Consulting - E1 - General2025-05-17 08:45 - 08:51: A+ - Childcare2025-05-17 08:25 - 08:45: Business - Earn - Consulting - E1 - General2025-05-17 07:58 - 08:25: A+ - Childcare2025-05-17 07:27 - 07:58: Business - Earn - Consulting - E1 - General2025-05-17 07:22 - 07:27: A+ - Childcare2025-05-17 07:14 - 07:22: Business - Earn - Consulting - E1 - General2025-05-17 07:11 - 07:14: Personal - Routines2025-05-17 07:06 - 07:11: Business - Earn - Consulting - E1 - General2025-05-17 07:02 - 07:06: Personal - Routines2025-05-17 06:56 - 07:02: Business - Earn - Consulting - E1 - General2025-05-16 23:36 - 06:56: Sleep2025-05-18 22:52 - 06:57: Sleep2025-05-18 21:59 - 22:52: A+ - Childcare2025-05-18 21:00 - 21:59: Personal - Routines2025-05-18 20:00 - 21:00: A+ - Childcare2025-05-18 17:33 - 20:00: Discretionary - Productive - Sewing2025-05-18 17:18 - 17:33: Unpaid work - Clean the kitchen2025-05-18 16:40 - 17:18: Personal - Routines2025-05-18 10:05 - 16:40: A+ - Childcare2025-05-18 09:45 - 10:05: Unpaid work - Cook2025-05-18 09:42 - 09:45: Personal - Routines2025-05-18 09:14 - 09:42: A+ - Childcare2025-05-18 08:48 - 09:14: Unpaid work - Clean the kitchen2025-05-18 08:38 - 08:48: Discretionary - Productive - Gardening2025-05-18 07:09 - 08:38: A+ - Childcare2025-05-18 06:55 - 07:09: Personal - Routines2025-05-17 23:18 - 06:55: Sleep2025-05-19 23:44 - 01:14: Discretionary - Play - Read - Fiction2025-05-19 23:29 - 23:44: Personal - Routines2025-05-19 23:22 - 23:29: Discretionary - Productive - Writing2025-05-19 23:05 - 23:22: Discretionary - Productive - Emacs2025-05-19 22:50 - 23:05: Unpaid work - Laundry2025-05-19 21:32 - 22:50: A+ - Childcare2025-05-19 20:02 - 21:32: Discretionary - Productive - Emacs2025-05-19 19:21 - 20:02: Personal - Routines2025-05-19 19:15 - 19:21: Personal - Routines2025-05-19 19:00 - 19:15: Discretionary - Productive - Emacs2025-05-19 18:25 - 19:00: Unpaid work - Clean the kitchen2025-05-19 18:11 - 18:25: Personal - Routines2025-05-19 17:38 - 18:11: Unpaid work - Cook2025-05-19 14:53 - 17:38: Discretionary - Productive - Gardening2025-05-19 13:29 - 14:53: A+ - Childcare2025-05-19 13:27 - 13:29: Discretionary - Productive - Music2025-05-19 10:18 - 13:27: A+ - Childcare2025-05-19 10:08 - 10:18: Personal - Routines2025-05-19 09:48 - 10:08: Unpaid work - Cook2025-05-19 09:21 - 09:48: A+ - Childcare2025-05-19 07:51 - 09:21: Discretionary - Play - Read - Fiction2025-05-19 07:27 - 07:51: A+ - Childcare2025-05-19 06:57 - 07:27: Personal - Routines2025-05-18 22:52 - 06:57: Sleep2025-05-20 22:26 - 06:55: Sleep2025-05-20 22:22 - 22:26: Personal - Routines2025-05-20 21:10 - 22:22: A+ - Childcare2025-05-20 20:10 - 21:10: A+ - Childcare2025-05-20 19:42 - 20:10: Personal - Routines2025-05-20 19:22 - 19:42: Unpaid work - Clean the kitchen2025-05-20 19:04 - 19:22: Personal - Routines2025-05-20 18:51 - 19:04: Personal - Routines2025-05-20 18:13 - 18:51: Unpaid work - Cook2025-05-20 13:27 - 18:13: A+ - Childcare2025-05-20 13:23 - 13:27: Discretionary - Productive - Coding2025-05-20 13:15 - 13:23: Discretionary - Productive - Emacs2025-05-20 12:53 - 13:15: Personal - Routines2025-05-20 12:07 - 12:53: Discretionary - Productive - Sewing2025-05-20 11:08 - 12:07: A+ - Childcare2025-05-20 10:53 - 11:08: Personal - Routines2025-05-20 10:45 - 10:53: Sleep2025-05-20 10:44 - 10:45: Personal - Routines2025-05-20 09:54 - 10:44: Sleep2025-05-20 09:37 - 09:54: A+ - Childcare2025-05-20 08:55 - 09:37: Discretionary - Productive - Music2025-05-20 08:32 - 08:55: Discretionary - Productive - Gardening2025-05-20 08:18 - 08:32: Unpaid work - Clean the kitchen2025-05-20 07:18 - 08:18: A+ - Childcare2025-05-20 07:00 - 07:18: Personal - Routines2025-05-20 01:14 - 07:00: Sleep2025-05-19 23:44 - 01:14: Discretionary - Play - Read - Fiction2025-05-21 22:33 - 06:44: Sleep2025-05-21 22:29 - 22:33: Personal - Routines2025-05-21 22:24 - 22:29: Sleep2025-05-21 22:07 - 22:24: Personal - Routines2025-05-21 19:07 - 22:07: A+ - Childcare2025-05-21 18:30 - 19:07: Personal - Routines2025-05-21 18:15 - 18:30: Unpaid work - Clean the kitchen2025-05-21 14:59 - 18:15: A+ - Childcare2025-05-21 14:39 - 14:59: Personal - Routines2025-05-21 12:41 - 14:39: Business - Earn - Consulting - E1 - General2025-05-21 12:32 - 12:41: Unpaid work - Clean the kitchen2025-05-21 12:02 - 12:32: Personal - Routines2025-05-21 11:02 - 12:02: A+ - Childcare2025-05-21 10:02 - 11:02: Discretionary - Productive - Bike Brigade2025-05-21 09:46 - 10:02: Discretionary - Productive - Music2025-05-21 09:24 - 09:46: A+ - Childcare2025-05-21 09:14 - 09:24: Discretionary - Productive - Gardening2025-05-21 08:26 - 09:14: Discretionary - Productive - Music2025-05-21 07:26 - 08:26: A+ - Childcare2025-05-21 06:55 - 07:26: Personal - Routines2025-05-20 22:26 - 06:55: Sleep2025-05-22 22:23 - 06:24: Sleep2025-05-22 22:01 - 22:23: Personal - Routines2025-05-22 19:08 - 22:01: A+ - Childcare2025-05-22 18:38 - 19:08: Personal - Routines2025-05-22 18:23 - 18:38: Unpaid work - Clean the kitchen2025-05-22 14:55 - 18:23: A+ - Childcare2025-05-22 13:52 - 14:55: Discretionary - Play - Relax2025-05-22 13:40 - 13:52: Personal - Routines2025-05-22 13:14 - 13:40: Unpaid work - Cook2025-05-22 11:58 - 13:14: Discretionary - Productive - Writing2025-05-22 11:28 - 11:58: A+ - Childcare2025-05-22 10:30 - 11:28: Discretionary - Productive - Writing2025-05-22 09:34 - 10:30: Business - Earn - Consulting - E1 - General2025-05-22 09:04 - 09:34: Personal - Routines2025-05-22 08:14 - 09:04: Discretionary - Productive - Music2025-05-22 07:14 - 08:14: A+ - Childcare2025-05-22 06:44 - 07:14: Personal - Routines2025-05-21 22:33 - 06:44: Sleep2025-05-23 22:44 - 06:00: Sleep2025-05-23 22:14 - 22:44: Personal - Routines2025-05-23 19:18 - 22:14: A+ - Childcare2025-05-23 18:48 - 19:18: Personal - Routines2025-05-23 18:25 - 18:48: Personal - Routines2025-05-23 17:25 - 18:25: Discretionary - Play - Stardew Valley2025-05-23 14:52 - 17:25: A+ - Childcare2025-05-23 13:36 - 14:52: Discretionary - Play - Stardew Valley2025-05-23 12:00 - 13:36: Discretionary - Productive - Writing2025-05-23 11:19 - 12:00: Personal - Routines2025-05-23 11:19 - 11:19: A+ - Childcare2025-05-23 11:14 - 11:19: Unpaid work - Clean the kitchen2025-05-23 11:04 - 11:14: Unpaid work - Clean the kitchen2025-05-23 10:58 - 11:04: Discretionary - Productive - Writing2025-05-23 10:22 - 10:58: Discretionary - Productive - Gardening2025-05-23 10:17 - 10:22: Unpaid work - Clean the kitchen2025-05-23 10:12 - 10:17: Discretionary - Productive - Writing2025-05-23 09:49 - 10:12: Discretionary - Productive - Writing2025-05-23 09:38 - 09:49: A+ - Childcare2025-05-23 08:54 - 09:38: Discretionary - Productive - Writing2025-05-23 08:54 - 08:54: Discretionary - Productive - Writing2025-05-23 08:51 - 08:54: Discretionary - Productive - Gardening2025-05-23 08:13 - 08:51: Discretionary - Productive - Music2025-05-23 07:13 - 08:13: A+ - Childcare2025-05-23 06:24 - 07:13: Personal - Routines2025-05-22 22:23 - 06:24: Sleep2025-05-24 23:16 - 00:16: Discretionary - Play - Stardew Valley2025-05-24 22:46 - 23:16: Personal - Routines2025-05-24 19:05 - 22:46: A+ - Childcare2025-05-24 18:35 - 19:05: Personal - Routines2025-05-24 15:58 - 18:35: A+ - Childcare2025-05-24 14:58 - 15:58: Personal - Routines2025-05-24 13:51 - 14:58: Personal - Walk - Other2025-05-24 13:07 - 13:51: A+ - Childcare2025-05-24 13:01 - 13:07: Business - Earn - Consulting - E1 - General2025-05-24 11:33 - 13:01: A+ - Childcare2025-05-24 11:07 - 11:33: Unpaid work - Laundry2025-05-24 09:49 - 11:07: A+ - Childcare2025-05-24 09:20 - 09:49: Discretionary - Productive - Music2025-05-24 07:00 - 09:20: A+ - Childcare2025-05-24 06:00 - 07:00: Personal - Routines2025-05-23 22:44 - 06:00: Sleep2025-05-25 22:49 - 00:25: Discretionary - Play - Stardew Valley2025-05-25 22:29 - 22:49: Personal - Routines2025-05-25 20:24 - 22:29: A+ - Childcare2025-05-25 20:04 - 20:24: Personal - Routines2025-05-25 19:50 - 20:04: Unpaid work - Clean the kitchen2025-05-25 18:50 - 19:50: A+ - Childcare2025-05-25 18:20 - 18:50: Unpaid work - Cook2025-05-25 16:09 - 18:20: A+ - Childcare2025-05-25 15:39 - 16:09: Unpaid work - Cook2025-05-25 09:56 - 15:39: A+ - Childcare2025-05-25 09:41 - 09:56: Discretionary - Productive - Music2025-05-25 09:26 - 09:41: Unpaid work - Clean the kitchen2025-05-25 07:41 - 09:26: A+ - Childcare2025-05-25 06:55 - 07:41: Personal - Routines2025-05-25 00:16 - 06:55: Sleep2025-05-24 23:16 - 00:16: Discretionary - Play - Stardew Valley2025-05-26 22:48 - 00:22: Discretionary - Play - Stardew Valley2025-05-26 22:43 - 22:48: Personal - Routines2025-05-26 19:42 - 22:43: A+ - Childcare2025-05-26 19:22 - 19:42: Discretionary - Productive - Music2025-05-26 18:52 - 19:22: A+ - Childcare2025-05-26 18:37 - 18:52: Personal - Routines2025-05-26 18:20 - 18:37: Unpaid work - Clean the kitchen2025-05-26 13:49 - 18:20: A+ - Childcare2025-05-26 13:19 - 13:49: Personal - Routines2025-05-26 12:06 - 13:19: Discretionary - Productive - Emacs2025-05-26 11:51 - 12:06: Unpaid work - Clean the kitchen2025-05-26 11:09 - 11:51: A+ - Childcare2025-05-26 10:59 - 11:09: Discretionary - Productive - Emacs2025-05-26 10:57 - 10:59: Discretionary - Productive - Music2025-05-26 10:32 - 10:57: Discretionary - Productive - Gardening2025-05-26 09:36 - 10:32: Unpaid work - Errands2025-05-26 09:26 - 09:36: Business - Earn - Consulting - E1 - General2025-05-26 08:37 - 09:26: Unpaid work - Errands2025-05-26 08:23 - 08:37: Personal - Routines2025-05-26 07:40 - 08:23: A+ - Childcare2025-05-26 07:30 - 07:40: Business - Earn - Consulting - E1 - General2025-05-26 06:55 - 07:30: Personal - Routines2025-05-26 00:25 - 06:55: Sleep2025-05-25 22:49 - 00:25: Discretionary - Play - Stardew Valley2025-05-27 22:35 - 00:24: Discretionary - Play - Stardew Valley2025-05-27 22:13 - 22:35: Personal - Routines2025-05-27 21:13 - 22:13: A+ - Childcare2025-05-27 19:58 - 21:13: Discretionary - Play - Stardew Valley2025-05-27 19:40 - 19:58: Discretionary - Productive - Music2025-05-27 19:04 - 19:40: Personal - Routines2025-05-27 18:10 - 19:04: A+ - Childcare2025-05-27 17:40 - 18:10: Personal - Routines2025-05-27 17:17 - 17:40: Unpaid work - Cook2025-05-27 14:50 - 17:17: A+ - Childcare2025-05-27 14:35 - 14:50: Personal - Routines2025-05-27 14:29 - 14:35: Unpaid work - Clean the kitchen2025-05-27 12:46 - 14:29: Unpaid work - Cook2025-05-27 12:41 - 12:46: Unpaid work - Clean the kitchen2025-05-27 12:15 - 12:41: Personal - Routines2025-05-27 06:56 - 12:15: A+ - Childcare2025-05-27 06:26 - 06:56: Personal - Routines2025-05-27 00:25 - 06:26: Sleep2025-05-27 00:22 - 00:25: Personal - Routines2025-05-26 22:48 - 00:22: Discretionary - Play - Stardew Valley2025-05-28 22:27 - 00:26: Discretionary - Play - Stardew Valley2025-05-28 22:25 - 22:27: Personal - Routines2025-05-28 19:34 - 22:25: A+ - Childcare2025-05-28 19:04 - 19:34: Personal - Routines2025-05-28 18:46 - 19:04: A+ - Childcare2025-05-28 18:33 - 18:46: Unpaid work - Clean the kitchen2025-05-28 14:36 - 18:33: A+ - Childcare2025-05-28 13:06 - 14:36: Discretionary - Productive - Emacs2025-05-28 12:36 - 13:06: Personal - Routines2025-05-28 12:04 - 12:36: Discretionary - Productive - Bike Brigade2025-05-28 11:00 - 12:04: A+ - Childcare2025-05-28 10:33 - 11:00: Personal - Routines2025-05-28 10:01 - 10:33: Discretionary - Productive - Music2025-05-28 09:41 - 10:01: A+ - Childcare2025-05-28 09:10 - 09:41: Unpaid work - Clean the kitchen2025-05-28 08:25 - 09:10: Discretionary - Productive - Gardening2025-05-28 08:20 - 08:25: Personal - Routines2025-05-28 07:00 - 08:20: A+ - Childcare2025-05-28 06:55 - 07:00: Personal - Routines2025-05-28 00:24 - 06:55: Sleep2025-05-27 22:35 - 00:24: Discretionary - Play - Stardew Valley2025-05-29 22:22 - 00:23: Discretionary - Play - Stardew Valley2025-05-29 21:17 - 22:22: A+ - Childcare2025-05-29 21:06 - 21:17: Unpaid work - Clean the kitchen2025-05-29 20:57 - 21:06: Personal - Routines2025-05-29 20:47 - 20:57: Discretionary - Play - Stardew Valley2025-05-29 20:38 - 20:47: Discretionary - Productive - Drawing2025-05-29 20:33 - 20:38: Discretionary - Productive - Drawing2025-05-29 20:29 - 20:33: Unpaid work - Cook2025-05-29 19:59 - 20:29: Personal - Routines2025-05-29 19:12 - 19:59: Unpaid work - Clean the kitchen2025-05-29 18:57 - 19:12: Personal - Routines2025-05-29 18:36 - 18:57: Unpaid work - Clean the kitchen2025-05-29 14:28 - 18:36: A+ - Childcare2025-05-29 13:28 - 14:28: Discretionary - Play - Stardew Valley2025-05-29 13:21 - 13:28: A+ - Childcare2025-05-29 13:19 - 13:21: Discretionary - Play - Stardew Valley2025-05-29 12:58 - 13:19: Unpaid work - Cook2025-05-29 12:28 - 12:58: Discretionary - Productive - Bike Brigade2025-05-29 11:32 - 12:28: Discretionary - Play - Stardew Valley2025-05-29 11:02 - 11:32: Personal - Routines2025-05-29 10:44 - 11:02: Unpaid work - Cook2025-05-29 10:40 - 10:44: Personal - Routines2025-05-29 09:44 - 10:40: Discretionary - Productive - Bike Brigade2025-05-29 09:18 - 09:44: Discretionary - Productive - Writing2025-05-29 08:45 - 09:18: Discretionary - Productive - Music2025-05-29 08:34 - 08:45: Discretionary - Productive - Nonfiction2025-05-29 08:22 - 08:34: Unpaid work - Clean the kitchen2025-05-29 08:17 - 08:22: Discretionary - Productive - Gardening2025-05-29 07:20 - 08:17: A+ - Childcare2025-05-29 06:57 - 07:20: Personal - Routines2025-05-29 00:26 - 06:57: Sleep2025-05-28 22:27 - 00:26: Discretionary - Play - Stardew Valley2025-05-30 22:16 - 00:27: Discretionary - Play - Stardew Valley2025-05-30 21:26 - 22:16: A+ - Childcare2025-05-30 20:35 - 21:26: Personal - Routines2025-05-30 19:42 - 20:35: A+ - Childcare2025-05-30 19:23 - 19:42: Business - Earn - Consulting - E1 - General2025-05-30 15:16 - 19:23: A+ - Childcare2025-05-30 15:06 - 15:16: Personal - Routines2025-05-30 14:51 - 15:06: Discretionary - Productive - Sewing2025-05-30 13:49 - 14:51: Business - Earn - Consulting - E1 - General2025-05-30 13:34 - 13:49: Discretionary - Productive - Sewing2025-05-30 13:21 - 13:34: A+ - Childcare2025-05-30 13:16 - 13:21: Business - Earn - Consulting - E1 - General2025-05-30 12:03 - 13:16: Discretionary - Productive - Sewing2025-05-30 11:02 - 12:03: A+ - Childcare2025-05-30 09:49 - 11:02: Discretionary - Productive - Sewing2025-05-30 09:34 - 09:49: A+ - Childcare2025-05-30 09:08 - 09:34: Business - Earn - Consulting - E1 - General2025-05-30 08:39 - 09:08: Discretionary - Productive - Music2025-05-30 08:21 - 08:39: Discretionary - Productive - Gardening2025-05-30 07:06 - 08:21: A+ - Childcare2025-05-30 06:55 - 07:06: Personal - Routines2025-05-30 00:23 - 06:55: Sleep2025-05-29 22:22 - 00:23: Discretionary - Play - Stardew Valley2025-05-31 23:58 - 00:36: Discretionary - Play - Stardew Valley2025-05-31 22:40 - 23:58: Discretionary - Productive - Writing2025-05-31 22:22 - 22:40: Personal - Routines2025-05-31 21:15 - 22:22: A+ - Childcare2025-05-31 20:55 - 21:15: Personal - Routines2025-05-31 19:21 - 20:55: A+ - Childcare2025-05-31 19:16 - 19:21: Personal - Routines2025-05-31 18:56 - 19:16: Personal - Routines2025-05-31 18:29 - 18:56: Discretionary - Productive - Writing2025-05-31 18:16 - 18:29: Unpaid work - Cook2025-05-31 18:04 - 18:16: Discretionary - Productive - Writing2025-05-31 16:59 - 18:04: Unpaid work - Cook2025-05-31 16:37 - 16:59: Discretionary - Productive - Bike Brigade2025-05-31 15:36 - 16:37: A+ - Childcare2025-05-31 14:50 - 15:36: Discretionary - Productive - Bike Brigade2025-05-31 14:01 - 14:50: Unpaid work - Errands2025-05-31 13:01 - 14:01: A+ - Childcare2025-05-31 11:02 - 13:01: Discretionary - Productive - Sewing2025-05-31 10:47 - 11:02: Unpaid work - Tidy up2025-05-31 10:18 - 10:47: Unpaid work - Clean the kitchen2025-05-31 08:29 - 10:18: A+ - Childcare2025-05-31 08:24 - 08:29: Discretionary - Productive - Music2025-05-31 07:54 - 08:24: A+ - Childcare2025-05-31 06:59 - 07:54: Personal - Routines2025-05-31 00:32 - 06:59: Sleep2025-05-31 00:27 - 00:32: Personal - Routines2025-05-30 22:16 - 00:27: Discretionary - Play - Stardew Valley

I've been staying up playing Stardew Valley. =)

Related: May review in 2023, 2021, 2020, 2017, 2016, 2015, 2014, 2013, 2012, 2010

View org source for this post