Loading article…
Loading article…
Last updated on Aug 29, 2026
Use Calendar Billing to align Subscription renewals to a specific day of the month, so billing dates stay predictable for your Customers and easier for your accounting team to manage. When enabled, all renewals follow a consistent schedule, reducing date drift and streamlining invoicing.
Without Calendar Billing, signups at the end of the month shift earlier over time. For example, a signup on October 31 renews on November 30, then December 30, January 30, February 28, March 28, and continues on the 28th thereafter.
Advanced Billing supports Calendar Billing for Subscriptions when the following criteria are met:
next_billing_at when creating the Subscription. This field is typically used for importing existing Subscriptions.You can turn on Calendar Billing in one of three ways:
snap_day attribute when creating the Subscription.
A valid Billing Day (snap_day in the API) is any number from 1 to 28, or the last day of the month (end in the API). By default, the Subscription renews at 12:00 PM in your site's time zone on that day.
You can optionally set the default renewal time to 5:00 PM instead of 12:00 PM. See Configure Calendar Billing Settings for how.
When you turn on Set Calendar Billing during Subscription creation, the Term end date automatically recalculates to land on your chosen Billing Day, so the Subscription's last billing period doesn't end up split across an unrelated date.
Advanced Billing calculates the new end date by adding the Product's term length to the Term Start date, then rolling that date forward to the next occurrence of the Billing Day. For example, a Subscription with a Term Start of January 15, a 6-month term, and a Billing Day of the 1st ends on August 1 instead of July 15.
This recalculation runs whenever you turn on Set Calendar Billing, change the Billing Day, or change the Term Start or Product on the Subscription creation form.
Subscriptions created with Calendar Billing enabled can be charged in one of three ways at signup:
Prorated: The prorated Plan price is charged immediately.
This is the universal default, but you can set a site default in Configure Calendar Billing Settings.
Immediate: The full Plan price is charged immediately.
Delayed: The full Plan price is charged with the first scheduled renewal.
For prorated charges, the amount depends on the signup date and time relative to the snap_day. Signups within 24 hours before the site's renewal time (12:00 PM or 5:00 PM) on the snap_day are treated as full period signups. All others are charged a prorated amount until the next snap_day.
snap_day | Signup Date | Amount Charged at Signup | current_period_ends_at |
|---|---|---|---|
| 15 | June 2, 3:00 PM | Prorated amount from 6/2 to 6/15 | June 15, 12:00 PM |
| 15 | June 14, 3:00 PM | Full amount from 6/14 to 7/15 | July 15, 12:00 PM |
| 15 | June 15, 12:01 PM | Prorated amount from 6/15 to 7/15 | July 15, 12:00 PM |
| end | June 2, 3:00 PM | Prorated amount from 6/2 to 6/30 | June 30, 12:00 PM |
| end | June 29, 3:00 PM | Full amount from 6/29 to 7/31 | July 31, 12:00 PM |
| end | June 30, 12:01 PM | Prorated amount from 6/30 to 7/31 | July 31, 12:00 PM |
The full amount is charged at signup regardless of the signup date. Signups within 24 hours before renewal time are treated as full period signups.
snap_day | Signup Date | Amount Charged at Signup | current_period_ends_at |
|---|---|---|---|
| 15 | June 2, 3:00 PM | Full amount | June 15, 12:00 PM |
| 15 | June 14, 3:00 PM | Full amount | July 15, 12:00 PM |
| 15 | June 15, 12:01 PM | Full amount | July 15, 12:00 PM |
| end | June 2, 3:00 PM | Full amount | June 30, 12:00 PM |
| end | June 29, 3:00 PM | Full amount | July 31, 12:00 PM |
| end | June 30, 12:01 PM | Full amount | July 31, 12:00 PM |
No charge is applied at signup. The first full charge occurs on the first renewal date as determined by snap_day.
snap_day | Signup Date | Amount Charged at Signup | current_period_ends_at |
|---|---|---|---|
| 15 | June 2, 3:00 PM | Nothing | June 15, 12:00 PM |
| 15 | June 14, 3:00 PM | Nothing | June 15, 12:00 PM |
| 15 | June 15, 12:01 PM | Nothing | July 15, 12:00 PM |
| end | June 2, 3:00 PM | Nothing | June 30, 12:00 PM |
| end | June 29, 3:00 PM | Nothing | June 30, 12:00 PM |
| end | June 30, 12:01 PM | Nothing | July 31, 12:00 PM |
If your time zone observes Daylight Saving Time (DST), renewal times may appear to shift by one hour twice a year as clocks "spring forward" and "fall back." Advanced Billing stores dates in UTC, which doesn't observe DST, so renewals occur at the same UTC time year-round even though the local time appears to change.
To maintain a consistent local renewal time, manually adjust the next billing date and time for each Subscription twice a year when DST changes, including the correct offset at the next renewal.
WARNING: Avoid scheduling billing close to midnight on the first or last day of the month. DST changes can shift the renewal across days, causing duplicate or skipped billing events.
If a Customer signs up via a Public Signup Page with Calendar Billing enabled, you can change the snap_day via the Admin UI. See Subscription Summary Overview for the steps.
Modifying the next billing date may result in a prorated charge if it affects the Subscription's alignment to its configured snap_day and snap time, specifically:
snap_day must match both current_period_ends_at and next_assessment_at.snap_day.Changing a Subscription's Plan while on Calendar Billing has a few restrictions:
Calendar Billing's first-charge options also affect delayed-signup Subscriptions; see Understand Awaiting Signup for how they interact with Awaiting Signup.
Still need help?
Reach out and our support team will take it from here.