This registration page may not work well in Internet Explorer. Please use a different browser to complete your registration.

Fundamental Elements and Principles of Floral Design

January 9, 2026 - January 11, 2026

Description

Taught by expert faculty with years of experience in the floral industry, these courses will help you increase your knowledge, hone your skills and advance your career. Members of the Texas State Florists' Association (TSFA) enjoy significant savings on these classes and other offerings from the TSFA School of Floral Design. Submit your registration by Dec. 26, 2025.

Dates, Times and Costs

  • Basic Floral Design and Care and Handling.
    • Jan. 9 — 8:30 a.m. to 5:30 p.m.
    • Members — $385.
    • Nonmembers — $445.
  • Sympathy Design. 
    • Jan. 10 — 8:30 a.m. to 3 p.m.
    • Members — $310.
    • Nonmembers — $355.
  • Floral Management. 
    • Jan. 10 — 3:30 p.m. to 5:30 p.m.
    • Members — $75.
    • Nonmembers — $115.
  • Wedding Design.
    • Jan. 11 — 8:30 a.m. to 5:30 p.m.
    • Members — $310.
    • Nonmember — $355.

To view class descriptions, visit tsfa.org/school.

Time

  • Floral Care and Handling: Jan. 9 — 8:30 a.m. to 5:30 p.m. 
  • Sympathy Design: Jan. 10 — 8:30 a.m. to 3 p.m.
  • Floral Management: Jan. 10 — 3:30 p.m. to 5:30 p.m. 
  • Wedding Design: Jan. 11 — 8:30 a.m. to 5:30 p.m.

Pricing

Members save $205 — more than the cost of membership — when registering for all four classes. Join TSFA and save!

Log in to access the special member rate. Your discount will appear on the summary screen before checkout.

We're sorry. No registrations are currently available. You may wish to contact the event organizer for assistance.
{{ vm.EventInfo.ErrorMessage }}

Select Registration Options

Edit
{{vm.regWarningMessage}}
{{vm.regAlertMessage}}

Exhibitor Opportunities

Name Price Att Qty
{{ et.Name }}
{{ et.IncludedAttendeesCount }} {{ et.AttendeeRegType.RemainingPerType }} Remaining {{ et.AttendeeRegType.RemainingPerType * -1 }} on Waiting List {{ et.AttendeeRegType.RemainingPerType * -1 }} Over Limit
{{ et.Remaining }} Remaining
Sold out

Attendee Registration Options Total Remaining: {{ vm.EventInfo.VacantSpotsPerEvent }}

Waiting List Available
{{ vm.stats.totalAttendeesCount }} Registered , {{ vm.OverallOverAmount() }} on Waiting List , {{ vm.OverallOverAmount() }} Over Limit
Name Price Qty
{{ rt.Name }}
{{ rt.IsMemberOnly ? ' (Members Only)' : '' }}
Limit: {{ rt.LimitPerPurchase }}
Included Attendees: {{ rt.AttendeesCountPerOneRegistration }}
{{rt.Price | currency }} {{rt.PriceAfterDiscount | currency }} {{ rt.Price | currency }}
{{ rt.RemainingPerType }} Remaining
{{ rt.RemainingPerType * -1 }} on Waiting List
{{ rt.RemainingPerType * -1 }} Over Limit

{{'[[Sponsorship]] Opportunities' | localizeString:'['}}

Name Price Att Qty
{{ st.Name }}
{{ st.IncludedAttendeesCount }} {{ st.AttendeeRegType.RemainingPerType }} Remaining {{ st.AttendeeRegType.RemainingPerType * -1 }} on Waiting List {{ st.AttendeeRegType.RemainingPerType * -1 }} Over Limit
{{ st.Remaining }} Remaining
Sold out
Continue

Registration Information

Edit

Exhibitor - {{er.Name}}

Exhibitor #{{ $index + 1 }}

Total: {{exhibitor.TotalPrice | currency}} {{ exhibitor.IsBenefit ? "- Included as a Benefit" : exhibitor.IsDiscounted ? "- Discounts have been applied" : ""}}
Exhibitor Directory
Primary Contact
Booth Information
Additional Information
Additional Items

Attendee - {{er.Name}}

{{ att.getAttendeeTerm(vm.EventSettings.AdditionalAttendeesTerm, $index) }} #{{ att.getAttendeeIndexDisplay(vm.EventSettings.AdditionalAttendeesTerm, $index) }}

Total: {{att.TotalPrice | currency}} {{att.DiscountMessage | localizeString:'['}}
A No Show fee is being assessed for {{fee.EventName}} on {{fee.EventStartLocalTimeString}}.

Address


Phone

Additional Information
Event Sessions

{{slot.Name}}

{{$select.selected.SessionName}}
(full)
{{slot.SelectedSession.SessionDescription + (slot.HasFees ? " (Price: " + (slot.PriceTotal | currency) +")" : "")}}

Additional Items

{{'[[Sponsorship+]]' | localizeString:'['}} - {{er.Name}}

{{'[[Sponsor]]' | localizeString:'['}} #{{ $index + 1 }}

Total: {{sponsor.Price | currency}}
Continue

Additional Items

Edit

{{(vm.EventInfo.Terms.Donation || "Fundraising") + " Opportunities"}}

Campaign Name Item Description Amount
{{item.CampaignName}} {{item.Description + (item.ShowMinimumPrice && item.MinimumPrice ? " (Min: " + item.MinimumPrice + ")" : "")}}
Continue

Complete Registration

Edit

Terms & Conditions

No Show Policy

{{ vm.EventInfo.EventSettings.NoShowPolicy }}

Enter Promo Code

Billing Contact

Registration Protection

This event is synced to a webinar so no confirmation email will be sent from GrowthZone.

Thank you to our {{'[[Sponsor+]]' | localizeString:'['}}