Configuration
Environment variables, config files, feature flags
This page explains how 1cal is configured behind the scenes so you understand what makes the app work — from how it connects to your Google account to how it automatically keeps your events up to date. You do not need to change any of these settings yourself; they are managed by the 1cal team. However, understanding them can help you troubleshoot issues, know when your events sync, and feel confident about what data 1cal uses.
Before reading this page, it helps to have:
- A 1cal account (sign in at 1cal.app using your Google account)
- At least one sports platform connected (such as GameChanger, TeamSnap, or SportsEngine)
- A basic familiarity with how calendar apps work — no coding knowledge required
1cal is a hosted web application, so there is nothing for you to install. You access it directly in your browser or by adding it to your home screen as a Progressive Web App (PWA).
To add 1cal to your home screen (optional):
- Open 1cal in your mobile browser.
- Tap your browser's Share or Menu button.
- Select Add to Home Screen.
- Tap Add to confirm.
Once added, 1cal launches in full-screen mode just like a native app, without browser navigation bars. The app icon and name (1Cal) will appear on your home screen.
1cal's behavior is controlled by a set of environment variables and scheduled jobs configured by the 1cal team. Here is what each one does and how it affects your experience:
Google Sign-In
| Setting | What it does |
|---|---|
GOOGLE_CLIENT_ID | Identifies 1cal to Google so you can sign in with your Google account |
GOOGLE_CLIENT_SECRET | A private key that securely verifies 1cal's identity with Google during sign-in |
These two settings are what make the Sign in with Google button work. Without them, you would not be able to log in.
Database
| Setting | What it does |
|---|---|
DATABASE_URL | The address of the database where your connected platforms, events, and RSVP statuses are stored |
This is where 1cal remembers everything you've set up — your children's profiles, the platforms you've linked, and your event history.
Automatic Event Sync
1cal automatically refreshes your events from all connected platforms once per day:
| Setting | Value | What it means for you |
|---|---|---|
| Sync schedule | 0 6 * * * | Your events are refreshed every day at 6:00 AM UTC |
| Sync endpoint | /api/cron/sync-feeds | The internal process that fetches updated events from each platform |
This means your calendar stays current without you doing anything. If an event is updated on GameChanger or TeamSnap, it will reflect in 1cal by the next morning at the latest.
Profile Images
1cal is configured to display profile photos hosted by Google (lh3.googleusercontent.com). This is why your Google profile picture appears automatically when you sign in — no upload required.
Most configuration in 1cal happens automatically once you sign in and connect a platform. Here is what the configuration means for your day-to-day use:
Signing in When you tap Sign in with Google, 1cal uses your Google credentials to create or retrieve your account. Your name, email, and profile photo are pulled in automatically.
Connecting a platform When you add a platform (such as GameChanger or SportsEngine), 1cal stores the connection securely in its database. Each platform has its own color, abbreviation, and RSVP options:
| Platform | Color | RSVP options |
|---|---|---|
| GameChanger | Blue | Available / Unavailable / Maybe |
| TeamSnap | Green | Available / Unavailable / Unknown |
| SportsEngine | Rust | Attending / Not Attending / Tentative |
| Other | Purple | Going / Not going / Maybe |
Event syncing After connecting a platform, 1cal fetches your events and continues to sync them automatically every day at 6:00 AM UTC. You do not need to refresh or reconnect anything.
RSVP updates When you mark your availability in 1cal, your response is written back to the original platform automatically. For platforms listed as "Other," you will be directed to visit the platform's website directly to update your availability.
The following examples show what you can expect from 1cal's configuration in real scenarios.
Example 1: Signing in for the first time
You visit 1cal and tap Sign in with Google. Behind the scenes, 1cal uses GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET to verify your identity with Google. Once confirmed, your account is created in the database and you land on your home screen.
Expected result: Your Google profile photo and name appear in the app immediately.
Example 2: A new event appears overnight
Your child's coach adds a practice to GameChanger on Monday evening. The next morning at 6:00 AM UTC, 1cal's automatic sync runs and fetches the updated schedule.
Expected result: By Tuesday morning, the new practice appears in your 1cal event feed — no action needed on your part.
Example 3: Marking availability on TeamSnap
You open an event in 1cal that came from TeamSnap and tap Available.
Expected result: The button highlights in green and your response is synced back to TeamSnap automatically. The RSVP label reads "Available" to match TeamSnap's own terminology.
Example 4: Viewing a platform you connected as "Other"
You connected a local league platform that isn't GameChanger, TeamSnap, or SportsEngine. It appears in 1cal with a purple color and the RSVP options Going / Not going / Maybe.
Expected result: When you tap an RSVP option, 1cal shows a prompt to visit the platform's website directly, since automatic sync-back isn't available for custom platforms.
Issue: The Sign in with Google button doesn't work
- Symptom: Clicking the button does nothing, or you see an authentication error.
- Likely cause: A temporary issue with 1cal's connection to Google's sign-in service.
- Fix: Wait a few minutes and try again. If the problem persists, try a different browser or clear your browser's cookies and cache, then retry.
Issue: My events haven't updated after a change on my platform
- Symptom: An event that was changed or added on GameChanger, TeamSnap, or SportsEngine does not appear in 1cal yet.
- Likely cause: The automatic sync runs once per day at 6:00 AM UTC, so changes made after that time won't appear until the next sync.
- Fix: Wait until after 6:00 AM UTC the following day. If the event still doesn't appear after 24 hours, try disconnecting and reconnecting the platform.
Issue: My profile photo doesn't appear in the app
- Symptom: Your avatar shows initials or a placeholder instead of your Google photo.
- Likely cause: Your browser may be blocking images from Google's image hosting service (
lh3.googleusercontent.com). - Fix: Check your browser's content-blocking or privacy extension settings and allow images from
lh3.googleusercontent.com. Then reload the page.
Issue: My RSVP doesn't seem to sync back to the platform
- Symptom: You marked yourself as Available in 1cal, but the original platform (e.g., TeamSnap) still shows no response.
- Likely cause: RSVP sync requires a valid connection to the platform. If your platform credentials have changed or expired, the sync may fail.
- Fix: Go to your platform settings in 1cal, remove the platform, and re-add it with your current login details. For platforms listed as "Other," RSVP sync is not automatic — you must visit the platform directly.
Issue: 1cal won't add to my home screen
- Symptom: The "Add to Home Screen" option doesn't appear in your browser menu.
- Likely cause: Some browsers (particularly non-default browsers on iOS) have limited PWA support.
- Fix: On iPhone, use Safari specifically — it has the best support for adding web apps to the home screen. On Android, use Chrome.