← Go home

Bulk Upload Events

Upload CSV File

Reference Data

Event Types

Medium Categories

Instructions

CSV Format: Your CSV file must include these columns:

For Insert (New Events):title, content, start_time, end_time, place, address, address_city_country, timezone, ticket_prices, links, event_type_names, medium_category_names, currency
For Update (Existing Events):id, title, content, start_time, end_time, place, address, address_city_country, timezone, ticket_prices, links, event_type_names, medium_category_names, currency
  • Required fields for INSERT: title, content, event_type_names, medium_category_names
  • Required fields for UPDATE: id, title, content, event_type_names, medium_category_names
  • Optional fields: start_time, end_time, place, address, address_city_country, timezone, ticket_prices, links, currency (leave empty if not needed)
  • Multiple event types/categories: Use comma-separated values (e.g., "Concert,Workshop" or "K-pop,Education" or "BTS,Programming")
  • Multiple Event Types and Categories Examples:

    Single event type: "Concert"
    Multiple event types: "Concert,Workshop,Theater"
    Single medium category: "BTS"
    Multiple medium categories: "BTS,Programming"
  • Update mode notes:
    • The id field must contain the existing event ID from the database
    • All provided fields will update the existing event data
    • Empty fields will remove existing data for that event
    • If an event ID doesn't exist, that row will fail with an error
  • Timezone handling:
    • Automatic detection: If timezone is empty but place/address is provided, timezone will be auto-detected
    • Manual timezone: Use IANA timezone format (e.g., "America/New_York", "Europe/London", "Asia/Tokyo")
    • Fallback: If date/time is provided, timezone is required (address is required if timezone is not provided).
    • Common timezones: America/New_York, America/Los_Angeles, Europe/London, Europe/Paris, Asia/Tokyo, Asia/Seoul
  • Ticket prices format: Multiple formats supported:
    • Named prices: "TicketName:Price,TicketName:Price" (e.g., "General:50,VIP:100,Student:25")
    • Just prices: "Price,Price" (e.g., "30.99,15.50") - will use "General" as default ticket name
    • Single price: "50" or "VIP:50" - both work
    • With currency: "VIP:50:USD,General:30:EUR" - specify currency per ticket
  • Currency: Optional field, defaults to USD if not specified. Common currencies: USD, EUR, GBP, JPY, KRW, CNY
  • Address City Country: Format: "City, Country" (e.g., "New York, USA", "London, UK", "Tokyo, Japan"). If empty, will be auto-filled using Mapbox API based on the address field.
  • Links format: "ProviderName:URL,ProviderName:URL" (URLs can be with or without http:// or https://)
  • Date/Time format: YYYY-MM-DD HH:MM:SS (e.g., 2024-12-25 18:00:00)
  • Event type/category names: Use exact names from the reference data (case-sensitive)
  • Category disambiguation: Both major and medium category names are required to avoid conflicts
  • Thumbnails: Not supported in bulk upload - upload manually if needed
  • Content: Will be automatically wrapped in HTML paragraph tags

Ticket Prices Examples:

Named prices: "General:50,VIP:100,Student:25"
Just prices: "30.99,15.50" (uses "General" as default name)
Single price: "75" or "General Admission:75"
With currency: "VIP:50:USD,General:30:EUR"
Free event: "Free:0" or "0" or leave empty
Mixed format: "VIP:100,25.99,Student:15"
Note: ticket_prices column is optional - you can omit it entirely from your CSV for free events

Links Examples:

Multiple providers: "Ticketmaster:https://ticketmaster.com/event123,StubHub:http://stubhub.com/event123"
Single provider: "Ticketmaster:ticketmaster.com/event123"
Single provider without provider name: "ticketmaster.com/event123"
No external links: leave empty
URL format: You can use with or without http:// or https:// (https:// will be added automatically if no protocol specified)
Note: Provider names are optional, if not provided, the link will be used as the provider name

Currency Usage:

Global currency: Set in the currency column (e.g., "USD") - applies to all ticket prices
Per-ticket currency: "VIP:100:USD,General:30:EUR" - override global currency per ticket
Default behavior: If no currency specified, defaults to USD
Supported currencies: USD, EUR, GBP, JPY, KRW, CNY (and others)
Mixed example: Global currency "EUR" + prices "VIP:50:USD,25.99,Student:15:KRW"