Comfort Attendance now supports a Central Web App alongside the User Web App, making setup faster and dramatically reducing deployment effort for casual users.
Thursday, December 18, 2025
Sunday, December 14, 2025
One Link Sign-up: New Central Web App
Wednesday, November 12, 2025
One Link Sign-up: Dashboard and Integration with Google Calendar
To demonstrate the extensibility of One Link Sign-up on Google Sheets, a new template has been created featuring a dashboard and Google Calendar integration. Additional integrations can be implemented as your requirements evolve.
A. Dashboard
It comes with a ready-to-use dashboard that you can expand at any time as your needs grow.
B. Integration with Google calendar
Ready-to-use calendar scripts are built directly into your sheet, giving you a solid foundation you can easily extend — no extra permissions needed during the add-on installation!
What’s included in the scripts:
-
onSignUp (e): Automatically updates the online sign-ups to a calendar which you can share with others.
-
Sync with calendar through the “1L Sign-up” custom menu: you can tabulate and filter sign-ups and sync to a shared Google calendar.
Why it’s great on the injected scripts to your sheet:
-
Transparent — You sees in the scripts exactly how your calendar permission below will be used.
Flexible — You can customize or extend the scripts.
-
Powerful — You can add features like email alerts or custom menu actions further.
Saturday, November 1, 2025
To-do List Plugin: Template with Smart Refresh and a Calendar View
A new Smart To-Do List Plugin template is now available — it includes a user controlled smart refresh drop-down and a calendar view to help you control refresh and visualize your tasks!

๐ Get the template here: ๐ https://ko-fi.com/s/5d3873c5de
Your purchase directly supports my work and helps me keep developing more features for you.
Tuesday, October 21, 2025
Seeking Your Support for SPCsoft Galaxy — Together We Can Serve More!
Starting in August 2022, I finally have had some personal free time to follow my heart. I use my technical knowledge to create and publish simple Google Sheets add-ons that support the people and communities around me.
I never imagined they would grow this much, but over time they’ve reached far more people and communities than I expected. I’m deeply grateful to everyone who has supported my vision. Your feedback and encouragement continue to inspire me to keep improving and creating.
Among them, the To-do List Plugin, One Link Sign-up and Comfort Attendance have become the most popular, with around 7K+, 2K+ and 1K+ downloads so far. It’s been amazing to see how something that started as a personal vision could help so many others. Thank you to users who spare the time that they have saved from using my add-ons to give back their encouraging reviews on the Googe Marketplace.
And most importantly, thank you to my nine supporters on Ko-fi who helped me reach 1% of my goal to keep Serving People and Communities moving forward. Every bit of financial support means a lot and keeps me motivated to continue building and sharing more tools that make everyday tasks a little easier.
I’ll keep learning, improving, and sharing what I build — and I hope these small projects continue to grow and help more people and communities along the way.
Saturday, October 18, 2025
To-do List Plugin: New Release Notice on Smart Refresh and Flexible Location
The To-do List plugin uses the onEdit trigger to refresh your to-do list. This trigger takes a few seconds to reach Google’s server before the refresh starts. During this short delay, you can continue making multiple updates to your tasks. However, you’ll need to wait for the refresh to complete before making further edits. It is not user friendly for bulk updates, you have to unplug and plug in which is also not convenient.
Because data transmission depends on Google Sheets’ network speed, there is currently no way to improve this delay. Therefore, a new Smart Refresh mode has been developed and is undergoing a pilot testing.
✨ What’s New
A. Dropdown to Control Refresh
A new refresh control dropdown has been added at the top of the task header which works for desktop browser and mobile app.
2. ☰ Auto refresh
Automatically refreshes whenever an edit is received from the server.
When an edit occurs, the task header will show:
-
Desktop: Refresh when idle for 20s. Select this cell to refresh now.
-
Mobile: Refresh when idle for 20s. Use the above dropdown to refresh now.
After 20 seconds of inactivity (idle):
-
Desktop: Idle detected – refresh in 10s! Select this cell to refresh or any cell to skip.
-
Mobile: Idle detected – refresh in 10s!
After 10 more seconds (30s total idle), the server will automatically start refreshing.
- Desktop/Mobile: Refreshing ... update now not captured.
4. ☰ Manual refresh
The server will not refresh automatically — only when ๐ฌ Refresh now is selected.
B. Flexible to-do list location
You can now put your to-do list anywhere with other information that you are working on.
Tuesday, September 30, 2025
Pivot Expense Split: Posting Offline Transactions at Reconnection
Google Sheets mobile + offline mode + installable onEdit triggers is a known and tricky behavior. Here’s a breakdown of why offline to online sometimes get two triggers and sometimes none:
๐ 1. Why it happens
a. Offline edits don’t fire any triggers immediately
When offline, the app records the edits locally; installable triggers (like onEdit(e)) only run on the server.
So while offline → no trigger.
b. When reconnecting
When the mobile app resyncs:
- Sometimes Google merges the edits into one sync event → fires one onEdit trigger per edited cell.
- Sometimes it batches multiple cell changes → causing multiple triggers (e.g., one per cell).
- Occasionally, the sync process is treated as a programmatic update (not user edit) → no onEdit at all.
This depends on:
- How long the sheet stayed offline.
- Whether the same range got multiple changes.
- Connection stability and Google server sync timing.
๐งช 2. Observed patterns (tested behavior)
Scenario Offline duration Action Result
Short offline (few seconds) Small edit (1 cell) Usually 1 onEdit
Long offline (many edits) Multiple cells Often no trigger or 2+ triggers
Reopen sheet after being Edits in different areas Sometimes fires all at once or none
๐ 3. When sync happens automatically
Offline edits made on the mobile app are synced when all of the following conditions are true:
1. Internet connection restored
- The device must be connected to the internet (Wi-Fi or mobile data).
- Sync typically starts within a few seconds to a few minutes after the connection stabilizes.
- The app must be open on the sheet, or at least allowed to run in the background.
- If the app was closed or background activity is restricted (by battery saver, etc.), sync waits until the app is reopened.
- The account used for editing must still be logged in and authenticated.
- If sign-in expired (common after long offline periods), sync waits until you reauthenticate.
- If someone else has also edited the same range while you were offline, Sheets may delay syncing until it resolves the conflict (which can cause the “Version conflict” prompt).
⚙️5. Pivot Expense Split Enhancement
Use an onChange(e) installable trigger which fires when the structure or content of the sheet changes, even after sync. It will trigger once per batch sync instead of per cell. The following is scripted to post offline input at reconnection.
function onChange(e) {
if (e.changeType === 'EDIT') {
// handle sync edits here
}
}
⚠️ It doesn’t give e.range like onEdit — only that something changed.

