rshankras/in-app-events
Generates In-App Event metadata templates for App Store Connect — event names, descriptions, badge types, image specs, and deep link configuration. Use when creating events for App Store visibility, engagement campaigns, or seasonal promotions.
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill in-app-events
Generate complete In-App Event metadata ready for App Store Connect upload, including event cards, descriptions, deep link configuration, and promotional image specifications.
Use this skill when the user:
In-App Events appear on:
Events are visible to ALL users — including people who haven't downloaded your app. This makes them a powerful discovery and re-engagement tool. Users who opt in also get an App Store notification when the event starts.
| Rule | Value |
|------|-------|
| Event duration | 15 minutes to 31 days |
| Publish ahead of start | Up to 14 days early — the card shows the start time |
| Concurrent limits | 10 approved / 5 published simultaneously across storefronts — ASC blocks submission beyond either |
| Per-country schedules | Custom start/end per country, within ±48 hours of the default schedule |
| Review time | ~24 hours typical |
| Past-event URL | Stays live for 30 days after the event ends |
| Card media | One image, or a looping video ≤30 seconds |
| Submission conflict | Marketing role can't submit an event while an app version is in submission |
| Analytics | Event analytics appear only after ≥5 downloads from the event |
Ask user via AskUserQuestion:
For each event, collect:
For each event, produce:
Provide exact image specifications for event cards:
Write a markdown document with all metadata ready for copy/paste into App Store Connect.
| Badge | Use For | Examples |
|-------|---------|---------|
| Challenge | Goal-based activities users can complete | "30-Day Fitness Challenge", "Photography Week" |
| Competition | Ranked or scored events against other users | "Weekly Leaderboard", "Speed Run Contest" |
| Live Event | Real-time events at a specific time | "Live Q&A with Creator", "Launch Party" |
| Special Event | Limited-time features, offers, or content | "Holiday Collection", "Anniversary Sale" |
| Major Update | Significant new app version | "Version 3.0 — Complete Redesign" |
| New Season | Seasonal content refreshes | "Winter Season", "Chapter 3" |
| Premiere | First-time content or feature debut | "Introducing Dark Mode", "New Game Mode" |
The badge-fit rule (per Apple): if none of the badges fits what you're promoting, it shouldn't be an event. Two badges Apple polices closely — Live Event must introduce new features, content, or goods (not just "we're streaming"), and Major Update must exceed UI tweaks and bug fixes.
> Status: announced (WWDC26) — verify availability in App Store Connect before executing.
| Badge | Use For | Examples |
|-------|---------|---------|
| Now On Sale | Limited-time price drops on the app or IAPs | "Pro Unlock 50% Off — This Week" |
| Try Before You Buy | Free-trial or demo-access promotions | "7-Day Free Trial Event" |
# In-App Event: [Event Concept]
## App Store Connect Metadata
| Field | Value |
|-------|-------|
| Reference Name | [internal-name-kebab-case] |
| Badge | [Badge Type] |
| Event Name | [30 chars max] |
| Short Description | [50 chars max] |
| Long Description | [120 chars max] |
| Start Date | [YYYY-MM-DD HH:MM timezone] |
| End Date | [YYYY-MM-DD HH:MM timezone] |
| Event Purpose | [Attract New Users / Keep Active Users Informed / Bring Back Lapsed Users] |
| Event Priority | [Normal / High] |
| Deep Link | [yourapp://event/event-id] |
## Event Card Image
| Spec | Value |
|------|-------|
| Size | 1080 x 1920 px (portrait) |
| Format | PNG, no transparency |
| Safe Zone | Center 80% for critical content |
| Background | [Color/gradient suggestion] |
| Content | [Visual description] |
| Text/Logos | None — event name renders over the art; preview for cropping |
## Deep Link Configuration
- URL Scheme: `yourapp://event/[event-id]`
- Universal Link: `https://yourapp.com/event/[event-id]`
- Fallback: App Store product page
## Localization Notes
- [Language]: [Localized event name and descriptions]
# Event Series: [Series Name]
## Series Overview
[Brief description of the series theme and cadence]
## Events
### Event 1: [Name]
[Same fields as single event template]
### Event 2: [Name]
[Same fields as single event template]
### Event 3: [Name]
[Same fields as single event template]
## Series Strategy
- **Cadence**: [Weekly / Biweekly / Monthly]
- **Escalation**: [How events build on each other]
- **Retention hook**: [What brings users back for the next event]
# Annual Event Calendar: [App Name]
| Month | Event | Badge | Duration | Goal |
|-------|-------|-------|----------|------|
| Jan | [Event name] | [Badge] | [X days] | [Goal] |
| Feb | [Event name] | [Badge] | [X days] | [Goal] |
| ... | ... | ... | ... | ... |
## Seasonal Themes
- **Q1 (Jan-Mar)**: [Theme — e.g., New Year motivation]
- **Q2 (Apr-Jun)**: [Theme — e.g., Spring refresh, WWDC tie-in]
- **Q3 (Jul-Sep)**: [Theme — e.g., Summer activities, back to school]
- **Q4 (Oct-Dec)**: [Theme — e.g., Halloween, holiday season]
app-store/marketing-strategy — Strategic event planning by app typegenerators/custom-product-pages — Pair events with targeted product pagesapp-store/app-description-writer — Event description writing styleTake rshankras/in-app-events from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.