Class Schedule Card
Class Schedule Card publishes a studio's whole week — six days, eighteen classes, every start time and every coach — as a 33-second, 1080x1920 (9:16) card designed for a Sunday-night cron job rather than a designer. Five scenes run a graphite / chalk / chalk / graphite / orange rhythm: a photo-led title frame, two typographically identical timetable pages (Mon-Tue-Wed, then Thu-Fri-Sat) that hard-cut like a page turn, a Sunday-and-booking frame, and a full-accent sign-off. Seventy fields swap per render: the identity block (studio_name, location_line, week_label, class_count, studio_photo), six day headers (mon_label through sat_label), the timetable itself as 18 rows x 3 fields (<day>_<slot>_time / _class / _coach), and the closing copy (sunday_line, booking_line, booking_note, coaches_line, handle_line) — which is exactly the shape of a SELECT against Mindbody, Glofox or TeamUp, so a three-site studio group can render it 156 times a year without touching the design.
- Aspect ratio
- 9:16 · Vertical
- Duration
- ~33s
- Category
- Social Media
Try it with your own copy
Edit a field and the frame re-renders in your browser. No account, no credits - previews are free because they cost a browser paint, not a render.
What you can customize
This template exposes 70 dynamic fields you can swap per video - edit them in the editor or pass them to the API to batch-render variations at scale. The monospace name is the exact key to send in replacements.
Studio Photo
urlstudio_photohttps://images.unsplash.com/photo-1599901860904-17e6ed7083a0?fm=jpg&q=85&w=1600
Week Label
textweek_label12 — 18 MAY
~18 characters max · 1 line
Studio Name
textstudio_nameNorthgate Studio
~29 characters max · 1 line
Location Line
textlocation_lineStudio 2 · 41 King Street · N7
~75 characters max · 1 line
Class Count
textclass_count18
~3 characters max · 1 line
Mon Label
textmon_labelMON 12
~23 characters max · 1 line
Mon 1 Time
textmon_1_time06:30
~11 characters max · 1 line
Mon 1 Class
textmon_1_classSunrise Flow
~28 characters max · 1 line
Mon 1 Coach
textmon_1_coach60 MIN · MAYA R.
~134 characters max · 2 lines
Mon 2 Time
textmon_2_time12:15
~11 characters max · 1 line
Mon 2 Class
textmon_2_classExpress Core
~28 characters max · 1 line
Mon 2 Coach
textmon_2_coach30 MIN · SAM W.
~134 characters max · 2 lines
Mon 3 Time
textmon_3_time18:30
~11 characters max · 1 line
Mon 3 Class
textmon_3_classVinyasa Strong
~28 characters max · 1 line
Mon 3 Coach
textmon_3_coach75 MIN · THEO L.
~134 characters max · 2 lines
Tue Label
texttue_labelTUE 13
~23 characters max · 1 line
Tue 1 Time
texttue_1_time07:00
~11 characters max · 1 line
Tue 1 Class
texttue_1_classPower Reformer
~28 characters max · 1 line
Tue 1 Coach
texttue_1_coach50 MIN · ANA K.
~134 characters max · 2 lines
Tue 2 Time
texttue_2_time17:45
~11 characters max · 1 line
Tue 2 Class
texttue_2_classBarre Sculpt
~28 characters max · 1 line
Tue 2 Coach
texttue_2_coach45 MIN · PRIYA D.
~134 characters max · 2 lines
Tue 3 Time
texttue_3_time19:30
~11 characters max · 1 line
Tue 3 Class
texttue_3_classYin & Breathe
~28 characters max · 1 line
Tue 3 Coach
texttue_3_coach60 MIN · MAYA R.
~134 characters max · 2 lines
Wed Label
textwed_labelWED 14
~23 characters max · 1 line
Wed 1 Time
textwed_1_time06:30
~11 characters max · 1 line
Wed 1 Class
textwed_1_classStrength Circuit
~28 characters max · 1 line
Wed 1 Coach
textwed_1_coach45 MIN · SAM W.
~134 characters max · 2 lines
Wed 2 Time
textwed_2_time12:15
~11 characters max · 1 line
Wed 2 Class
textwed_2_classLunch Mobility
~28 characters max · 1 line
Wed 2 Coach
textwed_2_coach30 MIN · ANA K.
~134 characters max · 2 lines
Wed 3 Time
textwed_3_time18:30
~11 characters max · 1 line
Wed 3 Class
textwed_3_classVinyasa Flow
~28 characters max · 1 line
Wed 3 Coach
textwed_3_coach60 MIN · THEO L.
~134 characters max · 2 lines
Thu Label
textthu_labelTHU 15
~23 characters max · 1 line
Thu 1 Time
textthu_1_time07:00
~11 characters max · 1 line
Thu 1 Class
textthu_1_classReformer Basics
~28 characters max · 1 line
Thu 1 Coach
textthu_1_coach50 MIN · PRIYA D.
~134 characters max · 2 lines
Thu 2 Time
textthu_2_time17:45
~11 characters max · 1 line
Thu 2 Class
textthu_2_classHIIT 45
~28 characters max · 1 line
Thu 2 Coach
textthu_2_coach45 MIN · SAM W.
~134 characters max · 2 lines
Thu 3 Time
textthu_3_time19:30
~11 characters max · 1 line
Thu 3 Class
textthu_3_classSlow Flow
~28 characters max · 1 line
Thu 3 Coach
textthu_3_coach60 MIN · MAYA R.
~134 characters max · 2 lines
Fri Label
textfri_labelFRI 16
~23 characters max · 1 line
Fri 1 Time
textfri_1_time06:30
~11 characters max · 1 line
Fri 1 Class
textfri_1_classSunrise Flow
~28 characters max · 1 line
Fri 1 Coach
textfri_1_coach60 MIN · THEO L.
~134 characters max · 2 lines
Fri 2 Time
textfri_2_time12:15
~11 characters max · 1 line
Fri 2 Class
textfri_2_classExpress Core
~28 characters max · 1 line
Fri 2 Coach
textfri_2_coach30 MIN · ANA K.
~134 characters max · 2 lines
Fri 3 Time
textfri_3_time18:00
~11 characters max · 1 line
Fri 3 Class
textfri_3_classFriday Unwind
~28 characters max · 1 line
Fri 3 Coach
textfri_3_coach75 MIN · MAYA R.
~134 characters max · 2 lines
Sat Label
textsat_labelSAT 17
~23 characters max · 1 line
Sat 1 Time
textsat_1_time08:00
~11 characters max · 1 line
Sat 1 Class
textsat_1_classWeekend Strength
~28 characters max · 1 line
Sat 1 Coach
textsat_1_coach60 MIN · SAM W.
~134 characters max · 2 lines
Sat 2 Time
textsat_2_time09:30
~11 characters max · 1 line
Sat 2 Class
textsat_2_classReformer Flow
~28 characters max · 1 line
Sat 2 Coach
textsat_2_coach50 MIN · PRIYA D.
~134 characters max · 2 lines
Sat 3 Time
textsat_3_time11:00
~11 characters max · 1 line
Sat 3 Class
textsat_3_classFamily Yoga
~28 characters max · 1 line
Sat 3 Coach
textsat_3_coach45 MIN · THEO L.
~134 characters max · 2 lines
Sunday Line
textsunday_lineOpen gym 08:00 — 14:00. Classes resume Monday.
~80 characters max · 3 lines
Booking Line
textbooking_linenorthgate.fit/book
~26 characters max · 1 line
Booking Note
textbooking_noteBookings open Sunday at 20:00. Cancel four hours ahead to free your spot.
~107 characters max · 2 lines
Coaches Line
textcoaches_lineMaya R · Theo L · Ana K · Sam W · Priya D · Jo N
~120 characters max · 3 lines
Handle Line
texthandle_line@northgatestudio · northgate.fit
~66 characters max · 1 line
Render it from the API
Copy either call below. Both already carry this template's ID and its real variable keys - swap the values for your own.
1. Preview it — free
Same body as a render. Costs no credits, creates no job. Returns a public URL that plays the video in a browser, plus a list of problems with your payload — a mistyped key is otherwise ignored in silence.
curl -X POST https://renderly.video/api/v1/previews \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "class-schedule-card",
"replacements": {
"studio_photo": "https://images.unsplash.com/photo-1599901860904-17e6ed7083a0?fm=jpg&q=85&w=1600",
"week_label": "12 — 18 MAY",
"studio_name": "Northgate Studio",
"location_line": "Studio 2 · 41 King Street · N7",
"class_count": "18",
"mon_label": "MON 12"
}
}'2. Render it
Change one word in the URL. Keep templateId — it is what links your call to this template, so later improvements reach you automatically.
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "class-schedule-card",
"replacements": {
"studio_photo": "https://images.unsplash.com/photo-1599901860904-17e6ed7083a0?fm=jpg&q=85&w=1600",
"week_label": "12 — 18 MAY",
"studio_name": "Northgate Studio",
"location_line": "Studio 2 · 41 King Street · N7",
"class_count": "18",
"mon_label": "MON 12"
}
}'The body above shows 6 of 70 variables. Send any subset — every key you leave out renders its authored default. Read the full contract, with character limits, from GET /api/v1/templates/class-schedule-card/variables. See the previewing guide, the rendering guide, or the OpenAPI spec.
Frequently asked questions
How do I customize the Class Schedule Card template?
Open the template in the Renderly editor and replace its 70 customizable fields (such as Studio Photo) with your own text, images, or video. Every change previews instantly before you render.
How much does it cost to render this template?
Rendering is credit-based - 1 credit equals 1 minute of 1080p video. You only pay when you export, and credits never expire on the pay-as-you-go plan.
Can I generate this video at scale via the API?
Yes. POST this template's ID and a replacements object to /api/v1/renders - one call per row of data, 70 fields swappable per video. Send the same body to /api/v1/previews first to check it for free. No-code integrations like Zapier work the same way.
More Social Media templates

Product Hunt Launch - Dev Tool / CLI
A 27-second 16:9 launch video for products whose demo is a command, not a dashboard - CLIs, APIs, SDKs and developer tools, where a generic screenshot template flatters none of them. Terminal-dark throughout, monospace-led, with the install line as the hero object: it types on character by character behind a blinking caret, and the pill grows to fit whatever command you give it, so a long `npm install -g` never clips. Five scenes on an alternating near-black and paper ground, cut by hard-edge wipes rather than dissolves: the prompt opens with your mark, wordmark, tagline and install command; the command runs and prints its output one line at a time onto a terminal that tilts into the frame and settles flat; a config panel proves how little there is to adopt; a p99 latency card and a live log stream prove it is production-serious; and the close pairs the Product Hunt pill with the command again and an upvote CTA. Every panel is built from primitives rather than uploaded screenshots, so the defaults look finished before you change anything, and the depth is real - each window arrives at an angle and rotates flat over its entry, with a slow sway holding it alive afterwards. Eighteen dynamic fields cover the whole video and all of them are short single-line strings plus one logo image: product_name and install_cmd (each used twice, in the opening and the close), version_line, tagline, the three feature headlines, the five terminal lines (run_cmd, step_1, step_2, success_line, deploy_url), config_filename, metric_label and metric_value, launch_line and cta_line. launch_line is the Product Hunt switch and the only Product-Hunt-specific element in the template: empty it and the orange pill disappears, leaving a generic launch video that works on X, LinkedIn, a landing page or a mailer. A restrained sound design rides under the music - keystrokes under the two typewriters, a whoosh on each scene wipe, and a software tone on the "live in 11.4s" beat. Two notes for integrators: install_cmd renders at a fixed 38px and the pill shrink-wraps around it, so length is free but a very long command makes a wide pill; and the six config lines and six log rows are static sample chrome, since per-token syntax colour cannot survive a single-string replacement.

Product Hunt Launch - Mobile App
A 17.6-second 16:9 launch video for a mobile app, built to be filled in and rendered in one pass: five beats - lockup, three features, then the ask - over an alternating cream / navy / blue rhythm. Every screenshot sits in a phone frame that arrives tilted in 3D and rotates to flat as it lands, and the dark scenes wipe in and out rather than cutting. Eleven variables: logo, product_name, tagline, three portrait screenshots, three feature lines, launch_line and cta_line. It ships with self-contained placeholder art, so it renders complete with nothing uploaded and users replace the parts they have. screenshot_2 and _3 fall back to screenshot_1 if only one capture exists. launch_line is the only Product-Hunt-specific element - clear it and the same render works as a generic launch video for X, LinkedIn or a mailer. Feature lines read best under about 45 characters; longer copy wraps to three lines rather than clipping.

Webinar Replay Clip
A five-scene pull-quote clip cut from a recorded webinar, built so one session becomes five publishable posts: a producer marks five moments and sends five rows, each with the same recording trimmed to a different minute and a different quote. 1920x1080 16:9, 36 seconds at 30fps, alternating near-black and cool-white grounds with a single professional blue carrying every kicker, rule and progress slice. The footage is never trusted to carry a frame alone — it is blurred and scrimmed in the cold open, matted inside a hard bezel for the speaker card, letterboxed to 2.5:1 for the captioned moment, and absent entirely from the pull quote and the closing link. Thirteen dynamic fields swap per render: clip_footage (the trimmed recording, reused across three scenes with three different crops and grades), speaker_photo, speaker_name, speaker_role, speaker_company, speaker_credit, clip_topic, quote_text (set at 52px in the caption band and 88px in the shareable pull quote), session_title, session_line, session_url, clip_index and brand_name.