Production Calendar
The Production Calendar has three tabs: Shoot Schedule, Talent Calendar, and Script List. Producers use it to plan and schedule shoots, track talent availability, and coordinate multi-camera productions. All three tabs link to each other โ shoot chips open Script List rows, Script List rows open shoot days and the Talent Calendar. > No email or in-app notifications are sent by any Production Calendar action. Side effects are limited to database writes and production status syncing.
Shoot Schedule tab
Month / Week / Day view toggle
Switch between a month grid, week grid, and a single-day ordered list. Preference saved to localStorage.
Navigation (prev / next / Today)
Move the grid backward, forward, or jump to the current date.
Talent-available count badge
A violet circle on each day in month view shows how many talent are available that day.
Drag an approved-script chip onto a day
Schedules a script's shoot on that day. Fills the first segment without a shoot day, or auto-creates a new "Cam N" segment. Recomputes the Video Card's shoot scheduled date. May sync the parent Video Card status.
Schedule a script via the day modal
Click the ๐ icon on a day (or an empty day cell) to open the day modal. It has two tabs โ Qual (Needs Review) and Approved โ a client filter (derived from the data like everywhere else: any client with Ready scripts appears, inactive included), a search box, and a "talent available this day" filter that defaults on (scripts with no talent assigned always stay listed). Selecting a script assigns it to that day; a Needs Review script gets its Video Card created on the spot. This is the only way to put a Needs Review script on a shoot day โ only Approved scripts can be dragged.
Drag a chip from one day to another
Reschedules a shoot segment to a new day. Recomputes shoot scheduled date.
Remove a shoot chip
Click ร on a chip or "Remove Date" in the peek card to delete that shoot segment from the calendar.
Shoot chip peek card
Click any shoot chip to open a quick popup with status, script name, segment label, talent, client, and shoot day. Includes Remove Date, Detail (opens that script's row in the Script List), View Card, and Shoot Scheduler buttons.
"+N more" overflow
Click "+N more" or the ๐ clock icon to open the day's hourly schedule modal and see all segments beyond the chip cap.
Day Detail modal (hourly schedule)
Open hourly schedule
Opens a per-day modal with a time grid (30-minute slots, 7AMโ9PM) plus a "No time set" holding panel.
Drag a segment into a time slot
Assigns a specific start time to a shoot segment.
Remove a segment's time slot
Click ร on a placed segment to clear its assigned start time.
Reorder segments within a day
Use โ / โ buttons on placed segments to change their shoot order (#1, #2, etc.).
Talent conflict warning
A segment turns red with "โ Talent conflict" when an assigned talent isn't available at the chosen time. Display only โ does not block scheduling.
Add script to day
"+ Add Script" opens the day modal (Qual / Approved tabs) scoped to that day from inside the hourly modal.
Chip pool panel
Scripts pool tab
Shows all Approved scripts awaiting a shoot date as draggable chips. Search to filter by title/client.
Talent pool tab
Shows talent chips color-coded green (available) or red (unavailable) for the selected day.
Drag a green talent chip onto a scheduled day
Assigns that talent to the first project scheduled on the target day.
Click a talent chip to edit availability
Opens an availability editor modal for that talent.
Talent Calendar tab
Month navigation
Move the talent availability calendar by month.
"Scheduled only" toggle (browse mode)
Defaults on: day cells show only talent booked on a shoot that day, as solid chips labelled "Shooting" โ click one to see which shoots. Turn it off to also see available-but-unbooked talent as faint outlined chips with their hours. Who-is-free never disappears; it sits behind the toggle.
"Scheduling for" talent selector
Pick one talent to enter edit mode (shows their availability and enables editing). "Browse all" shows all talent chips.
Click a day in edit mode
Opens the availability modal to add or edit that talent's availability on the day.
Staff availability modal โ save / edit / delete
Set all-day or custom-time availability, optionally repeating weekly until an end date. Can remove a single occurrence or all future occurrences.
Availability-break alerts (automatic)
Every availability change โ self-service or staff-on-behalf, adds, edits, single-occurrence removals, series end-dates and deletes alike โ is checked against the talent's booked future shoots. Repeat breaks are not re-alerted the same day. The alert respects each person's master notification toggle and the "Talent availability break" per-event preference (on by default for Producers; anyone else can opt in under notification settings).
Red bookings โ and why red and email behave differently (this is deliberate, not a bug)
On the Shoot Schedule and the Script List's Scheduled tab, a booking whose talent is not available that day renders red with the reason on hover. Red is state-based: it shows for every uncovered booking, including ones a producer deliberately booked with "Confirm with Override" โ because "this talent is not available that day" is simply true and worth seeing. The email is transition-based: it fires only when a booking that WAS covered becomes uncovered, so a deliberate override never generates nagging email. Red says what is; email says what changed. A talent with no availability rows at all counts as unavailable โ availability is opt-in.
Click a talent chip in browse mode
Shows a read-only modal of the shoots that talent is scheduled to film on that day.
Longform series (LF)
Longform is the format for long-form scripted content โ serialized vertical drama, sketch comedy โ broken into episodes. The screenplay is written, approved and printed OUTSIDE Heliconflow; the app manages everything downstream. The series is one script (format Longform, badge LF), born Approved with no rows; attach the printed screenplay as a PDF on the series panel. Each episode is one ordinary production card with an episode number, a title and an optional scene range โ plan its camera segments with the Shoot Plan modal, schedule each segment on its own day, shoot, Edit โ Qual โ Post. One episode = one posted vertical. Episodes are created one at a time from the series' Episodes panel, in order; the series reads Posted only when every episode has posted, and episodes default to posting in order in the queue.
Casting happens once at the series, from the script's own rows. For a paper-only series โ a screenplay PDF attached, nothing imported or typed โ the Scene breakdown helper appears under the Screenplay PDF block and adds one breakdown row per scene ร character (registry names suggest as you type; freeform allowed) so casting can start from the PDF alone; it disappears as soon as the script has dialogue. Paste dialogue is optional; when you paste scenes into an episode that already has some, each pasted scene replaces the episode's scene with that number (the document's own numbering is remembered, so re-pasting a revised "scene 4" fixes the right scene even though the episode now counts from 1) and anything beyond the last scene is added after it โ the preview says which. It โ paste standard screenplay text (ALL-CAPS cues, INT./EXT. headings) to create dialogue rows and enable Scene Scrub's auto cut list; without script text the episode card says so plainly. A Talent booked on any episode can download the series PDF from Talent Scripts.
Import scenes from PDF.
Once the screenplay PDF is attached, click Import scenes from PDF (the panel offers it right after the attach). Heliconflow reads the PDF's text, drops page numbers and repeating headers or footers, and turns every speech into a row โ scene number from the INT./EXT. headings, character from the ALL-CAPS cue, the spoken words as the Line โ in the same preview you get from pasting. Nothing saves until you click Save these scenes or Replace whole script. A scanned PDF with no text layer simply says so; paste the dialogue instead. If very few cues are recognised, you can try an AI-assisted parse; its rows are marked for review before saving. Episode and act breaks, and ALL-CAPS stage directions with no speech, come in as direction rows โ gold, italic, no character โ so they stay in the script without ever becoming a cast member; right-click any row to mark it as direction or back to dialogue. When the screenplay carries its own EPISODE BREAK or EPISODE n markers, the Episodes panel offers Create episodes from breaks: preview the scene ranges, edit the titles, and one click creates every episode card. A series itself never appears on the Script List's Ready tab โ its episode cards do, once they have camera segments. If a bad import left names that are no longer in the script, the Characters panel on any episode card offers Remove N stale characters in one click.
Casting the series.
The series page has a Cast block โ the same Characters panel an episode card shows โ listing every character in the script as you type, paste or import (no Refresh needed). A dashed UNCAST chip opens the talent picker; a muted NAME ยท DEFAULT chip means the project's standing cast from the character registry will play the part unless you pick someone else for this series. Cast once here: every episode card's Shoot Plan modal, Talent field and the Live grid resolve the same people. The Character column header still opens the project's character registry (add characters, set their standing talent).
Writing a series in the app.
A Longform script does not need a PDF. Use Add scene row and type the Scene #, Character, Line and Scene Description exactly as in a Skit โ registry names suggest in the Character cell. To split the script into episodes, right-click a row and choose Insert episode break below (or click ๏ผ Episode break in the Episodes header to add one at the end). A break is not a line of the script: it shows as the violet episode band that opens the next episode โ "Ep 2 ยท untitled ยท scenes 1โ3 ยท no card yet" โ with โ to name it, โ to open its card once one exists, and โ to remove the break. Every episode, including the first, has its band. The rows between two breaks are one episode, and scene numbers start again at 1 in every episode โ so "scene 2" always means scene 2 of that episode. Better still, click ๏ผ Add episode in the Episodes header: it writes an EPISODE header row and the episode's first line for you. Episodes live in the script. Their production cards are made from the script when the series is approved โ and, while it is approved, every save keeps them in step: a new episode in the script gets its card (Planned), a renamed header renames the card, an episode you remove takes its Planned card with it. Each card's Scene Scrub cut list covers only the rows of its own episode.
Writing line by line.
A Longform grid behaves like a Skit grid. With the cursor in a row, type the character, press Tab, type the line, press Enter โ a new row appears beneath, already carrying the scene number, cursor in Character. Keep going for as many lines as the scene needs; no mouse required. A brand-new series offers three ways in where the grid would be: Import from PDF, Paste dialogue, or ๏ผ Add episode 1 โ start writing (it writes the EPISODE 1 header and your first scene-1 row). To begin the next scene, use Add scene in the Scene breakdown (who is in it, plus a description โ the scene's first row is added at the end and the cursor lands in it) or ๏ผ Next scene at the bottom of the grid โ it numbers the scene after the last one in the episode you are writing. After an EPISODE BREAK row, pressing Enter (or Ctrl+Enter, which does the same in a Longform grid) starts the next episode: the new row is its scene 1. You never have to type a scene number โ every row you add already carries the right one. Inside an episode the scenes always run 1, 2, 3 with no gaps: if you type a different number in the Scene # cell the row starts a new scene (and gets the next number), and typing the number of the row above joins that scene. Scripts imported from a PDF or pasted in are renumbered the same way, episode by episode.
Reading a series.
On a Longform script the grid is grouped: a header band opens each scene (its number within the episode, and its description) and each episode ("Ep 2 ยท <title> ยท scenes 1โ4 ยท Planned"); click a band's chevron to fold that scene or episode away while you work elsewhere. On the Live Production grid, the Script List, the Edit Queue and Qual, an expanded series shows its episodes indented beneath it with a violet guide line down the left. Folding is only how the page shows the script โ the rows, the keyboard flow and every import are unchanged.
One entry per series.
Everywhere the app lists production cards โ Live Production, the Script List, the Edit Queue, Qual, the Posting Scheduler โ a series appears once, never as a pile of episode rows beside the skits. Click the series row to open its episodes underneath (each with its own stage pill; each opens that episode's production page). Live Production shows the series' progress ("3/8 Posted ยท next Ep 4 โ Edit") and a search matches the series whenever any of its episodes match. The one place episodes stay separate is the calendars: shoot chips are per episode by nature and read "<Series> ยท Ep N".
Naming an episode.
The title lives in the script, in the episode's header row ("EPISODE 2 โ The Hood"). Click โ beside an episode in the Episodes block to name or rename it โ the header row is written for you and the card follows. A pasted or imported "EPISODE 2 - THE HOOD" line is read the same way.
Sending a series back to the drawing board.
Moving an approved series back to Needs Review deletes its episode cards โ their stage, shoot plans, bookings, cut lists and posting slots โ after a warning. The episodes themselves, every line and the cast stay in the script; nothing you wrote is lost. When the rewrite is approved again the cards are recreated from the script. The move is refused while any episode is past Scripted or has footage on it.
Planned episodes.
Every episode card starts as Planned โ it exists on the series page (muted dashed Planned pill) and opens its own Production page, but it is not yet in production: it sits on no grid, calendar, Script List, shoot schedule, posting queue or notification. When an episode is ready to make, click Send to production on its row (or on the banner of its page), or uses Send Ep NโM to production in the Episodes header to release a run of episodes at once. Planning the first camera segment or saving a shoot plan on a Planned card sends it to production automatically. Sending is one-way; the card then behaves like any other production card. On a Planned card the stage rail stays parked on Script and the advance buttons are hidden until it is sent.
Shoot Scheduler panel
The Shoot Scheduler panel opens from the peek card or chip pool on the Shoot Schedule tab. It manages the shoot segments for one production. (The Production page's ๐ฌ Shoot Scheduler button opens the Script List on that production's row instead; the page plans its camera segments in place on the Shoot stage.)
Add segment
Adds a new "Cam N" shoot segment to the project.
Edit segment label / setting
Rename a segment or set its location/setting text. Auto-saves on blur.
Set segment shoot day
Assign or change the segment's shoot date.
Add / remove talent on a segment
Multi-talent support โ assign or unassign talent to a shoot segment. Unavailable talent shows a โ warning.
Mark segment filmed / incomplete
Toggle a segment's status. Can roll the parent production between Scripted, Filming, and Filmed automatically.
Delete segment
Removes a shoot segment. Re-syncs the production status.
Edit "Notes for Filming"
Edits project-level notes shared with the Production page.
Archive project (all filmed)
Removes a fully-filmed project from the active shoot schedule.
Script List tab (visible to Admin, Power User, Producer, Writer, Qual Reviewer โ write actions Producer/Power User/Admin)
Ready / Scheduled tab switch
Membership is automatic. Ready: every Skit or Mockumentary script whose qual status is Needs Review or Approved and which has no shoot segments yet. Scheduled: everything with shoot segments (including Riff cards). A script sent back to Needs Revision drops out of Ready immediately.
Filter by client / search / paginate
The list defaults to a client filter (the catalogue is too big for "all clients" to be a useful default). The client options are derived from the data โ any client with at least one row in the current tab appears, including inactive clients that still hold work; clients with none do not. A search box filters by title; large lists paginate.
Filter by talent availability on a date (Ready tab)
Pick a date to keep only scripts whose resolved talent are all available that day. Scripts with no talent assigned always stay listed, marked "No talent assigned".
Resolved talent chips
Each Ready row shows the talent the script would shoot with today: a producer's per-script override first, then the client registry's standing cast, otherwise uncast. Character names are read live from the script body.
Approve in place (Ready tab)
A Needs Review row shows "Approve โ" to users holding the qual-approval permission. On approval the row stays in Ready and flips to Approved.
Hide a script (ร on a Ready row โ Producer, Power User, Admin)
Hides the script from the Ready tab to clear clutter. Nothing else changes โ it can still be scheduled from the day modal. Recover it with the "Show hidden" toggle and its Unhide button.
Schedule โ (Approved rows)
Opens the Schedule Plan modal. It works on untagged scripts โ untagged characters plan as Cam 1 โ and its per-character talent dropdowns come pre-filled from the resolved talent. A producer's explicit pick is never overwritten.
Scheduled tab columns
Shoot day(s) (click one to open that day on the Shoot Schedule), the segments' confirmed talent, an "Open โ" link to the Production page, an editable Notes column, and "โ Ready". A row whose segments have no shoot day yet shows an explicit "No shoot day set" โ it is Scheduled (it has segments) but will not appear in the day modal until a day is set.
Editable Notes (Scheduled tab) (any internal user)
Writes the same field as the Production page's Notes, under the same gate โ any internal authenticated user (external accounts are refused). On Riff rows this field holds the card's title, so the editor is labelled "Title" there โ editing it renames the Riff card.
Move a scheduled script back to Ready ("โ Ready" โ Producer, Power User, Admin)
Removes the script's scheduled shoot segments (dates and confirmed talent) and returns it to Ready. Membership is derived from segments, so returning to Ready means removing them โ the confirm dialog says so.
Schedule Plan modal โ suggested day + coverage
The 30-day suggested-day scan checks availability for each character's resolved talent; gender matching is only the fallback for uncast characters. Unavailable picks are flagged, the inline mini-calendar pivots the date, and Confirm Plan transactionally creates one shoot segment per camera group โ and persists each character's chosen talent as the script's cast, so returning a script to Ready later loses nothing and re-planning pre-fills the same people.